[Ocfs2-commits] jlbec commits r1212 - trunk/src

svn-commits at oss.oracle.com svn-commits at oss.oracle.com
Fri Jun 25 15:13:39 CDT 2004


Author: jlbec
Date: 2004-06-25 14:13:37 -0500 (Fri, 25 Jun 2004)
New Revision: 1212

Modified:
   trunk/src/alloc.c
   trunk/src/dlm.c
   trunk/src/file.c
Log:

o More stack + ocfs_read_bhs() cleanups.



Modified: trunk/src/alloc.c
===================================================================
--- trunk/src/alloc.c	2004-06-25 17:50:04 UTC (rev 1211)
+++ trunk/src/alloc.c	2004-06-25 19:13:37 UTC (rev 1212)
@@ -744,7 +744,8 @@
 	}
 	memset(eb_bhs, 0, size);
 
-	status = ocfs_read_bhs(osb, physicalOffset,
+	status = ocfs_read_bhs(osb,
+			       phys_blkno << osb->sb->s_blocksize_bits,
 			       (u64)new_blocks << osb->sb->s_blocksize_bits,
 			       eb_bhs, OCFS_BH_CACHED, inode);
 	if (status < 0) {
@@ -781,8 +782,7 @@
 		eb->h_suballoc_blkno =
 			(fileOffset >> osb->sb->s_blocksize_bits) + i;
 		eb->h_suballoc_node = osb->node_num;
-		eb->h_blkno =
-			(physicalOffset >> osb->sb->s_blocksize_bits) + i;
+		eb->h_blkno = phys_blkno + i;
 		strcpy(eb->h_signature, OCFS2_EXTENT_BLOCK_SIGNATURE);
 
 		el2 = &eb->h_list;

Modified: trunk/src/dlm.c
===================================================================
--- trunk/src/dlm.c	2004-06-25 17:50:04 UTC (rev 1211)
+++ trunk/src/dlm.c	2004-06-25 19:13:37 UTC (rev 1212)
@@ -378,35 +378,38 @@
  * ocfs_get_vote_on_disk()
  *
  */
-static int ocfs_get_vote_on_disk (ocfs_super * osb, __u64 lock_id, __u32 lock_type, __u32 flags, ocfs_node_map * got_vote_map, ocfs_node_map * vote_map, __u64 lock_seq_num, ocfs_node_map * oin_open_map)
+static int ocfs_get_vote_on_disk(ocfs_super *osb, __u64 lock_id,
+				 __u32 lock_type, __u32 flags,
+				 ocfs_node_map *got_vote_map,
+				 ocfs_node_map *vote_map,
+				 __u64 lock_seq_num,
+				 ocfs_node_map *oin_open_map)
 {
 	int status = 0;
-	__u32 length = 0;
 	__u32 i;
-	__u32 numnodes;
 	ocfs_vote *vote;
 	struct buffer_head **bhs = NULL;
 
 	LOG_ENTRY_ARGS ("(lockid=%llu, locktype=%u)\n", lock_id, lock_type);
 
-	numnodes = osb->max_nodes;
-
 	/* Read the vote sectors of all the nodes */
-	length = numnodes << osb->sb->s_blocksize_bits;
-	bhs = ocfs_malloc(numnodes * sizeof(struct buffer_head *));
+	bhs = ocfs_malloc(osb->max_nodes *
+			  sizeof(struct buffer_head *));
 	if (bhs == NULL) {
 		LOG_ERROR_STATUS (status = -ENOMEM);
 		goto finally;
 	}
-	memset(bhs, 0, numnodes * sizeof(struct buffer_head *));
-	status = ocfs_read_bhs (osb, osb->vote_blkno << osb->sb->s_blocksize_bits, 
-				length, bhs, 0, NULL);
+	memset(bhs, 0, osb->max_nodes * sizeof(struct buffer_head *));
+	status = ocfs_read_bhs(osb,
+			       osb->vote_blkno << osb->sb->s_blocksize_bits, 
+			       osb->max_nodes << osb->sb->s_blocksize_bits,
+			       bhs, 0, NULL);
 	if (status < 0) {
 		LOG_ERROR_STATUS (status);
 		goto finally;
 	}
 
-	for (i = 0; i < numnodes; i++) {
+	for (i = 0; i < osb->max_nodes; i++) {
 		int node_alive = ocfs_node_is_alive(&osb->publ_map, i);
 		int node_in_map = ocfs_node_is_alive(vote_map, i);
 
@@ -442,7 +445,7 @@
 
 finally:
 	if (bhs != NULL) {
-		for (i=0; i < numnodes; i++)
+		for (i=0; i < osb->max_nodes; i++)
 			brelse(bhs[i]);
 		kfree(bhs);
 	}

Modified: trunk/src/file.c
===================================================================
--- trunk/src/file.c	2004-06-25 17:50:04 UTC (rev 1211)
+++ trunk/src/file.c	2004-06-25 19:13:37 UTC (rev 1212)
@@ -1120,7 +1120,7 @@
 	__u32 locktype = OCFS_DLM_ENABLE_CACHE_LOCK;
 	int have_disk_lock = 0;
 	u64 block_off;
-	__u64 actualLength = 0;
+	u64 num_blocks;
 	struct buffer_head *bh = NULL;
 	ocfs_journal_handle *handle = NULL;
 	int credits;
@@ -1247,26 +1247,30 @@
 
 		block_off = ocfs_clusters_to_blocks(osb->sb,
 						    bitmapOffset);
-		actualLength = (u64)numClustersAlloc << osb->s_clustersize_bits;
+		num_blocks = ocfs_clusters_to_blocks(osb->sb,
+						     numClustersAlloc);
 
 		fe = NULL;
 
 		if (system_file) {
 			struct buffer_head **bhs = NULL;
-			int numbhs = actualLength >> osb->sb->s_blocksize_bits;
 			int i;
 			
-			bhs = kmalloc(numbhs*sizeof(struct buffer_head *), GFP_KERNEL);
+			bhs = kmalloc(num_blocks *
+				      sizeof(struct buffer_head *),
+				      GFP_KERNEL);
 			if (!bhs) {
 				status = -ENOMEM;
 				LOG_ERROR_STATUS(status);
 				goto leave;
 			}
-			memset(bhs, 0, numbhs * sizeof(struct buffer_head *));
+			memset(bhs, 0, num_blocks *
+			       sizeof(struct buffer_head *));
 			
 			status = ocfs_read_bhs(osb,
 					       block_off << osb->sb->s_blocksize_bits,
-					       actualLength, bhs, 0,
+					       (u64)num_blocks << osb->sb->s_blocksize_bits,
+					       bhs, 0,
 					       NULL);
 			if (status < 0) {
 				kfree(bhs);
@@ -1274,12 +1278,13 @@
 				goto leave;
 			}
 			
-			for (i = 0; i < numbhs; i++) {
+			for (i = 0; i < num_blocks; i++) {
 				memset(bhs[i]->b_data, 0, osb->sb->s_blocksize);
 			}
 			
-			status = ocfs_write_bhs(osb, bhs, numbhs, 0, NULL);
-			for (i = 0; i < numbhs; i++)
+			status = ocfs_write_bhs(osb, bhs, num_blocks, 0,
+						NULL);
+			for (i = 0; i < num_blocks; i++)
 				brelse(bhs[i]);
 			kfree(bhs);
 			if (status < 0) {
@@ -1292,7 +1297,7 @@
 			struct super_block *sb = osb->sb;
 
 			for (block = block_off; 
-			     block < (block_off + (actualLength >> sb->s_blocksize_bits));
+			     block < (block_off + num_blocks);
 			     block++) {
 				alloc_bh = sb_getblk(sb, block);
 				if (!alloc_bh) {
@@ -1314,7 +1319,7 @@
 		ocfs_handle_add_inode(handle, ext_alloc_inode);
 		status = ocfs_allocate_extent(osb, bh, handle,
 					      block_off,
-					      actualLength >> osb->s_clustersize_bits,
+					      numClustersAlloc,
 					      inode);
 		if (status < 0) {
 			LOG_ERROR_STATUS (status);
@@ -1323,8 +1328,7 @@
 		fe = (ocfs2_dinode *) bh->b_data;
 
 		/* update the total allocation size here */
-		fe->i_clusters += 
-			(u32)(actualLength >> osb->s_clustersize_bits);
+		fe->i_clusters += numClustersAlloc;
 
 		down (&(OCFS_I(inode)->ip_sem));
 		OCFS_I(inode)->ip_alloc_size =



More information about the Ocfs2-commits mailing list