kernel: nfsd-fh: found a name that I didn't expect: <filename>

  • 3589453
  • 22-Aug-2006
  • 30-Apr-2013

Environment

Novell SUSE Linux Enterprise Server 8

Situation

SLES 8 is the NFS Server, exporting a reiserfs file system. An NFS client is having intermittent problems accessing files, and the message found in the /var/log/message corresponds with these occurrences:
kernel: nfsd-fh: found a name that I didn't expect:

Resolution

There are numerous occurrences of this error mentioned on the Internet, seemingly always in connection with reiserfs file systems. The events leading to the error (how the system gets in this situation) are uncertain. The best information (though not a full analysis) comes from one of the contributors of the Linux kernel-based NFS client:

When knfsd gets a request for a file handle which refers to an object
that isn't in the dcache, it needs to get it into the dcache. This
involves finding it's name and splicing it in.

It gets hold of an inode for the parent directory and reads through
that directory looking for a name with the right inode number.
When it finds the name, it checks to see that the name isn't
already in the dcache under that directory. As the object with
that name isn't in the dcache you would expect the name not to be
their either. This message indicates that the name was there.
There is enough locking in place so that a race between one process
adding the name and another process looking up the name for an
object should not stumble over each other - both hold i_sem for the
directory.
Kernel 2.5 does all this quite differently so shouldn't have the same problem
(the code certainly doesn't contain the same error message).
At this time the recommendations in regard to this error are:
1. If this error does not correspond to some other symptom, don't worry about it.
2. If possible, move to SLES 9.
3. If SLES 8 must be used, consider moving to a non-reiser file system.