Enable NCLOOKUP for ZFS.

This commit is contained in:
hannken 2020-08-27 09:57:33 +00:00
parent 8dde8e9642
commit 381048869c
3 changed files with 14 additions and 4 deletions

View File

@ -1517,7 +1517,7 @@ zfs_domount(vfs_t *vfsp, char *osname)
#endif
#ifdef __NetBSD__
vfsp->mnt_flag |= MNT_LOCAL;
vfsp->mnt_iflag |= IMNT_MPSAFE;
vfsp->mnt_iflag |= IMNT_MPSAFE | IMNT_NCLOOKUP;
#endif
/*
@ -2078,7 +2078,7 @@ zfs_mount(vfs_t *vfsp, const char *path, void *data, size_t *data_len)
vfsp->vfs_flag |= MNT_NFS4ACLS;
#endif
#ifdef __NetBSD__
vfsp->mnt_iflag |= IMNT_MPSAFE;
vfsp->mnt_iflag |= IMNT_MPSAFE | IMNT_NCLOOKUP;
#endif
/*

View File

@ -1354,6 +1354,10 @@ zfs_write(vnode_t *vp, uio_t *uio, int ioflag, cred_t *cr, caller_context_t *ct)
newmode = zp->z_mode;
(void) sa_update(zp->z_sa_hdl, SA_ZPL_MODE(zfsvfs),
(void *)&newmode, sizeof (uint64_t), tx);
#ifdef __NetBSD__
cache_enter_id(vp, zp->z_mode, zp->z_uid, zp->z_gid,
true);
#endif
}
mutex_exit(&zp->z_acl_lock);
@ -5645,8 +5649,11 @@ zfs_netbsd_setattr(void *v)
}
error = zfs_setattr(vp, (vattr_t *)&xvap, flags, cred, NULL);
if (error == 0)
VN_KNOTE(vp, NOTE_ATTRIB);
if (error)
return error;
VN_KNOTE(vp, NOTE_ATTRIB);
cache_enter_id(vp, zp->z_mode, zp->z_uid, zp->z_gid, true);
return error;
}

View File

@ -871,6 +871,7 @@ zfs_loadvnode(struct mount *mp, struct vnode *vp,
return (SET_ERROR(ENOENT));
}
ASSERT(zp == VTOZ(vp));
cache_enter_id(vp, zp->z_mode, zp->z_uid, zp->z_gid, true);
ZFS_OBJ_HOLD_EXIT(zfsvfs, obj_num);
@ -891,6 +892,8 @@ zfs_newvnode(struct mount *mp, vnode_t *dvp, vnode_t *vp, vattr_t *vap,
zfs_mknode1(dzp, vap, tx, cr, flag, &zp, acl_ids, vp);
ASSERT(zp == VTOZ(vp));
cache_enter_id(vp, zp->z_mode, zp->z_uid, zp->z_gid, true);
*key_len = sizeof(zp->z_id);
*new_key = &zp->z_id;