Date: Tue, 23 Oct 2012 21:03:11 +0200 From: Pawel Jakub Dawidek <pjd@FreeBSD.org> To: Konstantin Belousov <kib@FreeBSD.org> Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org Subject: Re: svn commit: r241896 - in head: . cddl/contrib/opensolaris/lib/libzpool/common/sys share/man/man9 sys/cam/ctl sys/cddl/compat/opensolaris/kern sys/cddl/compat/opensolaris/sys sys/cddl/contrib/openso... Message-ID: <20121023190311.GA1620@garage.freebsd.pl> In-Reply-To: <201210221750.q9MHot26061585@svn.freebsd.org> References: <201210221750.q9MHot26061585@svn.freebsd.org>
next in thread | previous in thread | raw e-mail | index | archive | help
--pf9I7BMVVzbSWLtt Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Mon, Oct 22, 2012 at 05:50:55PM +0000, Konstantin Belousov wrote: > Author: kib > Date: Mon Oct 22 17:50:54 2012 > New Revision: 241896 > URL: http://svn.freebsd.org/changeset/base/241896 >=20 > Log: > Remove the support for using non-mpsafe filesystem modules. > =20 > In particular, do not lock Giant conditionally when calling into the > filesystem module, remove the VFS_LOCK_GIANT() and related > macros. Stop handling buffers belonging to non-mpsafe filesystems. > =20 > The VFS_VERSION is bumped to indicate the interface change which does > not result in the interface signatures changes. > =20 > Conducted and reviewed by: attilio > Tested by: pho FINALLY! > Deleted: > head/share/man/man9/VFS_LOCK_GIANT.9 > Modified: > head/ObsoleteFiles.inc > head/cddl/contrib/opensolaris/lib/libzpool/common/sys/zfs_context.h > head/share/man/man9/Makefile > head/share/man/man9/namei.9 > head/sys/cam/ctl/ctl_backend_block.c > head/sys/cddl/compat/opensolaris/kern/opensolaris_kobj.c > head/sys/cddl/compat/opensolaris/kern/opensolaris_lookup.c > head/sys/cddl/compat/opensolaris/sys/vnode.h > head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_file.c > head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c > head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_znode.c > head/sys/compat/linprocfs/linprocfs.c > head/sys/compat/linux/linux_file.c > head/sys/compat/linux/linux_misc.c > head/sys/compat/ndis/subr_ndis.c > head/sys/compat/svr4/svr4_misc.c > head/sys/conf/NOTES > head/sys/conf/options > head/sys/dev/hwpmc/hwpmc_mod.c > head/sys/dev/md/md.c > head/sys/dev/nand/nandsim_swap.c > head/sys/dev/xen/blkback/blkback.c > head/sys/fs/nfs/nfs_commonport.c > head/sys/fs/nfsserver/nfs_nfsdport.c > head/sys/fs/procfs/procfs_map.c > head/sys/fs/unionfs/union_subr.c > head/sys/geom/geom_vfs.c > head/sys/geom/journal/g_journal.c > head/sys/i386/ibcs2/ibcs2_misc.c > head/sys/kern/imgact_elf.c > head/sys/kern/kern_acct.c > head/sys/kern/kern_alq.c > head/sys/kern/kern_ctf.c > head/sys/kern/kern_descrip.c > head/sys/kern/kern_exec.c > head/sys/kern/kern_exit.c > head/sys/kern/kern_gzio.c > head/sys/kern/kern_jail.c > head/sys/kern/kern_ktrace.c > head/sys/kern/kern_linker.c > head/sys/kern/kern_proc.c > head/sys/kern/kern_sig.c > head/sys/kern/link_elf.c > head/sys/kern/link_elf_obj.c > head/sys/kern/sys_process.c > head/sys/kern/uipc_syscalls.c > head/sys/kern/uipc_usrreq.c > head/sys/kern/vfs_acl.c > head/sys/kern/vfs_aio.c > head/sys/kern/vfs_bio.c > head/sys/kern/vfs_cache.c > head/sys/kern/vfs_default.c > head/sys/kern/vfs_extattr.c > head/sys/kern/vfs_init.c > head/sys/kern/vfs_lookup.c > head/sys/kern/vfs_mount.c > head/sys/kern/vfs_mountroot.c > head/sys/kern/vfs_subr.c > head/sys/kern/vfs_syscalls.c > head/sys/kern/vfs_vnops.c > head/sys/nfsserver/nfs.h > head/sys/nfsserver/nfs_serv.c > head/sys/nfsserver/nfs_srvsubs.c > head/sys/nlm/nlm_prot_impl.c > head/sys/security/audit/audit_arg.c > head/sys/security/audit/audit_syscalls.c > head/sys/security/audit/audit_worker.c > head/sys/security/mac/mac_process.c > head/sys/security/mac/mac_syscalls.c > head/sys/sys/buf.h > head/sys/sys/bufobj.h > head/sys/sys/mount.h > head/sys/sys/namei.h > head/sys/ufs/ffs/ffs_alloc.c > head/sys/ufs/ffs/ffs_softdep.c > head/sys/ufs/ufs/ufs_quota.c > head/sys/vm/vm_fault.c > head/sys/vm/vm_mmap.c > head/sys/vm/vm_object.c > head/sys/vm/vm_pageout.c > head/sys/vm/vnode_pager.c >=20 > Modified: head/ObsoleteFiles.inc > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D > --- head/ObsoleteFiles.inc Mon Oct 22 17:47:37 2012 (r241895) > +++ head/ObsoleteFiles.inc Mon Oct 22 17:50:54 2012 (r241896) > @@ -38,6 +38,8 @@ > # xargs -n1 | sort | uniq -d; > # done > =20 > +# 20121022: VFS_LOCK_GIANT elimination > +OLD_FILES+=3Dusr/share/man/man9/VFS_LOCK_GIANT.9.gz > # 20121004: remove incomplete unwind.h > OLD_FILES+=3Dusr/include/clang/3.2/unwind.h > # 20120908: pf cleanup >=20 > Modified: head/cddl/contrib/opensolaris/lib/libzpool/common/sys/zfs_conte= xt.h > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D > --- head/cddl/contrib/opensolaris/lib/libzpool/common/sys/zfs_context.h M= on Oct 22 17:47:37 2012 (r241895) > +++ head/cddl/contrib/opensolaris/lib/libzpool/common/sys/zfs_context.h M= on Oct 22 17:50:54 2012 (r241896) > @@ -430,14 +430,6 @@ extern int fop_getattr(vnode_t *vp, vatt > =20 > #define vn_lock(vp, type) > #define VOP_UNLOCK(vp, type) > -#ifdef VFS_LOCK_GIANT > -#undef VFS_LOCK_GIANT > -#endif > -#define VFS_LOCK_GIANT(mp) 0 > -#ifdef VFS_UNLOCK_GIANT > -#undef VFS_UNLOCK_GIANT > -#endif > -#define VFS_UNLOCK_GIANT(vfslocked) > =20 > extern int vn_open(char *path, int x1, int oflags, int mode, vnode_t **v= pp, > int x2, int x3); >=20 > Modified: head/share/man/man9/Makefile > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D > --- head/share/man/man9/Makefile Mon Oct 22 17:47:37 2012 (r241895) > +++ head/share/man/man9/Makefile Mon Oct 22 17:50:54 2012 (r241896) > @@ -280,7 +280,6 @@ MAN=3D accept_filter.9 \ > vfs_getnewfsid.9 \ > vfs_getopt.9 \ > vfs_getvfs.9 \ > - VFS_LOCK_GIANT.9 \ > VFS_MOUNT.9 \ > vfs_mount.9 \ > vfs_mountedfrom.9 \ > @@ -1413,7 +1412,6 @@ MLINKS+=3Dvfs_getopt.9 vfs_copyopt.9 \ > vfs_getopt.9 vfs_setopt.9 \ > vfs_getopt.9 vfs_setopt_part.9 \ > vfs_getopt.9 vfs_setopts.9 > -MLINKS+=3DVFS_LOCK_GIANT.9 VFS_UNLOCK_GIANT.9 > MLINKS+=3Dvhold.9 vdrop.9 \ > vhold.9 vdropl.9 \ > vhold.9 vholdl.9 >=20 > Modified: head/share/man/man9/namei.9 > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D > --- head/share/man/man9/namei.9 Mon Oct 22 17:47:37 2012 (r241895) > +++ head/share/man/man9/namei.9 Mon Oct 22 17:50:54 2012 (r241896) > @@ -168,19 +168,6 @@ This flag allows the > function to return the parent (directory) vnode in an unlocked state. > The parent vnode must be released separately by using > .Xr vrele 9 . > -.It Dv MPSAFE > -With this flag set, > -.Fn namei > -will conditionally acquire > -.Va Giant > -if it is required by a traversed file system. > -MPSAFE callers should pass the results of > -.Fn NDHASGIANT > -to > -.Xr VFS_UNLOCK_GIANT > -in order to conditionally release > -.Va Giant > -if necessary. > .It Dv NOCACHE > Avoid > .Fn namei > @@ -354,7 +341,6 @@ An attempt is made to modify a file or d > .Xr uio 9 , > .Xr uma 9 , > .Xr VFS 9 , > -.Xr VFS_UNLOCK_GIANT 9 , > .Xr vnode 9 , > .Xr vput 9 , > .Xr vref 9 >=20 > Modified: head/sys/cam/ctl/ctl_backend_block.c > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D > --- head/sys/cam/ctl/ctl_backend_block.c Mon Oct 22 17:47:37 2012 (r24189= 5) > +++ head/sys/cam/ctl/ctl_backend_block.c Mon Oct 22 17:50:54 2012 (r24189= 6) > @@ -594,14 +594,12 @@ ctl_be_block_flush_file(struct ctl_be_bl > { > union ctl_io *io; > struct mount *mountpoint; > - int vfs_is_locked, error, lock_flags; > + int error, lock_flags; > =20 > DPRINTF("entered\n"); > =20 > io =3D beio->io; > =20 > - vfs_is_locked =3D VFS_LOCK_GIANT(be_lun->vn->v_mount); > - > (void) vn_start_write(be_lun->vn, &mountpoint, V_WAIT); > =20 > if (MNT_SHARED_WRITES(mountpoint) > @@ -621,8 +619,6 @@ ctl_be_block_flush_file(struct ctl_be_bl > =20 > vn_finished_write(mountpoint); > =20 > - VFS_UNLOCK_GIANT(vfs_is_locked); > - > if (error =3D=3D 0) > ctl_set_success(&io->scsiio); > else { > @@ -648,7 +644,7 @@ ctl_be_block_dispatch_file(struct ctl_be > union ctl_io *io; > struct uio xuio; > struct iovec *xiovec; > - int vfs_is_locked, flags; > + int flags; > int error, i; > =20 > DPRINTF("entered\n"); > @@ -681,7 +677,6 @@ ctl_be_block_dispatch_file(struct ctl_be > xiovec->iov_len =3D beio->sg_segs[i].len; > } > =20 > - vfs_is_locked =3D VFS_LOCK_GIANT(be_lun->vn->v_mount); > if (beio->bio_cmd =3D=3D BIO_READ) { > vn_lock(be_lun->vn, LK_SHARED | LK_RETRY); > =20 > @@ -754,7 +749,6 @@ ctl_be_block_dispatch_file(struct ctl_be > =20 > vn_finished_write(mountpoint); > } > - VFS_UNLOCK_GIANT(vfs_is_locked); > =20 > /* > * If we got an error, set the sense data to "MEDIUM ERROR" and > @@ -1478,7 +1472,6 @@ ctl_be_block_close(struct ctl_be_block_l > DROP_GIANT(); > if (be_lun->vn) { > int flags =3D FREAD | FWRITE; > - int vfs_is_locked =3D 0; > =20 > switch (be_lun->dev_type) { > case CTL_BE_BLOCK_DEV: > @@ -1490,7 +1483,6 @@ ctl_be_block_close(struct ctl_be_block_l > } > break; > case CTL_BE_BLOCK_FILE: > - vfs_is_locked =3D VFS_LOCK_GIANT(be_lun->vn->v_mount); > break; > case CTL_BE_BLOCK_NONE: > default: > @@ -1505,7 +1497,6 @@ ctl_be_block_close(struct ctl_be_block_l > case CTL_BE_BLOCK_DEV: > break; > case CTL_BE_BLOCK_FILE: > - VFS_UNLOCK_GIANT(vfs_is_locked); > if (be_lun->backend.file.cred !=3D NULL) { > crfree(be_lun->backend.file.cred); > be_lun->backend.file.cred =3D NULL; > @@ -1529,7 +1520,6 @@ ctl_be_block_open(struct ctl_be_block_so > struct nameidata nd; > int flags; > int error; > - int vfs_is_locked; > =20 > /* > * XXX KDM allow a read-only option? > @@ -1587,8 +1577,6 @@ ctl_be_block_open(struct ctl_be_block_so > return (error); > } > =20 > - vfs_is_locked =3D NDHASGIANT(&nd); > - > NDFREE(&nd, NDF_ONLY_PNBUF); > =09 > be_lun->vn =3D nd.ni_vp; > @@ -1604,7 +1592,6 @@ ctl_be_block_open(struct ctl_be_block_so > "%s is not a disk or file", be_lun->dev_path); > } > VOP_UNLOCK(be_lun->vn, 0); > - VFS_UNLOCK_GIANT(vfs_is_locked); > =20 > if (error !=3D 0) { > ctl_be_block_close(be_lun); > @@ -2090,7 +2077,7 @@ ctl_be_block_modify(struct ctl_be_block_ > { > struct ctl_lun_modify_params *params; > struct ctl_be_block_lun *be_lun; > - int vfs_is_locked, error; > + int error; > =20 > params =3D &req->reqdata.modify; > =20 > @@ -2120,7 +2107,6 @@ ctl_be_block_modify(struct ctl_be_block_ > } > } > =20 > - vfs_is_locked =3D VFS_LOCK_GIANT(be_lun->vn->v_mount); > vn_lock(be_lun->vn, LK_SHARED | LK_RETRY); > =20 > if (be_lun->vn->v_type =3D=3D VREG) > @@ -2129,7 +2115,6 @@ ctl_be_block_modify(struct ctl_be_block_ > error =3D ctl_be_block_modify_dev(be_lun, req); > =20 > VOP_UNLOCK(be_lun->vn, 0); > - VFS_UNLOCK_GIANT(vfs_is_locked); > =20 > if (error !=3D 0) > goto bailout_error; >=20 > Modified: head/sys/cddl/compat/opensolaris/kern/opensolaris_kobj.c > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D > --- head/sys/cddl/compat/opensolaris/kern/opensolaris_kobj.c Mon Oct 22 1= 7:47:37 2012 (r241895) > +++ head/sys/cddl/compat/opensolaris/kern/opensolaris_kobj.c Mon Oct 22 1= 7:50:54 2012 (r241896) > @@ -69,7 +69,7 @@ kobj_open_file_vnode(const char *file) > struct thread *td =3D curthread; > struct filedesc *fd; > struct nameidata nd; > - int error, flags, vfslocked; > + int error, flags; > =20 > fd =3D td->td_proc->p_fd; > FILEDESC_XLOCK(fd); > @@ -84,15 +84,13 @@ kobj_open_file_vnode(const char *file) > FILEDESC_XUNLOCK(fd); > =20 > flags =3D FREAD | O_NOFOLLOW; > - NDINIT(&nd, LOOKUP, MPSAFE, UIO_SYSSPACE, file, td); > + NDINIT(&nd, LOOKUP, 0, UIO_SYSSPACE, file, td); > error =3D vn_open_cred(&nd, &flags, 0, 0, curthread->td_ucred, NULL); > if (error !=3D 0) > return (NULL); > - vfslocked =3D NDHASGIANT(&nd); > NDFREE(&nd, NDF_ONLY_PNBUF); > /* We just unlock so we hold a reference. */ > VOP_UNLOCK(nd.ni_vp, 0); > - VFS_UNLOCK_GIANT(vfslocked); > return (nd.ni_vp); > } > =20 > @@ -130,15 +128,13 @@ kobj_get_filesize_vnode(struct _buf *fil > { > struct vnode *vp =3D file->ptr; > struct vattr va; > - int error, vfslocked; > + int error; > =20 > - vfslocked =3D VFS_LOCK_GIANT(vp->v_mount); > vn_lock(vp, LK_SHARED | LK_RETRY); > error =3D VOP_GETATTR(vp, &va, curthread->td_ucred); > VOP_UNLOCK(vp, 0); > if (error =3D=3D 0) > *size =3D (uint64_t)va.va_size; > - VFS_UNLOCK_GIANT(vfslocked); > return (error); > } > =20 > @@ -171,7 +167,7 @@ kobj_read_file_vnode(struct _buf *file,=20 > struct thread *td =3D curthread; > struct uio auio; > struct iovec aiov; > - int error, vfslocked; > + int error; > =20 > bzero(&aiov, sizeof(aiov)); > bzero(&auio, sizeof(auio)); > @@ -187,11 +183,9 @@ kobj_read_file_vnode(struct _buf *file,=20 > auio.uio_resid =3D size; > auio.uio_td =3D td; > =20 > - vfslocked =3D VFS_LOCK_GIANT(vp->v_mount); > vn_lock(vp, LK_SHARED | LK_RETRY); > error =3D VOP_READ(vp, &auio, IO_UNIT | IO_SYNC, td->td_ucred); > VOP_UNLOCK(vp, 0); > - VFS_UNLOCK_GIANT(vfslocked); > return (error !=3D 0 ? -1 : size - auio.uio_resid); > } > =20 > @@ -221,14 +215,7 @@ void > kobj_close_file(struct _buf *file) > { > =20 > - if (file->mounted) { > - struct vnode *vp =3D file->ptr; > - struct thread *td =3D curthread; > - int vfslocked; > - > - vfslocked =3D VFS_LOCK_GIANT(vp->v_mount); > - vn_close(vp, FREAD, td->td_ucred, td); > - VFS_UNLOCK_GIANT(vfslocked); > - } > + if (file->mounted) > + vn_close(file->ptr, FREAD, curthread->td_ucred, curthread); > kmem_free(file, sizeof(*file)); > } >=20 > Modified: head/sys/cddl/compat/opensolaris/kern/opensolaris_lookup.c > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D > --- head/sys/cddl/compat/opensolaris/kern/opensolaris_lookup.c Mon Oct 22= 17:47:37 2012 (r241895) > +++ head/sys/cddl/compat/opensolaris/kern/opensolaris_lookup.c Mon Oct 22= 17:50:54 2012 (r241896) > @@ -54,7 +54,7 @@ lookupnameat(char *dirname, enum uio_seg > vref(startvp); > ltype =3D VOP_ISLOCKED(startvp); > VOP_UNLOCK(startvp, 0); > - NDINIT_ATVP(&nd, LOOKUP, LOCKLEAF | MPSAFE | follow, seg, dirname, > + NDINIT_ATVP(&nd, LOOKUP, LOCKLEAF | follow, seg, dirname, > startvp, curthread); > error =3D namei(&nd); > *compvpp =3D nd.ni_vp; >=20 > Modified: head/sys/cddl/compat/opensolaris/sys/vnode.h > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D > --- head/sys/cddl/compat/opensolaris/sys/vnode.h Mon Oct 22 17:47:37 2012= (r241895) > +++ head/sys/cddl/compat/opensolaris/sys/vnode.h Mon Oct 22 17:50:54 2012= (r241896) > @@ -193,7 +193,7 @@ vn_openat(char *pnamep, enum uio_seg seg > =20 > if (startvp !=3D NULL) > vref(startvp); > - NDINIT_ATVP(&nd, operation, MPSAFE, UIO_SYSSPACE, pnamep, startvp, td); > + NDINIT_ATVP(&nd, operation, 0, UIO_SYSSPACE, pnamep, startvp, td); > filemode |=3D O_NOFOLLOW; > error =3D vn_open_cred(&nd, &filemode, createmode, 0, td->td_ucred, NUL= L); > NDFREE(&nd, NDF_ONLY_PNBUF); > @@ -223,13 +223,12 @@ zfs_vn_rdwr(enum uio_rw rw, vnode_t *vp, > ssize_t *residp) > { > struct thread *td =3D curthread; > - int error, vfslocked; > + int error; > ssize_t resid; > =20 > ASSERT(ioflag =3D=3D 0); > ASSERT(ulimit =3D=3D RLIM64_INFINITY); > =20 > - vfslocked =3D VFS_LOCK_GIANT(vp->v_mount); > if (rw =3D=3D UIO_WRITE) { > ioflag =3D IO_SYNC; > } else { > @@ -237,7 +236,6 @@ zfs_vn_rdwr(enum uio_rw rw, vnode_t *vp, > } > error =3D vn_rdwr(rw, vp, base, len, offset, seg, ioflag, cr, NOCRED, > &resid, td); > - VFS_UNLOCK_GIANT(vfslocked); > if (residp !=3D NULL) > *residp =3D (ssize_t)resid; > return (error); > @@ -249,11 +247,10 @@ static __inline int > zfs_vop_fsync(vnode_t *vp, int flag, cred_t *cr) > { > struct mount *mp; > - int error, vfslocked; > + int error; > =20 > ASSERT(flag =3D=3D FSYNC); > =20 > - vfslocked =3D VFS_LOCK_GIANT(vp->v_mount); > if ((error =3D vn_start_write(vp, &mp, V_WAIT | PCATCH)) !=3D 0) > goto drop; > vn_lock(vp, LK_EXCLUSIVE | LK_RETRY); > @@ -261,7 +258,6 @@ zfs_vop_fsync(vnode_t *vp, int flag, cre > VOP_UNLOCK(vp, 0); > vn_finished_write(mp); > drop: > - VFS_UNLOCK_GIANT(vfslocked); > return (error); > } > #define VOP_FSYNC(vp, flag, cr, ct) zfs_vop_fsync((vp), (flag), (cr)) > @@ -269,14 +265,12 @@ drop: > static __inline int > zfs_vop_close(vnode_t *vp, int flag, int count, offset_t offset, cred_t = *cr) > { > - int error, vfslocked; > + int error; > =20 > ASSERT(count =3D=3D 1); > ASSERT(offset =3D=3D 0); > =20 > - vfslocked =3D VFS_LOCK_GIANT(vp->v_mount); > error =3D vn_close(vp, flag, cr, curthread); > - VFS_UNLOCK_GIANT(vfslocked); > return (error); > } > #define VOP_CLOSE(vp, oflags, count, offset, cr, ct) \ >=20 > Modified: head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_file.c > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D > --- head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_file.c Mon O= ct 22 17:47:37 2012 (r241895) > +++ head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_file.c Mon O= ct 22 17:50:54 2012 (r241896) > @@ -54,7 +54,7 @@ vdev_file_open(vdev_t *vd, uint64_t *psi > vdev_file_t *vf; > vnode_t *vp; > vattr_t vattr; > - int error, vfslocked; > + int error; > =20 > /* > * We must have a pathname, and it must be absolute. > @@ -114,11 +114,9 @@ skip_open: > * Determine the physical size of the file. > */ > vattr.va_mask =3D AT_SIZE; > - vfslocked =3D VFS_LOCK_GIANT(vp->v_mount); > vn_lock(vp, LK_SHARED | LK_RETRY); > error =3D VOP_GETATTR(vp, &vattr, kcred); > VOP_UNLOCK(vp, 0); > - VFS_UNLOCK_GIANT(vfslocked); > if (error) { > (void) VOP_CLOSE(vp, spa_mode(vd->vdev_spa), 1, 0, kcred, NULL); > vd->vdev_stat.vs_aux =3D VDEV_AUX_OPEN_FAILED; >=20 > Modified: head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D > --- head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c Mon O= ct 22 17:47:37 2012 (r241895) > +++ head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c Mon O= ct 22 17:50:54 2012 (r241896) > @@ -1092,14 +1092,12 @@ zfs_get_done(zgd_t *zgd, int error) > { > znode_t *zp =3D zgd->zgd_private; > objset_t *os =3D zp->z_zfsvfs->z_os; > - int vfslocked; > =20 > if (zgd->zgd_db) > dmu_buf_rele(zgd->zgd_db, zgd); > =20 > zfs_range_unlock(zgd->zgd_rl); > =20 > - vfslocked =3D VFS_LOCK_GIANT(zp->z_zfsvfs->z_vfs); > /* > * Release the vnode asynchronously as we currently have the > * txg stopped from syncing. > @@ -1110,7 +1108,6 @@ zfs_get_done(zgd_t *zgd, int error) > zil_add_block(zgd->zgd_zilog, zgd->zgd_bp); > =20 > kmem_free(zgd, sizeof (zgd_t)); > - VFS_UNLOCK_GIANT(vfslocked); > } > =20 > #ifdef DEBUG > @@ -6337,7 +6334,7 @@ vop_getextattr { > } > =20 > flags =3D FREAD; > - NDINIT_ATVP(&nd, LOOKUP, NOFOLLOW | MPSAFE, UIO_SYSSPACE, attrname, > + NDINIT_ATVP(&nd, LOOKUP, NOFOLLOW, UIO_SYSSPACE, attrname, > xvp, td); > error =3D vn_open_cred(&nd, &flags, 0, 0, ap->a_cred, NULL); > vp =3D nd.ni_vp; > @@ -6405,7 +6402,7 @@ vop_deleteextattr { > return (error); > } > =20 > - NDINIT_ATVP(&nd, DELETE, NOFOLLOW | LOCKPARENT | LOCKLEAF | MPSAFE, > + NDINIT_ATVP(&nd, DELETE, NOFOLLOW | LOCKPARENT | LOCKLEAF, > UIO_SYSSPACE, attrname, xvp, td); > error =3D namei(&nd); > vp =3D nd.ni_vp; > @@ -6472,7 +6469,7 @@ vop_setextattr { > } > =20 > flags =3D FFLAGS(O_WRONLY | O_CREAT); > - NDINIT_ATVP(&nd, LOOKUP, NOFOLLOW | MPSAFE, UIO_SYSSPACE, attrname, > + NDINIT_ATVP(&nd, LOOKUP, NOFOLLOW, UIO_SYSSPACE, attrname, > xvp, td); > error =3D vn_open_cred(&nd, &flags, 0600, 0, ap->a_cred, NULL); > vp =3D nd.ni_vp; > @@ -6553,7 +6550,7 @@ vop_listextattr { > return (error); > } > =20 > - NDINIT_ATVP(&nd, LOOKUP, NOFOLLOW | LOCKLEAF | LOCKSHARED | MPSAFE, > + NDINIT_ATVP(&nd, LOOKUP, NOFOLLOW | LOCKLEAF | LOCKSHARED, > UIO_SYSSPACE, ".", xvp, td); > error =3D namei(&nd); > vp =3D nd.ni_vp; >=20 > Modified: head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_znode.c > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D > --- head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_znode.c Mon O= ct 22 17:47:37 2012 (r241895) > +++ head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_znode.c Mon O= ct 22 17:50:54 2012 (r241896) > @@ -1404,7 +1404,6 @@ zfs_zinactive(znode_t *zp) > vnode_t *vp =3D ZTOV(zp); > zfsvfs_t *zfsvfs =3D zp->z_zfsvfs; > uint64_t z_id =3D zp->z_id; > - int vfslocked; > =20 > ASSERT(zp->z_sa_hdl); > =20 > @@ -1437,9 +1436,7 @@ zfs_zinactive(znode_t *zp) > ZFS_OBJ_HOLD_EXIT(zfsvfs, z_id); > ASSERT(vp->v_count =3D=3D 0); > vrecycle(vp); > - vfslocked =3D VFS_LOCK_GIANT(zfsvfs->z_vfs); > zfs_rmnode(zp); > - VFS_UNLOCK_GIANT(vfslocked); > return; > } > =20 >=20 > Modified: head/sys/compat/linprocfs/linprocfs.c > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D > --- head/sys/compat/linprocfs/linprocfs.c Mon Oct 22 17:47:37 2012 (r2418= 95) > +++ head/sys/compat/linprocfs/linprocfs.c Mon Oct 22 17:50:54 2012 (r2418= 96) > @@ -335,7 +335,7 @@ linprocfs_domtab(PFS_FILL_ARGS) > int error; > =20 > /* resolve symlinks etc. in the emulation tree prefix */ > - NDINIT(&nd, LOOKUP, FOLLOW | MPSAFE, UIO_SYSSPACE, linux_emul_path, td); > + NDINIT(&nd, LOOKUP, FOLLOW, UIO_SYSSPACE, linux_emul_path, td); > flep =3D NULL; > error =3D namei(&nd); > lep =3D linux_emul_path; > @@ -343,7 +343,6 @@ linprocfs_domtab(PFS_FILL_ARGS) > if (vn_fullpath(td, nd.ni_vp, &dlep, &flep) =3D=3D 0) > lep =3D dlep; > vrele(nd.ni_vp); > - VFS_UNLOCK_GIANT(NDHASGIANT(&nd)); > } > lep_len =3D strlen(lep); > =20 > @@ -414,7 +413,7 @@ linprocfs_dopartitions(PFS_FILL_ARGS) > int major, minor; > =20 > /* resolve symlinks etc. in the emulation tree prefix */ > - NDINIT(&nd, LOOKUP, FOLLOW | MPSAFE, UIO_SYSSPACE, linux_emul_path, td); > + NDINIT(&nd, LOOKUP, FOLLOW, UIO_SYSSPACE, linux_emul_path, td); > flep =3D NULL; > error =3D namei(&nd); > lep =3D linux_emul_path; > @@ -422,7 +421,6 @@ linprocfs_dopartitions(PFS_FILL_ARGS) > if (vn_fullpath(td, nd.ni_vp, &dlep, &flep) =3D=3D 0) > lep =3D dlep; > vrele(nd.ni_vp); > - VFS_UNLOCK_GIANT(NDHASGIANT(&nd)); > } > lep_len =3D strlen(lep); > =20 > @@ -1012,7 +1010,6 @@ linprocfs_doprocmaps(PFS_FILL_ARGS) > int error; > struct vnode *vp; > struct vattr vat; > - int locked; > =20 > PROC_LOCK(p); > error =3D p_candebug(td, p); > @@ -1065,12 +1062,10 @@ linprocfs_doprocmaps(PFS_FILL_ARGS) > VM_OBJECT_UNLOCK(obj); > if (vp) { > vn_fullpath(td, vp, &name, &freename); > - locked =3D VFS_LOCK_GIANT(vp->v_mount); > vn_lock(vp, LK_SHARED | LK_RETRY); > VOP_GETATTR(vp, &vat, td->td_ucred); > ino =3D vat.va_fileid; > vput(vp); > - VFS_UNLOCK_GIANT(locked); > } > } else { > flags =3D 0; >=20 > Modified: head/sys/compat/linux/linux_file.c > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D > --- head/sys/compat/linux/linux_file.c Mon Oct 22 17:47:37 2012 (r241895) > +++ head/sys/compat/linux/linux_file.c Mon Oct 22 17:50:54 2012 (r241896) > @@ -337,7 +337,7 @@ getdents_common(struct thread *td, struc > struct l_dirent64 *linux_dirent64; > int buflen, error, eofflag, nbytes, justone; > u_long *cookies =3D NULL, *cookiep; > - int ncookies, vfslocked; > + int ncookies; > =20 > nbytes =3D args->count; > if (nbytes =3D=3D 1) { > @@ -359,9 +359,7 @@ getdents_common(struct thread *td, struc > =20 > off =3D foffset_lock(fp, 0); > vp =3D fp->f_vnode; > - vfslocked =3D VFS_LOCK_GIANT(vp->v_mount); > if (vp->v_type !=3D VDIR) { > - VFS_UNLOCK_GIANT(vfslocked); > foffset_unlock(fp, off, 0); > fdrop(fp, td); > return (EINVAL); > @@ -521,7 +519,6 @@ out: > free(cookies, M_TEMP); > =20 > VOP_UNLOCK(vp, 0); > - VFS_UNLOCK_GIANT(vfslocked); > foffset_unlock(fp, off, 0); > fdrop(fp, td); > free(buf, M_TEMP); >=20 > Modified: head/sys/compat/linux/linux_misc.c > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D > --- head/sys/compat/linux/linux_misc.c Mon Oct 22 17:47:37 2012 (r241895) > +++ head/sys/compat/linux/linux_misc.c Mon Oct 22 17:50:54 2012 (r241896) > @@ -247,7 +247,7 @@ linux_uselib(struct thread *td, struct l > char *library; > ssize_t aresid; > int error; > - int locked, vfslocked; > + int locked; > =20 > LCONVPATHEXIST(td, args->library, &library); > =20 > @@ -257,11 +257,10 @@ linux_uselib(struct thread *td, struct l > #endif > =20 > a_out =3D NULL; > - vfslocked =3D 0; > locked =3D 0; > vp =3D NULL; > =20 > - NDINIT(&ni, LOOKUP, ISOPEN | FOLLOW | LOCKLEAF | MPSAFE | AUDITVNODE1, > + NDINIT(&ni, LOOKUP, ISOPEN | FOLLOW | LOCKLEAF | AUDITVNODE1, > UIO_SYSSPACE, library, td); > error =3D namei(&ni); > LFREEPATH(library); > @@ -269,7 +268,6 @@ linux_uselib(struct thread *td, struct l > goto cleanup; > =20 > vp =3D ni.ni_vp; > - vfslocked =3D NDHASGIANT(&ni); > NDFREE(&ni, NDF_ONLY_PNBUF); > =20 > /* > @@ -393,7 +391,6 @@ linux_uselib(struct thread *td, struct l > */ > locked =3D 0; > VOP_UNLOCK(vp, 0); > - VFS_UNLOCK_GIANT(vfslocked); > =20 > /* > * Check if file_offset page aligned. Currently we cannot handle > @@ -463,10 +460,8 @@ linux_uselib(struct thread *td, struct l > =20 > cleanup: > /* Unlock vnode if needed */ > - if (locked) { > + if (locked) > VOP_UNLOCK(vp, 0); > - VFS_UNLOCK_GIANT(vfslocked); > - } > =20 > /* Release the temporary mapping. */ > if (a_out) >=20 > Modified: head/sys/compat/ndis/subr_ndis.c > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D > --- head/sys/compat/ndis/subr_ndis.c Mon Oct 22 17:47:37 2012 (r241895) > +++ head/sys/compat/ndis/subr_ndis.c Mon Oct 22 17:50:54 2012 (r241896) > @@ -2741,7 +2741,7 @@ NdisOpenFile(status, filehandle, filelen > char *afilename =3D NULL; > struct thread *td =3D curthread; > struct nameidata nd; > - int flags, error, vfslocked; > + int flags, error; > struct vattr vat; > struct vattr *vap =3D &vat; > ndis_fh *fh; > @@ -2821,7 +2821,7 @@ NdisOpenFile(status, filehandle, filelen > if (td->td_proc->p_fd->fd_cdir =3D=3D NULL) > td->td_proc->p_fd->fd_cdir =3D rootvnode; > =20 > - NDINIT(&nd, LOOKUP, FOLLOW | MPSAFE, UIO_SYSSPACE, path, td); > + NDINIT(&nd, LOOKUP, FOLLOW, UIO_SYSSPACE, path, td); > =20 > flags =3D FREAD; > error =3D vn_open(&nd, &flags, 0, NULL); > @@ -2833,7 +2833,6 @@ NdisOpenFile(status, filehandle, filelen > free(afilename, M_DEVBUF); > return; > } > - vfslocked =3D NDHASGIANT(&nd); > =20 > ExFreePool(path); > =20 > @@ -2842,7 +2841,6 @@ NdisOpenFile(status, filehandle, filelen > /* Get the file size. */ > VOP_GETATTR(nd.ni_vp, vap, td->td_ucred); > VOP_UNLOCK(nd.ni_vp, 0); > - VFS_UNLOCK_GIANT(vfslocked); > =20 > fh->nf_vp =3D nd.ni_vp; > fh->nf_map =3D NULL; > @@ -2862,7 +2860,7 @@ NdisMapFile(status, mappedbuffer, fileha > struct thread *td =3D curthread; > linker_file_t lf; > caddr_t kldstart; > - int error, vfslocked; > + int error; > ssize_t resid; > struct vnode *vp; > =20 > @@ -2903,10 +2901,8 @@ NdisMapFile(status, mappedbuffer, fileha > } > =20 > vp =3D fh->nf_vp; > - vfslocked =3D VFS_LOCK_GIANT(vp->v_mount); > error =3D vn_rdwr(UIO_READ, vp, fh->nf_map, fh->nf_maplen, 0, > UIO_SYSSPACE, 0, td->td_ucred, NOCRED, &resid, td); > - VFS_UNLOCK_GIANT(vfslocked); > =20 > if (error) > *status =3D NDIS_STATUS_FAILURE; > @@ -2937,7 +2933,6 @@ NdisCloseFile(filehandle) > { > struct thread *td =3D curthread; > ndis_fh *fh; > - int vfslocked; > struct vnode *vp; > =20 > if (filehandle =3D=3D NULL) > @@ -2955,9 +2950,7 @@ NdisCloseFile(filehandle) > =20 > if (fh->nf_type =3D=3D NDIS_FH_TYPE_VFS) { > vp =3D fh->nf_vp; > - vfslocked =3D VFS_LOCK_GIANT(vp->v_mount); > vn_close(vp, FREAD, td->td_ucred, td); > - VFS_UNLOCK_GIANT(vfslocked); > } > =20 > fh->nf_vp =3D NULL; >=20 > Modified: head/sys/compat/svr4/svr4_misc.c > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D > --- head/sys/compat/svr4/svr4_misc.c Mon Oct 22 17:47:37 2012 (r241895) > +++ head/sys/compat/svr4/svr4_misc.c Mon Oct 22 17:50:54 2012 (r241896) > @@ -241,7 +241,7 @@ svr4_sys_getdents64(td, uap) > struct iovec aiov; > off_t off; > struct svr4_dirent64 svr4_dirent; > - int buflen, error, eofflag, nbytes, justone, vfslocked; > + int buflen, error, eofflag, nbytes, justone; > u_long *cookies =3D NULL, *cookiep; > int ncookies; > =20 > @@ -258,9 +258,7 @@ svr4_sys_getdents64(td, uap) > } > =20 > vp =3D fp->f_vnode; > - vfslocked =3D VFS_LOCK_GIANT(vp->v_mount); > if (vp->v_type !=3D VDIR) { > - VFS_UNLOCK_GIANT(vfslocked); > fdrop(fp, td); > return (EINVAL); > } > @@ -397,7 +395,6 @@ eof: > td->td_retval[0] =3D nbytes - resid; > out: > VOP_UNLOCK(vp, 0); > - VFS_UNLOCK_GIANT(vfslocked); > fdrop(fp, td); > if (cookies) > free(cookies, M_TEMP); > @@ -422,7 +419,7 @@ svr4_sys_getdents(td, uap) > struct iovec aiov; > struct svr4_dirent idb; > off_t off; /* true file offset */ > - int buflen, error, eofflag, vfslocked; > + int buflen, error, eofflag; > u_long *cookiebuf =3D NULL, *cookie; > int ncookies =3D 0, *retval =3D td->td_retval; > =20 > @@ -439,9 +436,7 @@ svr4_sys_getdents(td, uap) > } > =20 > vp =3D fp->f_vnode; > - vfslocked =3D VFS_LOCK_GIANT(vp->v_mount); > if (vp->v_type !=3D VDIR) { > - VFS_UNLOCK_GIANT(vfslocked); > fdrop(fp, td); > return (EINVAL); > } > @@ -534,7 +529,6 @@ eof: > *retval =3D uap->nbytes - resid; > out: > VOP_UNLOCK(vp, 0); > - VFS_UNLOCK_GIANT(vfslocked); > fdrop(fp, td); > if (cookiebuf) > free(cookiebuf, M_TEMP); > @@ -614,7 +608,7 @@ svr4_sys_fchroot(td, uap) > struct filedesc *fdp =3D td->td_proc->p_fd; > struct vnode *vp; > struct file *fp; > - int error, vfslocked; > + int error; > =20 > if ((error =3D priv_check(td, PRIV_VFS_FCHROOT)) !=3D 0) > return error; > @@ -624,7 +618,6 @@ svr4_sys_fchroot(td, uap) > vp =3D fp->f_vnode; > VREF(vp); > fdrop(fp, td); > - vfslocked =3D VFS_LOCK_GIANT(vp->v_mount); > vn_lock(vp, LK_EXCLUSIVE | LK_RETRY); > error =3D change_dir(vp, td); > if (error) > @@ -637,11 +630,9 @@ svr4_sys_fchroot(td, uap) > VOP_UNLOCK(vp, 0); > error =3D change_root(vp, td); > vrele(vp); > - VFS_UNLOCK_GIANT(vfslocked); > return (error); > fail: > vput(vp); > - VFS_UNLOCK_GIANT(vfslocked); > return (error); > } > =20 > @@ -1652,13 +1643,12 @@ svr4_sys_resolvepath(td, uap) > int error, *retval =3D td->td_retval; > unsigned int ncopy; > =20 > - NDINIT(&nd, LOOKUP, NOFOLLOW | SAVENAME | MPSAFE, UIO_USERSPACE, > + NDINIT(&nd, LOOKUP, NOFOLLOW | SAVENAME, UIO_USERSPACE, > uap->path, td); > =20 > if ((error =3D namei(&nd)) !=3D 0) > return (error); > NDFREE(&nd, NDF_NO_FREE_PNBUF); > - VFS_UNLOCK_GIANT(NDHASGIANT(&nd)); > =20 > ncopy =3D min(uap->bufsiz, strlen(nd.ni_cnd.cn_pnbuf) + 1); > if ((error =3D copyout(nd.ni_cnd.cn_pnbuf, uap->buf, ncopy)) !=3D 0) >=20 > Modified: head/sys/conf/NOTES > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D > --- head/sys/conf/NOTES Mon Oct 22 17:47:37 2012 (r241895) > +++ head/sys/conf/NOTES Mon Oct 22 17:50:54 2012 (r241896) > @@ -1088,9 +1088,6 @@ options REISERFS > # unsuitable for inclusion on machines with untrusted local users. > options VFS_AIO > =20 > -# Enable mounting of non-MPSAFE filesystems. > -options VFS_ALLOW_NONMPSAFE > - > # Cryptographically secure random number generator; /dev/random > device random > =20 >=20 > Modified: head/sys/conf/options > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D > --- head/sys/conf/options Mon Oct 22 17:47:37 2012 (r241895) > +++ head/sys/conf/options Mon Oct 22 17:50:54 2012 (r241896) > @@ -188,7 +188,6 @@ SW_WATCHDOG opt_watchdog.h > TURNSTILE_PROFILING > UMTX_PROFILING > VFS_AIO > -VFS_ALLOW_NONMPSAFE > VERBOSE_SYSINIT opt_global.h > WLCACHE opt_wavelan.h > WLDEBUG opt_wavelan.h >=20 > Modified: head/sys/dev/hwpmc/hwpmc_mod.c > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D > --- head/sys/dev/hwpmc/hwpmc_mod.c Mon Oct 22 17:47:37 2012 (r241895) > +++ head/sys/dev/hwpmc/hwpmc_mod.c Mon Oct 22 17:50:54 2012 (r241896) > @@ -1632,7 +1632,6 @@ pmc_log_kernel_mappings(struct pmc *pm) > static void > pmc_log_process_mappings(struct pmc_owner *po, struct proc *p) > { > - int locked; > vm_map_t map; > struct vnode *vp; > struct vmspace *vm; > @@ -1742,9 +1741,7 @@ pmc_log_process_mappings(struct pmc_owne > pmc_getfilename(vp, &fullpath, &freepath); > last_vp =3D vp; > =20 > - locked =3D VFS_LOCK_GIANT(vp->v_mount); > vrele(vp); > - VFS_UNLOCK_GIANT(locked); > =20 > vp =3D NULL; > pmclog_process_map_in(po, p->p_pid, start_addr, fullpath); >=20 > Modified: head/sys/dev/md/md.c > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D > --- head/sys/dev/md/md.c Mon Oct 22 17:47:37 2012 (r241895) > +++ head/sys/dev/md/md.c Mon Oct 22 17:50:54 2012 (r241896) > @@ -512,7 +512,7 @@ mdstart_preload(struct md_s *sc, struct=20 > static int > mdstart_vnode(struct md_s *sc, struct bio *bp) > { > - int error, vfslocked; > + int error; > struct uio auio; > struct iovec aiov; > struct mount *mp; > @@ -542,13 +542,11 @@ mdstart_vnode(struct md_s *sc, struct bi > */ > =20 > if (bp->bio_cmd =3D=3D BIO_FLUSH) { > - vfslocked =3D VFS_LOCK_GIANT(vp->v_mount); > (void) vn_start_write(vp, &mp, V_WAIT); > vn_lock(vp, LK_EXCLUSIVE | LK_RETRY); > error =3D VOP_FSYNC(vp, MNT_WAIT, td); > VOP_UNLOCK(vp, 0); > vn_finished_write(mp); > - VFS_UNLOCK_GIANT(vfslocked); > return (error); > } > =20 > @@ -570,7 +568,6 @@ mdstart_vnode(struct md_s *sc, struct bi > auio.uio_rw =3D UIO_WRITE; > auio.uio_td =3D td; > end =3D bp->bio_offset + bp->bio_length; > - vfslocked =3D VFS_LOCK_GIANT(vp->v_mount); > (void) vn_start_write(vp, &mp, V_WAIT); > vn_lock(vp, LK_EXCLUSIVE | LK_RETRY); > error =3D 0; > @@ -588,7 +585,6 @@ mdstart_vnode(struct md_s *sc, struct bi > VOP_UNLOCK(vp, 0); > vn_finished_write(mp); > bp->bio_resid =3D end - auio.uio_offset; > - VFS_UNLOCK_GIANT(vfslocked); > return (error); > } > =20 > @@ -610,7 +606,6 @@ mdstart_vnode(struct md_s *sc, struct bi > * When reading set IO_DIRECT to try to avoid double-caching > * the data. When writing IO_DIRECT is not optimal. > */ > - vfslocked =3D VFS_LOCK_GIANT(vp->v_mount); > if (bp->bio_cmd =3D=3D BIO_READ) { > vn_lock(vp, LK_EXCLUSIVE | LK_RETRY); > error =3D VOP_READ(vp, &auio, IO_DIRECT, sc->cred); > @@ -623,7 +618,6 @@ mdstart_vnode(struct md_s *sc, struct bi > VOP_UNLOCK(vp, 0); > vn_finished_write(mp); > } > - VFS_UNLOCK_GIANT(vfslocked); > bp->bio_resid =3D auio.uio_resid; > return (error); > } > @@ -957,7 +951,7 @@ mdcreate_vnode(struct md_s *sc, struct m > struct vattr vattr; > struct nameidata nd; > char *fname; > - int error, flags, vfslocked; > + int error, flags; > =20 > /* > * Kernel-originated requests must have the filename appended > @@ -976,11 +970,10 @@ mdcreate_vnode(struct md_s *sc, struct m > * set the FWRITE mask before trying to open the backing store. > */ > flags =3D FREAD | ((mdio->md_options & MD_READONLY) ? 0 : FWRITE); > - NDINIT(&nd, LOOKUP, FOLLOW | MPSAFE, UIO_SYSSPACE, sc->file, td); > + NDINIT(&nd, LOOKUP, FOLLOW, UIO_SYSSPACE, sc->file, td); > error =3D vn_open(&nd, &flags, 0, NULL); > if (error !=3D 0) > return (error); > - vfslocked =3D NDHASGIANT(&nd); > NDFREE(&nd, NDF_ONLY_PNBUF); > if (nd.ni_vp->v_type !=3D VREG) { > error =3D EINVAL; > @@ -1016,19 +1009,16 @@ mdcreate_vnode(struct md_s *sc, struct m > nd.ni_vp->v_vflag &=3D ~VV_MD; > goto bad; > } > - VFS_UNLOCK_GIANT(vfslocked); > return (0); > bad: > VOP_UNLOCK(nd.ni_vp, 0); > (void)vn_close(nd.ni_vp, flags, td->td_ucred, td); > - VFS_UNLOCK_GIANT(vfslocked); > return (error); > } > =20 > static int > mddestroy(struct md_s *sc, struct thread *td) > { > - int vfslocked; > =20 > if (sc->gp) { > sc->gp->softc =3D NULL; > @@ -1050,13 +1040,11 @@ mddestroy(struct md_s *sc, struct thread > mtx_unlock(&sc->queue_mtx); > mtx_destroy(&sc->queue_mtx); > if (sc->vnode !=3D NULL) { > - vfslocked =3D VFS_LOCK_GIANT(sc->vnode->v_mount); > vn_lock(sc->vnode, LK_EXCLUSIVE | LK_RETRY); > sc->vnode->v_vflag &=3D ~VV_MD; > VOP_UNLOCK(sc->vnode, 0); > (void)vn_close(sc->vnode, sc->flags & MD_READONLY ? > FREAD : (FREAD|FWRITE), sc->cred, td); > - VFS_UNLOCK_GIANT(vfslocked); > } > if (sc->cred !=3D NULL) > crfree(sc->cred); >=20 > Modified: head/sys/dev/nand/nandsim_swap.c > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D > --- head/sys/dev/nand/nandsim_swap.c Mon Oct 22 17:47:37 2012 (r241895) > +++ head/sys/dev/nand/nandsim_swap.c Mon Oct 22 17:50:54 2012 (r241896) > @@ -142,9 +142,9 @@ static int > swap_file_open(struct chip_swap *swap, const char *swap_file) > { > struct nameidata nd; > - int vfslocked, flags, error; > + int flags, error; > =20 > - NDINIT(&nd, LOOKUP, NOFOLLOW | MPSAFE, UIO_SYSSPACE, swap_file, > + NDINIT(&nd, LOOKUP, NOFOLLOW, UIO_SYSSPACE, swap_file, > curthread); > =20 > flags =3D FWRITE | FREAD | O_NOFOLLOW | O_CREAT | O_TRUNC; > @@ -157,12 +157,10 @@ swap_file_open(struct chip_swap *swap, c > } > =20 > swap->swap_cred =3D crhold(curthread->td_ucred); > - vfslocked =3D NDHASGIANT(&nd); > NDFREE(&nd, NDF_ONLY_PNBUF); > =20 > /* We just unlock so we hold a reference */ > VOP_UNLOCK(nd.ni_vp, 0); > - VFS_UNLOCK_GIANT(vfslocked); > =20 > swap->swap_vp =3D nd.ni_vp; > =20 > @@ -192,7 +190,6 @@ swap_file_write(struct chip_swap *swap,=20 > struct vnode *vp; > struct uio auio; > struct iovec aiov; > - int vfslocked; > =20 > if (swap =3D=3D NULL || blk_state =3D=3D NULL) > return (-1); > @@ -222,13 +219,11 @@ swap_file_write(struct chip_swap *swap,=20 > auio.uio_resid =3D swap->blk_size; > auio.uio_td =3D td; > =20 > - vfslocked =3D VFS_LOCK_GIANT(vp->v_mount); > vn_start_write(vp, &mp, V_WAIT); > vn_lock(vp, LK_EXCLUSIVE | LK_RETRY); > VOP_WRITE(vp, &auio, IO_UNIT, swap->swap_cred); > VOP_UNLOCK(vp, 0); > vn_finished_write(mp); > - VFS_UNLOCK_GIANT(vfslocked); > =20 > return (0); > } > @@ -241,7 +236,6 @@ swap_file_read(struct chip_swap *swap, s > struct vnode *vp; > struct uio auio; > struct iovec aiov; > - int vfslocked; > =20 > if (swap =3D=3D NULL || blk_state =3D=3D NULL) > return (-1); > @@ -267,11 +261,9 @@ swap_file_read(struct chip_swap *swap, s > auio.uio_resid =3D swap->blk_size; > auio.uio_td =3D td; > =20 > - vfslocked =3D VFS_LOCK_GIANT(vp->v_mount); >=20 > *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** --=20 Pawel Jakub Dawidek http://www.wheelsystems.com FreeBSD committer http://www.FreeBSD.org Am I Evil? Yes, I Am! http://tupytaj.pl --pf9I7BMVVzbSWLtt Content-Type: application/pgp-signature -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.19 (FreeBSD) iEYEARECAAYFAlCG6e8ACgkQForvXbEpPzQ1iACfVIwuhi1EbjXShJ45DLIXsII9 kOYAoMYcMoTsquCowQ21SndfnjCaFaOP =+Bbm -----END PGP SIGNATURE----- --pf9I7BMVVzbSWLtt--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20121023190311.GA1620>