Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 15 Oct 2020 04:49:35 +0000 (UTC)
From:      Mateusz Guzik <mjg@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r366717 - head/sys/contrib/openzfs/module/os/freebsd/zfs
Message-ID:  <202010150449.09F4nZIv028702@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: mjg
Date: Thu Oct 15 04:49:34 2020
New Revision: 366717
URL: https://svnweb.freebsd.org/changeset/base/366717

Log:
  zfs: add missing fplookup vops
  
  Some vnodes come with a hack which inherits the fplookup flag despite having vops
  which don't provide the routine.
  
  Reported by:	YAMAMOTO Shigeru <shigeru@os-hackers.jp>

Modified:
  head/sys/contrib/openzfs/module/os/freebsd/zfs/zfs_ctldir.c
  head/sys/contrib/openzfs/module/os/freebsd/zfs/zfs_vnops.c

Modified: head/sys/contrib/openzfs/module/os/freebsd/zfs/zfs_ctldir.c
==============================================================================
--- head/sys/contrib/openzfs/module/os/freebsd/zfs/zfs_ctldir.c	Thu Oct 15 04:48:14 2020	(r366716)
+++ head/sys/contrib/openzfs/module/os/freebsd/zfs/zfs_ctldir.c	Thu Oct 15 04:49:34 2020	(r366717)
@@ -798,6 +798,7 @@ zfsctl_common_getacl(struct vop_getacl_args *ap)
 
 static struct vop_vector zfsctl_ops_root = {
 	.vop_default =	&default_vnodeops,
+	.vop_fplookup_vexec = VOP_EAGAIN,
 	.vop_open =	zfsctl_common_open,
 	.vop_close =	zfsctl_common_close,
 	.vop_ioctl =	VOP_EINVAL,
@@ -1115,6 +1116,7 @@ zfsctl_snapdir_getattr(struct vop_getattr_args *ap)
 
 static struct vop_vector zfsctl_ops_snapdir = {
 	.vop_default =	&default_vnodeops,
+	.vop_fplookup_vexec = VOP_EAGAIN,
 	.vop_open =	zfsctl_common_open,
 	.vop_close =	zfsctl_common_close,
 	.vop_getattr =	zfsctl_snapdir_getattr,
@@ -1216,6 +1218,7 @@ zfsctl_snapshot_vptocnp(struct vop_vptocnp_args *ap)
  */
 static struct vop_vector zfsctl_ops_snapshot = {
 	.vop_default =		NULL, /* ensure very restricted access */
+	.vop_fplookup_vexec =	VOP_EAGAIN,
 	.vop_inactive =		zfsctl_snapshot_inactive,
 #if __FreeBSD_version >= 1300045
 	.vop_need_inactive = vop_stdneed_inactive,

Modified: head/sys/contrib/openzfs/module/os/freebsd/zfs/zfs_vnops.c
==============================================================================
--- head/sys/contrib/openzfs/module/os/freebsd/zfs/zfs_vnops.c	Thu Oct 15 04:48:14 2020	(r366716)
+++ head/sys/contrib/openzfs/module/os/freebsd/zfs/zfs_vnops.c	Thu Oct 15 04:49:34 2020	(r366717)
@@ -6619,6 +6619,7 @@ VFS_VOP_VECTOR_REGISTER(zfs_fifoops);
  */
 struct vop_vector zfs_shareops = {
 	.vop_default =		&default_vnodeops,
+	.vop_fplookup_vexec =	VOP_EAGAIN,
 	.vop_access =		zfs_freebsd_access,
 	.vop_inactive =		zfs_freebsd_inactive,
 	.vop_reclaim =		zfs_freebsd_reclaim,



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202010150449.09F4nZIv028702>