Whamcloud - gitweb
libext2fs: Don't check the group checksum when !GDT_CSUM
authorTheodore Ts'o <tytso@mit.edu>
Sun, 13 Jul 2008 23:03:59 +0000 (19:03 -0400)
committerTheodore Ts'o <tytso@mit.edu>
Sun, 13 Jul 2008 23:03:59 +0000 (19:03 -0400)
ext2fs_group_desc_csum_verify() is always checking the bg_checksum (to
make sure it is zero) even when the GDT_CSUM feature is not present.
This is normally OK, but apparently there are filesystems in the wild
where this field has not be initialized to zero.

Addresses-Debian-Bug: #490637

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
lib/ext2fs/csum.c

index ce1508e..6a49d8f 100644 (file)
@@ -60,8 +60,10 @@ STATIC __u16 ext2fs_group_desc_csum(ext2_filsys fs, dgrp_t group)
 
 int ext2fs_group_desc_csum_verify(ext2_filsys fs, dgrp_t group)
 {
-       if (fs->group_desc[group].bg_checksum != 
-           ext2fs_group_desc_csum(fs, group))
+       if (EXT2_HAS_RO_COMPAT_FEATURE(fs->super,
+                                      EXT4_FEATURE_RO_COMPAT_GDT_CSUM) &&
+           (fs->group_desc[group].bg_checksum != 
+            ext2fs_group_desc_csum(fs, group)))
                return 0;
 
        return 1;