]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
Add jfs_delete_inode Oops fix, fwd from Chuck Ebbert:
authorChris Wright <chrisw@osdl.org>
Tue, 13 Sep 2005 16:52:27 +0000 (09:52 -0700)
committerChris Wright <chrisw@osdl.org>
Tue, 13 Sep 2005 16:52:27 +0000 (09:52 -0700)
I'm submitting this patch for -stable:

  - it reportedly fixes an oops
  - it's already in 2.6.13-git

queue/jfs_delete_inode-must-call-clear_inode.patch [new file with mode: 0644]
queue/series

diff --git a/queue/jfs_delete_inode-must-call-clear_inode.patch b/queue/jfs_delete_inode-must-call-clear_inode.patch
new file mode 100644 (file)
index 0000000..fa0e36f
--- /dev/null
@@ -0,0 +1,61 @@
+From stable-bounces@linux.kernel.org  Tue Sep 13 01:19:12 2005
+Date: Tue, 13 Sep 2005 04:16:09 -0400
+From: Chuck Ebbert <76306.1226@compuserve.com>
+To: linux-stable <stable@kernel.org>
+Cc: Dave Kleikamp <shaggy@austin.ibm.com>
+Subject: jfs: jfs_delete_inode must call clear_inode
+
+From: Dave Kleikamp <shaggy@austin.ibm.com>
+
+JFS: jfs_delete_inode should always call clear_inode.
+
+> From Chuck Ebbert:
+I'm submitting this patch for -stable:
+
+  - it reportedly fixes an oops
+  - it's already in 2.6.13-git
+
+Signed-off-by: Dave Kleikamp <shaggy@austin.ibm.com>
+Signed-off-by: Chris Wright <chrisw@osdl.org>
+---
+ fs/jfs/inode.c |   24 ++++++++++++------------
+ 1 files changed, 12 insertions(+), 12 deletions(-)
+
+Index: linux-2.6.13.y/fs/jfs/inode.c
+===================================================================
+--- linux-2.6.13.y.orig/fs/jfs/inode.c
++++ linux-2.6.13.y/fs/jfs/inode.c
+@@ -128,21 +128,21 @@ void jfs_delete_inode(struct inode *inod
+ {
+       jfs_info("In jfs_delete_inode, inode = 0x%p", inode);
+-      if (is_bad_inode(inode) ||
+-          (JFS_IP(inode)->fileset != cpu_to_le32(FILESYSTEM_I)))
+-                      return;
++      if (!is_bad_inode(inode) &&
++          (JFS_IP(inode)->fileset == cpu_to_le32(FILESYSTEM_I))) {
+-      if (test_cflag(COMMIT_Freewmap, inode))
+-              jfs_free_zero_link(inode);
++              if (test_cflag(COMMIT_Freewmap, inode))
++                      jfs_free_zero_link(inode);
+-      diFree(inode);
++              diFree(inode);
+-      /*
+-       * Free the inode from the quota allocation.
+-       */
+-      DQUOT_INIT(inode);
+-      DQUOT_FREE_INODE(inode);
+-      DQUOT_DROP(inode);
++              /*
++               * Free the inode from the quota allocation.
++               */
++              DQUOT_INIT(inode);
++              DQUOT_FREE_INODE(inode);
++              DQUOT_DROP(inode);
++      }
+       clear_inode(inode);
+ }
index 868badb0d6824f18ed341411de9397943a4b118b..130574a4970ede82e24d1adc8930dcfc1fccdd63 100644 (file)
@@ -3,3 +3,4 @@ hpt366-write-dword-not-byte-for-ROM-resource.patch
 sungem-enable-and-map-pci-rom-properly.patch
 sunhme-enable-and-map-pci-rom-properly.patch
 netfilter-fix-dhcp-masquerade-problem.patch
+jfs_delete_inode-must-call-clear_inode.patch