(follow-up) "Stale NFS file handle" for NFS exported UFS from r252435
Pedro Giffuni
pfg at FreeBSD.org
Wed Jul 10 15:11:41 UTC 2013
Hello guys;
Thank for finding this, however ...
On 10.07.2013 08:53, Claude Buisson wrote:
> On 07/10/2013 14:32, Claude Buisson wrote:
>> 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.
>>
>
> Reverting 252435 + 252437 and rebuilding the kernel seems to give back
> a working
> system.
>
> Claude Buisson
>
While I understand this change caused the issue and I am willing to
revert it,
I think the problem is actually in NFS. At least ext2/3/4 and fuse (so I
presume
glusterfs) have unsigned i_gen.
Pedro.
More information about the freebsd-current
mailing list