Bug 422231 - contents of /proc/fs/nfsd missing
Summary: contents of /proc/fs/nfsd missing
Keywords:
Status: CLOSED CURRENTRELEASE
Alias: None
Product: Fedora
Classification: Fedora
Component: kernel
Version: rawhide
Hardware: All
OS: Linux
low
low
Target Milestone: ---
Assignee: Jeff Layton
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2007-12-12 18:18 UTC by Jeff Layton
Modified: 2007-12-12 20:55 UTC (History)
3 users (show)

Fixed In Version: kernel-2.6.24-0.83.rc5.fc9
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2007-12-12 20:55:14 UTC
Type: ---
Embargoed:


Attachments (Terms of Use)

Description Jeff Layton 2007-12-12 18:18:52 UTC
On recent rawhide kernels, the contents of /proc/fs/nfsd seem to be missing. The
filesystem is getting mounted according to /proc/mounts, but there are no
entries in it. This causes nfs serving to fail.

I've done a bisect search:

kernel-2.6.24-0.62.rc3.git5.fc9.x86_64 and before don't have the problem,
kernel-2.6.24-0.66.rc3.git7.fc9.x86_64 and after do.

Looking at a diff between the two codebases now to see if I can find what's
happened to cause this. The only changes I see under /fs between these two revs
is this:

diff -urN old/linux-2.6.23.noarch/fs/proc/generic.c
new/linux-2.6.23.noarch/fs/proc/generic.c
--- old/linux-2.6.23.noarch/fs/proc/generic.c   2007-12-03 15:29:24.000000000 -0500
+++ new/linux-2.6.23.noarch/fs/proc/generic.c   2007-12-12 13:09:05.000000000 -0500
@@ -374,9 +374,16 @@
        return 1;
 }
 
+static int proc_revalidate_dentry(struct dentry *dentry, struct nameidata *nd)
+{
+       d_drop(dentry);
+       return 0;
+}
+
 static struct dentry_operations proc_dentry_operations =
 {
        .d_delete       = proc_delete_dentry,
+       .d_revalidate   = proc_revalidate_dentry,
 };
 
 /*
@@ -397,8 +404,11 @@
                        if (de->namelen != dentry->d_name.len)
                                continue;
                        if (!memcmp(dentry->d_name.name, de->name, de->namelen)) {
-                               unsigned int ino = de->low_ino;
+                               unsigned int ino;
 
+                               if (de->shadow_proc)
+                                       de = de->shadow_proc(current, de);
+                               ino = de->low_ino;
                                de_get(de);
                                spin_unlock(&proc_subdir_lock);
                                error = -EINVAL;

...there are also some changs to proc_net.c, but they seem less suspect.

Comment 1 Jeff Layton 2007-12-12 20:55:14 UTC
Tested kernel-2.6.24-0.83.rc5.fc9.x86_64 from koji and it does not show this
issue. So I guess whatever it was was fixed upstream. Yay!




Note You need to log in before you can comment on or make changes to this bug.