Whamcloud - gitweb
ext3/ext4: orphan list corruption due bad inode (Patch from Q-leap)
authorgirish <girish>
Wed, 23 Jul 2008 19:23:29 +0000 (19:23 +0000)
committergirish <girish>
Wed, 23 Jul 2008 19:23:29 +0000 (19:23 +0000)
b=16360
i=adilger
i=johann

ldiskfs/kernel_patches/patches/ext3-check-bad-inode.patch [new file with mode: 0644]
ldiskfs/kernel_patches/series/ldiskfs-2.6-rhel4.series
ldiskfs/kernel_patches/series/ldiskfs-2.6-rhel5.series
ldiskfs/kernel_patches/series/ldiskfs-2.6-sles10.series
ldiskfs/kernel_patches/series/ldiskfs-2.6-suse.series
ldiskfs/kernel_patches/series/ldiskfs-2.6.18-vanilla.series
ldiskfs/kernel_patches/series/ldiskfs-2.6.22-vanilla.series

diff --git a/ldiskfs/kernel_patches/patches/ext3-check-bad-inode.patch b/ldiskfs/kernel_patches/patches/ext3-check-bad-inode.patch
new file mode 100644 (file)
index 0000000..7b0b046
--- /dev/null
@@ -0,0 +1,28 @@
+Index: linux-2.6.22/fs/ext3/namei.c
+===================================================================
+--- linux-2.6.22.orig/fs/ext3/namei.c  2007-11-15 13:41:18.000000000 +0100
++++ linux-2.6.22/fs/ext3/namei.c       2007-11-15 13:44:28.000000000 +0100
+@@ -1019,6 +1019,11 @@ static struct dentry *ext3_lookup(struct
+               if (!inode)
+                       return ERR_PTR(-EACCES);
++
++              if (is_bad_inode(inode)) {
++                      iput(inode);
++                      return ERR_PTR(-ENOENT);
++              }
+       }
+       return d_splice_alias(inode, dentry);
+ }
+@@ -1054,6 +1059,11 @@ struct dentry *ext3_get_parent(struct de
+       if (!inode)
+               return ERR_PTR(-EACCES);
++      if (is_bad_inode(inode)) {
++              iput(inode);
++              return ERR_PTR(-ENOENT);
++      }
++
+       parent = d_alloc_anon(inode);
+       if (!parent) {
+               iput(inode);
index 4d64d37..c3152ea 100644 (file)
@@ -26,3 +26,4 @@ ext3-external-journal-2.6.9.patch
 ext3-max-dir-size.patch
 ext3-print-inum-in-htree-warning.patch
 ext3-xattr-no-update-ctime-rhel4.patch
 ext3-max-dir-size.patch
 ext3-print-inum-in-htree-warning.patch
 ext3-xattr-no-update-ctime-rhel4.patch
+ext3-check-bad-inode.patch
index f0eb3a9..524491e 100644 (file)
@@ -23,3 +23,4 @@ ext3-max-dir-size.patch
 ext3-print-inum-in-htree-warning.patch
 ext3-block-bitmap-validation-2.6-rhel5.patch
 ext3-xattr-no-update-ctime-2.6.22-vanilla.patch
 ext3-print-inum-in-htree-warning.patch
 ext3-block-bitmap-validation-2.6-rhel5.patch
 ext3-xattr-no-update-ctime-2.6.22-vanilla.patch
+ext3-check-bad-inode.patch
index 779e134..c8d9b53 100644 (file)
@@ -27,3 +27,4 @@ ext3-max-dir-size.patch
 ext3-print-inum-in-htree-warning.patch
 ext3-block-bitmap-validation-2.6-sles10.patch
 ext3-xattr-no-update-ctime-2.6-sles10.patch
 ext3-print-inum-in-htree-warning.patch
 ext3-block-bitmap-validation-2.6-sles10.patch
 ext3-xattr-no-update-ctime-2.6-sles10.patch
+ext3-check-bad-inode.patch
index 1f728c0..b6d7bb0 100644 (file)
@@ -25,3 +25,4 @@ ext3-external-journal-2.6.5.patch
 ext3-max-dir-size-2.6.5-suse.patch
 ext3-print-inum-in-htree-warning.patch
 ext3-xattr-no-update-ctime-suse.patch
 ext3-max-dir-size-2.6.5-suse.patch
 ext3-print-inum-in-htree-warning.patch
 ext3-xattr-no-update-ctime-suse.patch
+ext3-check-bad-inode.patch
index a74d105..cc89091 100644 (file)
@@ -22,3 +22,4 @@ ext3-lookup-dotdot-2.6.9.patch
 ext3-max-dir-size.patch
 ext3-print-inum-in-htree-warning.patch
 ext3-xattr-no-update-ctime-2.6.22-vanilla.patch
 ext3-max-dir-size.patch
 ext3-print-inum-in-htree-warning.patch
 ext3-xattr-no-update-ctime-2.6.22-vanilla.patch
+ext3-check-bad-inode.patch
index 46226a5..65a6d4f 100644 (file)
@@ -23,3 +23,4 @@ ext3-export-journal-api.patch
 ext3-max-dir-size.patch
 ext3-print-inum-in-htree-warning.patch
 ext3-xattr-no-update-ctime-2.6.22-vanilla.patch
 ext3-max-dir-size.patch
 ext3-print-inum-in-htree-warning.patch
 ext3-xattr-no-update-ctime-2.6.22-vanilla.patch
+ext3-check-bad-inode.patch