[Ocfs2-tools-devel] [PATCH 07/20] libocfs2: Make ocfs2_init_group_desc aware of discontig group.

Tao Ma tao.ma at oracle.com
Mon May 17 01:46:54 PDT 2010


Pass a parameter named suballoc to ocfs2_init_group_desc
so that it can init bg_size properly.

Signed-off-by: Tao Ma <tao.ma at oracle.com>
---
 fsck.ocfs2/pass0.c              |    2 +-
 include/ocfs2/ocfs2.h           |    2 +-
 libocfs2/chainalloc.c           |    7 ++++---
 tunefs.ocfs2/op_resize_volume.c |    2 +-
 4 files changed, 7 insertions(+), 6 deletions(-)

diff --git a/fsck.ocfs2/pass0.c b/fsck.ocfs2/pass0.c
index dd9a109..da6af5e 100644
--- a/fsck.ocfs2/pass0.c
+++ b/fsck.ocfs2/pass0.c
@@ -980,7 +980,7 @@ static errcode_t verify_bitmap_descs(o2fsck_state *ost,
 			ocfs2_init_group_desc(ost->ost_fs, bg, blkno,
 					      ost->ost_fs_generation,
 					      di->i_blkno,
-					      bits, chain);
+					      bits, chain, 0);
 			ret = 0;
 		}
 		if (ret) {
diff --git a/include/ocfs2/ocfs2.h b/include/ocfs2/ocfs2.h
index fc09703..787ad09 100644
--- a/include/ocfs2/ocfs2.h
+++ b/include/ocfs2/ocfs2.h
@@ -678,7 +678,7 @@ void ocfs2_init_group_desc(ocfs2_filesys *fs,
 			   struct ocfs2_group_desc *gd,
 			   uint64_t blkno, uint32_t generation,
 			   uint64_t parent_inode, uint16_t bits,
-			   uint16_t chain);
+			   uint16_t chain, int suballoc);
 
 errcode_t ocfs2_new_dir_block(ocfs2_filesys *fs, uint64_t dir_ino,
 			      uint64_t parent_ino, char **block);
diff --git a/libocfs2/chainalloc.c b/libocfs2/chainalloc.c
index 72fd503..a0b196a 100644
--- a/libocfs2/chainalloc.c
+++ b/libocfs2/chainalloc.c
@@ -483,13 +483,13 @@ void ocfs2_init_group_desc(ocfs2_filesys *fs,
 			   struct ocfs2_group_desc *gd,
 			   uint64_t blkno, uint32_t generation,
 			   uint64_t parent_inode, uint16_t bits,
-			   uint16_t chain)
+			   uint16_t chain, int suballoc)
 {
 	memset(gd, 0, fs->fs_blocksize);
 
 	strcpy((char *)gd->bg_signature, OCFS2_GROUP_DESC_SIGNATURE);
 	gd->bg_generation = generation;
-	gd->bg_size = ocfs2_group_bitmap_size(fs->fs_blocksize, 0,
+	gd->bg_size = ocfs2_group_bitmap_size(fs->fs_blocksize, suballoc,
 			OCFS2_RAW_SB(fs->fs_super)->s_feature_incompat);
 	gd->bg_bits = bits;
 	gd->bg_chain = chain;
@@ -539,7 +539,8 @@ errcode_t ocfs2_chain_add_group(ocfs2_filesys *fs,
 	ocfs2_init_group_desc(fs, gd, blkno, fs->fs_super->i_fs_generation,
 			      cinode->ci_inode->i_blkno,
 			      cinode->ci_inode->id2.i_chain.cl_cpg *
-			      cinode->ci_inode->id2.i_chain.cl_bpc, chain_num);
+			      cinode->ci_inode->id2.i_chain.cl_bpc,
+			      chain_num, 0);
 
 	rec = &cinode->ci_inode->id2.i_chain.cl_recs[chain_num];
 	old_blkno = rec->c_blkno;
diff --git a/tunefs.ocfs2/op_resize_volume.c b/tunefs.ocfs2/op_resize_volume.c
index 0d0679c..8541374 100644
--- a/tunefs.ocfs2/op_resize_volume.c
+++ b/tunefs.ocfs2/op_resize_volume.c
@@ -231,7 +231,7 @@ static errcode_t init_new_gd(ocfs2_filesys *fs,
 
 		ocfs2_init_group_desc(fs, gd, gd_blkno,
 				      fs->fs_super->i_fs_generation, di->i_blkno,
-				      (cluster_chunk *cl->cl_bpc), chain);
+				      (cluster_chunk * cl->cl_bpc), chain, 0);
 
 		/* Add group to chain */
 		cr = &(cl->cl_recs[chain]);
-- 
1.5.5




More information about the Ocfs2-tools-devel mailing list