FreeBSD: add missing fplookup_vexec handler to special vop vectors
Otherwise lookup can fail with EOPNOTSUPP or panic. Reviewed-by: Ryan Moeller <ryan@iXsystems.com> Reviewed-by: Matt Macy <mmacy@FreeBSD.org> Signed-off-by: Mateusz Guzik <mjguzik@gmail.com> Closes #11066
This commit is contained in:
parent
34cda44af6
commit
41e2b3de13
|
@ -796,6 +796,9 @@ zfsctl_common_getacl(struct vop_getacl_args *ap)
|
|||
|
||||
static struct vop_vector zfsctl_ops_root = {
|
||||
.vop_default = &default_vnodeops,
|
||||
#if __FreeBSD_version >= 1300121
|
||||
.vop_fplookup_vexec = VOP_EAGAIN,
|
||||
#endif
|
||||
.vop_open = zfsctl_common_open,
|
||||
.vop_close = zfsctl_common_close,
|
||||
.vop_ioctl = VOP_EINVAL,
|
||||
|
@ -1113,6 +1116,9 @@ zfsctl_snapdir_getattr(struct vop_getattr_args *ap)
|
|||
|
||||
static struct vop_vector zfsctl_ops_snapdir = {
|
||||
.vop_default = &default_vnodeops,
|
||||
#if __FreeBSD_version >= 1300121
|
||||
.vop_fplookup_vexec = VOP_EAGAIN,
|
||||
#endif
|
||||
.vop_open = zfsctl_common_open,
|
||||
.vop_close = zfsctl_common_close,
|
||||
.vop_getattr = zfsctl_snapdir_getattr,
|
||||
|
@ -1214,6 +1220,9 @@ zfsctl_snapshot_vptocnp(struct vop_vptocnp_args *ap)
|
|||
*/
|
||||
static struct vop_vector zfsctl_ops_snapshot = {
|
||||
.vop_default = NULL, /* ensure very restricted access */
|
||||
#if __FreeBSD_version >= 1300121
|
||||
.vop_fplookup_vexec = VOP_EAGAIN,
|
||||
#endif
|
||||
.vop_inactive = zfsctl_snapshot_inactive,
|
||||
#if __FreeBSD_version >= 1300045
|
||||
.vop_need_inactive = vop_stdneed_inactive,
|
||||
|
|
|
@ -6641,6 +6641,9 @@ VFS_VOP_VECTOR_REGISTER(zfs_fifoops);
|
|||
*/
|
||||
struct vop_vector zfs_shareops = {
|
||||
.vop_default = &default_vnodeops,
|
||||
#if __FreeBSD_version >= 1300121
|
||||
.vop_fplookup_vexec = VOP_EAGAIN,
|
||||
#endif
|
||||
.vop_access = zfs_freebsd_access,
|
||||
.vop_inactive = zfs_freebsd_inactive,
|
||||
.vop_reclaim = zfs_freebsd_reclaim,
|
||||
|
|
Loading…
Reference in New Issue