Date: Wed, 24 Oct 2018 17:56:49 +0300 From: Konstantin Belousov <kostikbel@gmail.com> To: Cy Schubert <Cy.Schubert@cschubert.com> Cc: Konstantin Belousov <kib@FreeBSD.org>, src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r339672 - in head/sys: fs/nfsclient kern sys tools Message-ID: <20181024145649.GC5335@kib.kiev.ua> In-Reply-To: <201810241419.w9OEJXWa004101@slippy.cwsent.com> References: <Cy.Schubert@cschubert.com> <201810241159.w9OBxFWg013534@slippy.cwsent.com> <201810241419.w9OEJXWa004101@slippy.cwsent.com>
next in thread | previous in thread | raw e-mail | index | archive | help
On Wed, Oct 24, 2018 at 07:19:33AM -0700, Cy Schubert wrote: > In message <201810241159.w9OBxFWg013534@slippy.cwsent.com>, Cy Schubert > writes: > > In message <201810232143.w9NLhfeK087221@repo.freebsd.org>, Konstantin > > Belousov > > writes: > > > Author: kib > > > Date: Tue Oct 23 21:43:41 2018 > > > New Revision: 339672 > > > URL: https://svnweb.freebsd.org/changeset/base/339672 > > > > > > Log: > > > Only call sigdeferstop() for NFS. > > > > > > Use bypass to catch any NFS VOP dispatch and route it through the > > > wrapper which does sigdeferstop() and then dispatches original > > > VOP. NFS does not need a bypass below it, which is not supported. > > > > > > The vop offset in the vop_vector is added since otherwise it is > > > impossible to get vop_op_t from the internal table, and I did not > > > wanted to create the layered fs only to wrap NFS VOPs. > > > > > > VFS_OP()s wrap is straightforward. > > > > > > Requested and reviewed by: mjg (previous version) > > > Tested by: pho > > > Sponsored by: The FreeBSD Foundation > > > Differential revision: https://reviews.freebsd.org/D17658 > > > > > > Modified: > > > head/sys/fs/nfsclient/nfs_clvnops.c > > > head/sys/kern/vfs_default.c > > > head/sys/kern/vfs_init.c > > > head/sys/kern/vfs_mount.c > > > head/sys/sys/mount.h > > > head/sys/sys/vnode.h > > > head/sys/tools/vnode_if.awk > > > > > > > Unfortunately this broke amd(8). > > I should have included this. > > Oct 24 00:34:13 slippy amd[2741]: '/home': mount: Operation not > supported > Oct 24 00:34:13 slippy amd[2742]: '/vol': mount: Operation not supported > Oct 24 00:34:13 slippy amd[2743]: '/net': mount: Operation not supported > Oct 24 00:34:14 slippy amd[2742]: '/vol': mount: Operation not supported > Oct 24 00:34:14 slippy amd[2741]: '/home': mount: Operation not > supported > Oct 24 00:34:14 slippy amd[2742]: amfs_toplvl_mount: amfs_mount failed: > Operation not supported Try this. diff --git a/sys/kern/vfs_mount.c b/sys/kern/vfs_mount.c index 8d98cb199ec..74bfe733100 100644 --- a/sys/kern/vfs_mount.c +++ b/sys/kern/vfs_mount.c @@ -808,8 +808,10 @@ sys_mount(struct thread *td, struct mount_args *uap) free(fstype, M_TEMP); if (vfsp == NULL) return (ENOENT); - if (vfsp->vfc_vfsops->vfs_cmount == NULL || ((vfsp->vfc_flags & - VFCF_SBDRY) != 0 && (vfsp->vfc_vfsops_sd->vfs_cmount == NULL))) + if (((vfsp->vfc_flags & VFCF_SBDRY) != 0 && + vfsp->vfc_vfsops_sd->vfs_cmount == NULL) || + ((vfsp->vfc_flags & VFCF_SBDRY) == 0 && + vfsp->vfc_vfsops->vfs_cmount == NULL)) return (EOPNOTSUPP); ma = mount_argsu(ma, "fstype", uap->type, MFSNAMELEN);
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20181024145649.GC5335>