Whamcloud - gitweb
Branch b1_6
authoradilger <adilger>
Tue, 25 Sep 2007 16:39:33 +0000 (16:39 +0000)
committeradilger <adilger>
Tue, 25 Sep 2007 16:39:33 +0000 (16:39 +0000)
Description: e2fsck reports "invalid unused inodes count"
Details    : If a new ldiskfs filesystem is created with the "uninit_groups"
     feature and only a single inode is created in a group then the
     "bg_unused_inodes" count is incorrectly updated.  Creating a
     second inode in that group would update it correctly.
i=behlendorf
i=valerie

ldiskfs/kernel_patches/patches/ext3-uninit-2.6-sles10.patch
ldiskfs/kernel_patches/patches/ext3-uninit-2.6-suse.patch
ldiskfs/kernel_patches/patches/ext3-uninit-2.6.18.patch
ldiskfs/kernel_patches/patches/ext3-uninit-2.6.9.patch

index 62b1f50..32a9810 100644 (file)
@@ -392,7 +392,7 @@ Index: linux-2.6.16.27-0.9-full/fs/ext3/ialloc.c
 +      if (EXT3_HAS_RO_COMPAT_FEATURE(sb, EXT4_FEATURE_RO_COMPAT_GDT_CSUM)) {
 +              if (gdp->bg_flags & cpu_to_le16(EXT3_BG_INODE_UNINIT)) {
 +                      gdp->bg_flags &= cpu_to_le16(~EXT3_BG_INODE_UNINIT);
-+                      free = EXT3_INODES_PER_GROUP(sb);
++                      free = 0;
 +              } else {
 +                      free = EXT3_INODES_PER_GROUP(sb) -
 +                              le16_to_cpu(gdp->bg_itable_unused);
index 8a34ea5..80bf99b 100644 (file)
@@ -381,7 +381,7 @@ Index: linux-2.6.5-7.283-full/fs/ext3/ialloc.c
 +      if (EXT3_HAS_RO_COMPAT_FEATURE(sb, EXT4_FEATURE_RO_COMPAT_GDT_CSUM)) {
 +              if (gdp->bg_flags & cpu_to_le16(EXT3_BG_INODE_UNINIT)) {
 +                      gdp->bg_flags &= cpu_to_le16(~EXT3_BG_INODE_UNINIT);
-+                      free = EXT3_INODES_PER_GROUP(sb);
++                      free = 0;
 +              } else {
 +                      free = EXT3_INODES_PER_GROUP(sb) -
 +                              le16_to_cpu(gdp->bg_itable_unused);
index 906caf2..8f1c077 100644 (file)
@@ -393,7 +393,7 @@ Index: linux-rhel5/fs/ext3/ialloc.c
 +      if (EXT3_HAS_RO_COMPAT_FEATURE(sb, EXT4_FEATURE_RO_COMPAT_GDT_CSUM)) {
 +              if (gdp->bg_flags & cpu_to_le16(EXT3_BG_INODE_UNINIT)) {
 +                      gdp->bg_flags &= cpu_to_le16(~EXT3_BG_INODE_UNINIT);
-+                      free = EXT3_INODES_PER_GROUP(sb);
++                      free = 0;
 +              } else {
 +                      free = EXT3_INODES_PER_GROUP(sb) -
 +                              le16_to_cpu(gdp->bg_itable_unused);
index 2dbeb80..b956664 100644 (file)
@@ -392,7 +392,7 @@ Index: linux-2.6.9-full/fs/ext3/ialloc.c
 +      if (EXT3_HAS_RO_COMPAT_FEATURE(sb, EXT4_FEATURE_RO_COMPAT_GDT_CSUM)) {
 +              if (gdp->bg_flags & cpu_to_le16(EXT3_BG_INODE_UNINIT)) {
 +                      gdp->bg_flags &= cpu_to_le16(~EXT3_BG_INODE_UNINIT);
-+                      free = EXT3_INODES_PER_GROUP(sb);
++                      free = 0;
 +              } else {
 +                      free = EXT3_INODES_PER_GROUP(sb) -
 +                              le16_to_cpu(gdp->bg_itable_unused);