r4306 - in
dists/sarge/kernel/source/kernel-source-2.6.8-2.6.8/debian: .
patches patches/series
Simon Horman
horms at costa.debian.org
Wed Oct 5 07:15:35 UTC 2005
Author: horms
Date: 2005-10-05 07:15:33 +0000 (Wed, 05 Oct 2005)
New Revision: 4306
Added:
dists/sarge/kernel/source/kernel-source-2.6.8-2.6.8/debian/patches/fs-ext3-nfs-parent-fix.dpatch
Modified:
dists/sarge/kernel/source/kernel-source-2.6.8-2.6.8/debian/changelog
dists/sarge/kernel/source/kernel-source-2.6.8-2.6.8/debian/patches/series/2.6.8-17
Log:
+ * ext3 file systems mounted over nfs may lookup .. in dx directories
+ causing an oops.
+ (closes: #323557)
Modified: dists/sarge/kernel/source/kernel-source-2.6.8-2.6.8/debian/changelog
===================================================================
--- dists/sarge/kernel/source/kernel-source-2.6.8-2.6.8/debian/changelog 2005-10-04 03:16:48 UTC (rev 4305)
+++ dists/sarge/kernel/source/kernel-source-2.6.8-2.6.8/debian/changelog 2005-10-05 07:15:33 UTC (rev 4306)
@@ -239,12 +239,16 @@
Make sure BLK_DEV_IDEDMA_PCI is defined for pmac ide driver builds
(closes: #321442)
+ * ext3 file systems mounted over nfs may lookup .. in dx directories
+ causing an oops.
+ (closes: #323557)
+
[ dann frazier ]
* mempolicy-check-mode.dpatch
[SECURITY] Input validation in sys_set_mempolicy(); local DoS.
See CAN-2005-3053
- -- dann frazier <dannf at debian.org> Tue, 27 Sep 2005 15:18:57 -0600
+ -- Simon Horman <horms at debian.org> Wed, 5 Oct 2005 16:11:27 +0900
kernel-source-2.6.8 (2.6.8-16) unstable; urgency=low
Added: dists/sarge/kernel/source/kernel-source-2.6.8-2.6.8/debian/patches/fs-ext3-nfs-parent-fix.dpatch
===================================================================
--- dists/sarge/kernel/source/kernel-source-2.6.8-2.6.8/debian/patches/fs-ext3-nfs-parent-fix.dpatch 2005-10-04 03:16:48 UTC (rev 4305)
+++ dists/sarge/kernel/source/kernel-source-2.6.8-2.6.8/debian/patches/fs-ext3-nfs-parent-fix.dpatch 2005-10-05 07:15:33 UTC (rev 4306)
@@ -0,0 +1,55 @@
+commit acfa1823d33859b0db77701726c9ca5ccc6e6f25
+tree 356c2edeed8e8a505ed03c6f9d04dc659e84d341
+parent d6e711448137ca3301512cec41a2c2ce852b3d0a
+author Andreas Dilger <adilger at clusterfs.com> Thu, 23 Jun 2005 00:09:45 -0700
+committer Linus Torvalds <torvalds at ppc970.osdl.org> Thu, 23 Jun 2005 09:45:26 -0700
+
+ [PATCH] Support for dx directories in ext3_get_parent (NFSD)
+
+ Henrik Grubbstrom noted:
+
+ The 2.6.10 ext3_get_parent attempts to use ext3_find_entry to look up the
+ entry "..", which fails for dx directories since ".." is not present in the
+ directory hash table. The patch below solves this by looking up the dotdot
+ entry in the dx_root block.
+
+ Typical symptoms of the above bug are intermittent claims by nfsd that
+ files or directories are missing on exported ext3 filesystems.
+
+ cf https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=3D150759 and
+ https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=3D144556
+
+ ext3_get_parent() is IMHO the wrong place to fix this bug as it introduces
+ a lot of internals from htree into that function. Instead, I think this
+ should be fixed in ext3_find_entry() as in the below patch. This has the
+ added advantage that it works for any callers of ext3_find_entry() and not
+ just ext3_lookup_parent().
+
+ Signed-off-by: Andreas Dilger <adilger at clusterfs.com>
+ Signed-off-by: Henrik Grubbstrom <grubba at grubba.org>
+ Cc: <ext2-devel at lists.sourceforge.net>
+ Signed-off-by: Andrew Morton <akpm at osdl.org>
+ Signed-off-by: Linus Torvalds <torvalds at osdl.org>
+
+diff --git a/fs/ext3/namei.c b/fs/ext3/namei.c
+--- a/fs/ext3/namei.c
++++ b/fs/ext3/namei.c
+@@ -932,8 +932,16 @@ static struct buffer_head * ext3_dx_find
+ struct inode *dir = dentry->d_parent->d_inode;
+
+ sb = dir->i_sb;
+- if (!(frame = dx_probe(dentry, NULL, &hinfo, frames, err)))
+- return NULL;
++ /* NFS may look up ".." - look at dx_root directory block */
++ if (namelen > 2 || name[0] != '.'||(name[1] != '.' && name[1] != '\0')){
++ if (!(frame = dx_probe(dentry, NULL, &hinfo, frames, err)))
++ return NULL;
++ } else {
++ frame = frames;
++ frame->bh = NULL; /* for dx_release() */
++ frame->at = (struct dx_entry *)frames; /* hack for zero entry*/
++ dx_set_block(frame->at, 0); /* dx_root block is 0 */
++ }
+ hash = hinfo.hash;
+ do {
+ block = dx_get_block(frame->at);
Modified: dists/sarge/kernel/source/kernel-source-2.6.8-2.6.8/debian/patches/series/2.6.8-17
===================================================================
--- dists/sarge/kernel/source/kernel-source-2.6.8-2.6.8/debian/patches/series/2.6.8-17 2005-10-04 03:16:48 UTC (rev 4305)
+++ dists/sarge/kernel/source/kernel-source-2.6.8-2.6.8/debian/patches/series/2.6.8-17 2005-10-05 07:15:33 UTC (rev 4306)
@@ -62,3 +62,4 @@
+ ipv6-skb-leak.dpatch
+ drivers-ide-ppp-pmac-build.dpatch
+ mempolicy-check-mode.dpatch
++ fs-ext3-nfs-parent-fix.dpatch
More information about the Kernel-svn-changes
mailing list