Bug 422231 - contents of /proc/fs/nfsd missing
contents of /proc/fs/nfsd missing
Status: CLOSED CURRENTRELEASE
Product: Fedora
Classification: Fedora
Component: kernel (Show other bugs)
rawhide
All Linux
low Severity low
: ---
: ---
Assigned To: Jeff Layton
Fedora Extras Quality Assurance
:
Depends On:
Blocks:
  Show dependency treegraph
 
Reported: 2007-12-12 13:18 EST by Jeff Layton
Modified: 2007-12-12 15:55 EST (History)
3 users (show)

See Also:
Fixed In Version: kernel-2.6.24-0.83.rc5.fc9
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
Environment:
Last Closed: 2007-12-12 15:55:14 EST
Type: ---
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---


Attachments (Terms of Use)

  None (edit)
Description Jeff Layton 2007-12-12 13:18:52 EST
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 15:55:14 EST
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.