[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