Re: NFS: Hash collision with the root inode ???

Simon Kirby (sim@netnation.com)
Thu, 3 Sep 1998 01:39:38 -0700 (PDT)


On Wed, 2 Sep 1998, Matthias Urlichs wrote:

> I have a VERY strange NFS error here.
>
> Whenever I lstat() a certain file across NFS, the call succeeds, but all
> accesses afterwards return EIO. The kernel logs:
>
> __nfs_fhget: inode 1234567 busy, i_count=2, i_nlink=18
> __nfs_fhget: inode 1234567 still busy, i_count=2
> __nfs_fhget: killing /// filehandle
>
> After this, the mount is dead; everything afterwards returns -EIO.
> This happens only with this one specific file and is 100% reproducible.

Is your mount point turning into the file you are mentioning? If so, I
think I know what's happening. I had the same problem over here...I
wrote the NFS guys and they said that it is a problem with the hashed
inode numbers -- in order to avoid the problem, you have to mount every
partition that is under your mounted partition via NFS, not just the
root. Of course, if there are no more filesystems mouned under the root
of your NFS mount on the remote server, this won't help. I'm hoping you
do have some, though. :)

Here's a script I wrote that, after mounting the server's root, will read
/etc/fstab and do the appropriate mounts for everything else:

[sroot@alfie:/dock]# cat unix_mount
#!/bin/tcsh -f
mount -t nfs "${*}:/" "$*/live" || exit -1
echo " ${*}:/ mounted on $*/live/"
foreach a (`cat "$*/live/etc/mtab" | egrep '^[^ ]+ /[^ ]+ ext2 ' | cut -f2 -d' '`)
mount -t nfs "${*}:$a" "$*/live$a/"
echo " ${*}:$a mounted on $*/live$a/"
end

Hope this helps. :)

Simon-

| Simon Kirby | Systems Administration |
| mailto:sim@netnation.com | NetNation Communications |
| http://www.netnation.com/ | Tech: (604) 684-6892 |

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.altern.org/andrebalsa/doc/lkml-faq.html