Date: Wed, 24 Oct 2018 12:27:52 -0700 From: Cy Schubert <Cy.Schubert@cschubert.com> To: Konstantin Belousov <kostikbel@gmail.com> Cc: Cy Schubert <Cy.Schubert@cschubert.com>, 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: <201810241927.w9OJRq8H004487@slippy.cwsent.com> In-Reply-To: Message from Konstantin Belousov <kostikbel@gmail.com> of "Wed, 24 Oct 2018 17:56:49 %2B0300." <20181024145649.GC5335@kib.kiev.ua>
next in thread | previous in thread | raw e-mail | index | archive | help
In message <20181024145649.GC5335@kib.kiev.ua>, Konstantin Belousov writes: > 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); Yes, that fixes it. Thank you. -- Cheers, Cy Schubert <Cy.Schubert@cschubert.com> FreeBSD UNIX: <cy@FreeBSD.org> Web: http://www.FreeBSD.org The need of the many outweighs the greed of the few.
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201810241927.w9OJRq8H004487>