From mboxrd@z Thu Jan 1 00:00:00 1970 From: Lukasz Majewski Date: Mon, 29 Aug 2016 16:03:55 +0200 Subject: [U-Boot] [PATCH v3 07/13] ext4: only update number of of unused inodes if GDT_CSUM feature is set In-Reply-To: References: <20160828204238.10809-1-stefan.bruens@rwth-aachen.de> Message-ID: <20160829160355.53b0ae5d@amdc2363> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de Hi Stefan, > e2fsck warns about "Group descriptor 0 marked uninitialized without > feature set." > The bg_itable_unused field is only defined if > FEATURE_RO_COMPAT_GDT_CSUM is set, and should be set (kept) zero > otherwise. > > Signed-off-by: Stefan Br?ns > --- > fs/ext4/ext4_common.c | 14 +++++++------- > 1 file changed, 7 insertions(+), 7 deletions(-) > > v3: Patch added to series > > diff --git a/fs/ext4/ext4_common.c b/fs/ext4/ext4_common.c > index eae23b7..0018937 100644 > --- a/fs/ext4/ext4_common.c > +++ b/fs/ext4/ext4_common.c > @@ -980,12 +980,13 @@ int ext4fs_get_new_inode_no(void) > if (!journal_buffer || !zero_buffer) > goto fail; > struct ext2_block_group *bgd = (struct ext2_block_group > *)fs->gdtable; > + int has_gdt_chksum = le32_to_cpu(fs->sb->feature_ro_compat) & > + EXT4_FEATURE_RO_COMPAT_GDT_CSUM ? 1 : 0; > > if (fs->first_pass_ibmap == 0) { > for (i = 0; i < fs->no_blkgrp; i++) { > if (bgd[i].free_inodes) { > - if (bgd[i].bg_itable_unused != > - bgd[i].free_inodes) > + if (has_gdt_chksum) > bgd[i].bg_itable_unused = > bgd[i].free_inodes; > if (le16_to_cpu(bgd[i].bg_flags) & > EXT4_BG_INODE_UNINIT) { @@ -1006,7 +1007,8 @@ int > ext4fs_get_new_inode_no(void) (i * inodes_per_grp); > fs->first_pass_ibmap++; > ext4fs_bg_free_inodes_dec(&bgd[i]); > - ext4fs_bg_itable_unused_dec(&bgd[i]); > + if (has_gdt_chksum) > + > ext4fs_bg_itable_unused_dec(&bgd[i]); > ext4fs_sb_free_inodes_dec(fs->sb); status = ext4fs_devread( > (lbaint_t)le32_to_cpu(bgd[i].inode_id) > * @@ -1061,12 +1063,10 @@ restart: > goto fail; > prev_inode_bitmap_index = ibmap_idx; > } > - if (bgd[ibmap_idx].bg_itable_unused != > - bgd[ibmap_idx].free_inodes) > + ext4fs_bg_free_inodes_dec(&bgd[ibmap_idx]); > + if (has_gdt_chksum) > bgd[ibmap_idx].bg_itable_unused = > bgd[ibmap_idx].free_inodes; > - ext4fs_bg_free_inodes_dec(&bgd[ibmap_idx]); > - ext4fs_bg_itable_unused_dec(&bgd[ibmap_idx]); > ext4fs_sb_free_inodes_dec(fs->sb); > goto success; > } Reviewed-by: Lukasz Majewski -- Best regards, Lukasz Majewski Samsung R&D Institute Poland (SRPOL) | Linux Platform Group