Re: [U-Boot] [PATCH v3 07/13] ext4: only update number of of unused inodes if GDT_CSUM feature is set

2016-08-29 Thread Lukasz Majewski
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
___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot


[U-Boot] [PATCH v3 07/13] ext4: only update number of of unused inodes if GDT_CSUM feature is set

2016-08-28 Thread Stefan Brüns
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;
}
-- 
2.9.3

___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot