"Stale NFS file handle" for NFS exported UFS from r252435

From: Claude Buisson <clbuisson_at_orange.fr>
Date: Wed, 10 Jul 2013 14:32:17 +0200
Hi,

Upgrading a CURRENT amd64 pure UFS system (watson) from r249744 to r253007, I
have hit the following:

claude_at_zorglub$ mount_nfs watson:/home /mnt
claude_at_zorglub$ /bin/ls /mnt/
claude          doc.old         ports.old       sysref
distfiles       obj             portsperso      xorg-dev
doc             ports           src             xtrafiles
claude_at_zorglub$ /bin/ls /mnt/claude
ls: /mnt/claude: Stale NFS file handle
claude_at_zorglub$ /bin/ls /mnt/ports.old
CHANGES         UPDATING        dns             multimedia      textproc
COPYRIGHT       accessibility   editors         net             www
...

some directories may be listed, for the others the result is "Stale NFS file handle"

This exists for a 8.4-STABLE client system, for a 9.1-STABLE client system, and
also with a local mount (localhost) on the server system itself.

I checked with memsticks of official snapshots (to eliminate the influence of
local patches and customized kernels), with the result:

FreeBSD-10.0-CURRENT-amd64-20130630-r252387-memstick is not affected

FreeBSD-10.0-CURRENT-amd64-20130707-r252887-memstick is affected

Doing a binary search on the kernel source (without any patch) lead to the
"culprit":

----------------------------------------------------------------------
Author: pfg
Date: Mon Jul  1 03:00:15 2013
New Revision: 252435
URL: http://svnweb.freebsd.org/changeset/base/252435

Log:
   Change i_gen in UFS to an unsigned type.

   In UFS, i_gen is a random generated value and there is not way for
   it to be negative. Actually, the value of i_gen is just used to
   match bit patterns and it is of not consequence if the values are
   signed or not.

   Following other filesystems, set it to unsigned and use it as such,

   Discussed by:	mckusick
   Reviewed by:	mckusick (previous version)
   MFC after:	4 weeks

Modified:
   head/sys/ufs/ffs/ffs_vfsops.c
   head/sys/ufs/ufs/dinode.h
   head/sys/ufs/ufs/inode.h
   head/sys/ufs/ufs/ufs_extattr.c
----------------------------------------------------------------------

which is entirely UFS (not NFS) related.

CCing pfg_at_ as the committer, and rmacklem_at_ just in case..

Thanks for your attention

Claude Buisson
Received on Wed Jul 10 2013 - 10:32:26 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:40:39 UTC