NFS deadlock (unkillable nfsd and no mounts work)

Daniel Braniss danny at cs.huji.ac.il
Tue Nov 16 10:27:59 UTC 2010


> on 05/11/2010 23:27 Kostik Belousov said the following:
> > I agree that the fix a right fix for real issue. It should only
> > affect the filesystems that do support VFS_VGET(). In other words,
> > it is relevant for e.g. UFS exports, but not for ZFS, that is the
> > Andrey case.
> 
> Actually ZFS does implement vfs_vget, but with a special quirk for .zfs/ and
> stuff under it:
> 
> static int
> zfs_vget(vfs_t *vfsp, ino_t ino, int flags, vnode_t **vpp)
> {
>         zfsvfs_t        *zfsvfs = vfsp->vfs_data;
>         znode_t         *zp;
>         int             err;
> 
>         /*
>          * zfs_zget() can't operate on virtual entires like .zfs/ or
************************************************ entries 
************************
===============================================================================
==
>          * .zfs/snapshot/ directories, that's why we return EOPNOTSUPP.
>          * This will make NFS to switch to LOOKUP instead of using VGET.
>          */
>         if (ino == ZFSCTL_INO_ROOT || ino == ZFSCTL_INO_SNAPDIR)
>                 return (EOPNOTSUPP);
> ...
> ...
> 
> 
> -- 
> Andriy Gapon
> _______________________________________________
> freebsd-stable at freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-stable
> To unsubscribe, send any mail to "freebsd-stable-unsubscribe at freebsd.org"
> 




More information about the freebsd-stable mailing list