Whamcloud - gitweb
Merge branch 'maint' into next
[tools/e2fsprogs.git] / lib / ext2fs / closefs.c
index c570256..0f97704 100644 (file)
@@ -54,11 +54,10 @@ int ext2fs_super_and_bgd_loc(ext2_filsys fs,
 {
        blk_t   group_block, super_blk = 0, old_desc_blk = 0, new_desc_blk = 0;
        unsigned int meta_bg, meta_bg_size;
-       int     numblocks, has_super;
-       int     old_desc_blocks;
+       blk_t   numblocks, old_desc_blocks;
+       int     has_super;
 
-       group_block = fs->super->s_first_data_block +
-               (group * fs->super->s_blocks_per_group);
+       group_block = ext2fs_group_first_block(fs, group);
 
        if (fs->super->s_feature_incompat & EXT2_FEATURE_INCOMPAT_META_BG)
                old_desc_blocks = fs->super->s_first_meta_bg;
@@ -81,7 +80,7 @@ int ext2fs_super_and_bgd_loc(ext2_filsys fs,
                super_blk = group_block;
                numblocks--;
        }
-       meta_bg_size = (fs->blocksize / sizeof (struct ext2_group_desc));
+       meta_bg_size = EXT2_DESC_PER_BLOCK(fs->super);
        meta_bg = group / meta_bg_size;
 
        if (!(fs->super->s_feature_incompat & EXT2_FEATURE_INCOMPAT_META_BG) ||
@@ -224,8 +223,8 @@ errcode_t ext2fs_flush(ext2_filsys fs)
        retval = ext2fs_get_mem(SUPERBLOCK_SIZE, &super_shadow);
        if (retval)
                goto errout;
-       retval = ext2fs_get_mem((size_t)(fs->blocksize * fs->desc_blocks),
-                               &group_shadow);
+       retval = ext2fs_get_array(fs->desc_blocks, fs->blocksize, 
+                                 &group_shadow);
        if (retval)
                goto errout;
        memset(group_shadow, 0, (size_t) fs->blocksize *