From f9642f56e08a4cd3684ce70b6dc094c2287e4feb Mon Sep 17 00:00:00 2001 From: Matthew Dillon Date: Fri, 5 May 2006 21:27:58 +0000 Subject: [PATCH] Remove the thread_t argument from vfs_busy() and vfs_unbusy(). Passing a thread_t to these functions has always been questionable at best. --- sys/kern/vfs_cache.c | 6 +++--- sys/kern/vfs_conf.c | 6 +++--- sys/kern/vfs_mount.c | 17 ++++++++--------- sys/kern/vfs_nlookup.c | 10 +++++----- sys/kern/vfs_sync.c | 6 +++--- sys/kern/vfs_syscalls.c | 14 +++++++------- sys/sys/mount.h | 6 +++--- sys/vfs/gnu/ext2fs/ext2_vfsops.c | 10 +++++----- sys/vfs/nfs/nfs_vfsops.c | 8 ++++---- sys/vfs/ufs/ufs_vfsops.c | 6 +++--- sys/vfs/union/union_vnops.c | 6 +++--- 11 files changed, 47 insertions(+), 48 deletions(-) diff --git a/sys/kern/vfs_cache.c b/sys/kern/vfs_cache.c index 45a70b24b6..d823ba8d3c 100644 --- a/sys/kern/vfs_cache.c +++ b/sys/kern/vfs_cache.c @@ -67,7 +67,7 @@ * * @(#)vfs_cache.c 8.5 (Berkeley) 3/22/95 * $FreeBSD: src/sys/kern/vfs_cache.c,v 1.42.2.6 2001/10/05 20:07:03 dillon Exp $ - * $DragonFly: src/sys/kern/vfs_cache.c,v 1.65 2006/05/05 21:15:09 dillon Exp $ + * $DragonFly: src/sys/kern/vfs_cache.c,v 1.66 2006/05/05 21:27:53 dillon Exp $ */ #include @@ -1737,7 +1737,7 @@ cache_resolve_mp(struct namecache *ncp) if (ncp->nc_flag & NCF_UNRESOLVED) { cache_unlock(ncp); - while (vfs_busy(mp, 0, curthread)) + while (vfs_busy(mp, 0)) ; error = VFS_ROOT(mp, &vp); cache_lock(ncp); @@ -1757,7 +1757,7 @@ cache_resolve_mp(struct namecache *ncp) } else if (error == 0) { vput(vp); } - vfs_unbusy(mp, curthread); + vfs_unbusy(mp); } return(ncp->nc_error); } diff --git a/sys/kern/vfs_conf.c b/sys/kern/vfs_conf.c index fd2c1d0c0d..27100a4443 100644 --- a/sys/kern/vfs_conf.c +++ b/sys/kern/vfs_conf.c @@ -26,7 +26,7 @@ * SUCH DAMAGE. * * $FreeBSD: src/sys/kern/vfs_conf.c,v 1.49.2.5 2003/01/07 11:56:53 joerg Exp $ - * $DragonFly: src/sys/kern/vfs_conf.c,v 1.14 2005/06/06 15:02:28 dillon Exp $ + * $DragonFly: src/sys/kern/vfs_conf.c,v 1.15 2006/05/05 21:27:53 dillon Exp $ */ /* @@ -243,7 +243,7 @@ done: free(devname, M_MOUNT); if (error != 0) { if (mp != NULL) { - vfs_unbusy(mp, td); + vfs_unbusy(mp); free(mp, M_MOUNT); } printf("Root mount failed: %d\n", error); @@ -253,7 +253,7 @@ done: /* sanity check system clock against root fs timestamp */ inittodr(mp->mnt_time); - vfs_unbusy(mp, td); + vfs_unbusy(mp); } return(error); } diff --git a/sys/kern/vfs_mount.c b/sys/kern/vfs_mount.c index b870e25ea8..22ab345516 100644 --- a/sys/kern/vfs_mount.c +++ b/sys/kern/vfs_mount.c @@ -67,7 +67,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $DragonFly: src/sys/kern/vfs_mount.c,v 1.15 2006/05/05 20:15:01 dillon Exp $ + * $DragonFly: src/sys/kern/vfs_mount.c,v 1.16 2006/05/05 21:27:53 dillon Exp $ */ /* @@ -242,7 +242,7 @@ getspecialvnode(enum vtagtype tag, struct mount *mp, * be unmountable until the lock is released. */ int -vfs_busy(struct mount *mp, int flags, struct thread *td) +vfs_busy(struct mount *mp, int flags) { int lkflags; @@ -270,7 +270,7 @@ vfs_busy(struct mount *mp, int flags, struct thread *td) * Free a busy filesystem. */ void -vfs_unbusy(struct mount *mp, struct thread *td) +vfs_unbusy(struct mount *mp) { lockmgr(&mp->mnt_lock, LK_RELEASE); } @@ -284,7 +284,6 @@ vfs_unbusy(struct mount *mp, struct thread *td) int vfs_rootmountalloc(char *fstypename, char *devname, struct mount **mpp) { - struct thread *td = curthread; /* XXX */ struct vfsconf *vfsp; struct mount *mp; @@ -299,7 +298,7 @@ vfs_rootmountalloc(char *fstypename, char *devname, struct mount **mpp) mp = malloc(sizeof(struct mount), M_MOUNT, M_WAITOK); bzero((char *)mp, (u_long)sizeof(struct mount)); lockinit(&mp->mnt_lock, "vfslock", VLKTIMEOUT, LK_NOPAUSE); - vfs_busy(mp, LK_NOWAIT, td); + vfs_busy(mp, LK_NOWAIT); TAILQ_INIT(&mp->mnt_nvnodelist); TAILQ_INIT(&mp->mnt_reservedvnlist); TAILQ_INIT(&mp->mnt_jlist); @@ -766,10 +765,10 @@ mountlist_scan(int (*callback)(struct mount *, void *), void *data, int how) while ((mp = info.msi_node) != NULL) { if (how & MNTSCAN_NOBUSY) { count = callback(mp, data); - } else if (vfs_busy(mp, LK_NOWAIT, td) == 0) { + } else if (vfs_busy(mp, LK_NOWAIT) == 0) { count = callback(mp, data); if (mp == info.msi_node) - vfs_unbusy(mp, td); + vfs_unbusy(mp); } else { count = 0; } @@ -784,10 +783,10 @@ mountlist_scan(int (*callback)(struct mount *, void *), void *data, int how) while ((mp = info.msi_node) != NULL) { if (how & MNTSCAN_NOBUSY) { count = callback(mp, data); - } else if (vfs_busy(mp, LK_NOWAIT, td) == 0) { + } else if (vfs_busy(mp, LK_NOWAIT) == 0) { count = callback(mp, data); if (mp == info.msi_node) - vfs_unbusy(mp, td); + vfs_unbusy(mp); } else { count = 0; } diff --git a/sys/kern/vfs_nlookup.c b/sys/kern/vfs_nlookup.c index fd0f8b9e25..76729a7104 100644 --- a/sys/kern/vfs_nlookup.c +++ b/sys/kern/vfs_nlookup.c @@ -31,7 +31,7 @@ * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $DragonFly: src/sys/kern/vfs_nlookup.c,v 1.13 2006/05/05 21:15:09 dillon Exp $ + * $DragonFly: src/sys/kern/vfs_nlookup.c,v 1.14 2006/05/05 21:27:53 dillon Exp $ */ /* * nlookup() is the 'new' namei interface. Rather then return directory and @@ -520,10 +520,10 @@ nlookup(struct nlookupdata *nd) ncp = cache_get(mp->mnt_ncp); if (ncp->nc_flag & NCF_UNRESOLVED) { - while (vfs_busy(mp, 0, nd->nl_td)) + while (vfs_busy(mp, 0)) ; error = VFS_ROOT(mp, &tdp); - vfs_unbusy(mp, nd->nl_td); + vfs_unbusy(mp); if (error) break; cache_setvp(ncp, tdp); @@ -616,10 +616,10 @@ nlookup_mp(struct mount *mp, struct namecache **ncpp) ncp = mp->mnt_ncp; cache_get(ncp); if (ncp->nc_flag & NCF_UNRESOLVED) { - while (vfs_busy(mp, 0, curthread)) + while (vfs_busy(mp, 0)) ; error = VFS_ROOT(mp, &vp); - vfs_unbusy(mp, curthread); + vfs_unbusy(mp); if (error) { cache_put(ncp); ncp = NULL; diff --git a/sys/kern/vfs_sync.c b/sys/kern/vfs_sync.c index a255184833..f9d21ae449 100644 --- a/sys/kern/vfs_sync.c +++ b/sys/kern/vfs_sync.c @@ -37,7 +37,7 @@ * * @(#)vfs_subr.c 8.31 (Berkeley) 5/26/95 * $FreeBSD: src/sys/kern/vfs_subr.c,v 1.249.2.30 2003/04/04 20:35:57 tegge Exp $ - * $DragonFly: src/sys/kern/vfs_sync.c,v 1.8 2005/11/14 18:50:05 dillon Exp $ + * $DragonFly: src/sys/kern/vfs_sync.c,v 1.9 2006/05/05 21:27:53 dillon Exp $ */ /* @@ -400,7 +400,7 @@ sync_fsync(struct vop_fsync_args *ap) * the VM issues and must be called whether the mount is readonly * or not. */ - if (vfs_busy(mp, LK_NOWAIT, td) != 0) + if (vfs_busy(mp, LK_NOWAIT) != 0) return (0); if (mp->mnt_flag & MNT_RDONLY) { vfs_msync(mp, MNT_NOWAIT); @@ -412,7 +412,7 @@ sync_fsync(struct vop_fsync_args *ap) if (asyncflag) mp->mnt_flag |= MNT_ASYNC; } - vfs_unbusy(mp, td); + vfs_unbusy(mp); return (0); } diff --git a/sys/kern/vfs_syscalls.c b/sys/kern/vfs_syscalls.c index 8731c2d42b..04dde51ec7 100644 --- a/sys/kern/vfs_syscalls.c +++ b/sys/kern/vfs_syscalls.c @@ -37,7 +37,7 @@ * * @(#)vfs_syscalls.c 8.13 (Berkeley) 4/15/94 * $FreeBSD: src/sys/kern/vfs_syscalls.c,v 1.151.2.18 2003/04/04 20:35:58 tegge Exp $ - * $DragonFly: src/sys/kern/vfs_syscalls.c,v 1.84 2006/05/05 21:15:09 dillon Exp $ + * $DragonFly: src/sys/kern/vfs_syscalls.c,v 1.85 2006/05/05 21:27:53 dillon Exp $ */ #include @@ -198,7 +198,7 @@ mount(struct mount_args *uap) vput(vp); return (error); } - if (vfs_busy(mp, LK_NOWAIT, td)) { + if (vfs_busy(mp, LK_NOWAIT)) { cache_drop(ncp); vput(vp); return (EBUSY); @@ -206,7 +206,7 @@ mount(struct mount_args *uap) if ((vp->v_flag & VMOUNT) != 0 || vp->v_mountedhere != NULL) { cache_drop(ncp); - vfs_unbusy(mp, td); + vfs_unbusy(mp); vput(vp); return (EBUSY); } @@ -294,7 +294,7 @@ mount(struct mount_args *uap) TAILQ_INIT(&mp->mnt_jlist); mp->mnt_nvnodelistsize = 0; lockinit(&mp->mnt_lock, "vfslock", 0, LK_NOPAUSE); - vfs_busy(mp, LK_NOWAIT, td); + vfs_busy(mp, LK_NOWAIT); mp->mnt_op = vfsp->vfc_vfsops; mp->mnt_vfc = vfsp; vfsp->vfc_refcount++; @@ -336,7 +336,7 @@ update: mp->mnt_flag = flag; mp->mnt_kern_flag = flag2; } - vfs_unbusy(mp, td); + vfs_unbusy(mp); vp->v_flag &= ~VMOUNT; vrele(vp); cache_drop(ncp); @@ -370,7 +370,7 @@ update: cache_unlock(mp->mnt_ncp); /* leave ref intact */ VOP_UNLOCK(vp, 0); error = vfs_allocate_syncvnode(mp); - vfs_unbusy(mp, td); + vfs_unbusy(mp); if ((error = VFS_START(mp, 0, td)) != 0) vrele(vp); } else { @@ -381,7 +381,7 @@ update: vfs_rm_vnodeops(&mp->mnt_vn_fifo_ops); vp->v_flag &= ~VMOUNT; mp->mnt_vfc->vfc_refcount--; - vfs_unbusy(mp, td); + vfs_unbusy(mp); free(mp, M_MOUNT); cache_drop(ncp); vput(vp); diff --git a/sys/sys/mount.h b/sys/sys/mount.h index 6018c89666..47d3488ade 100644 --- a/sys/sys/mount.h +++ b/sys/sys/mount.h @@ -32,7 +32,7 @@ * * @(#)mount.h 8.21 (Berkeley) 5/20/95 * $FreeBSD: src/sys/sys/mount.h,v 1.89.2.7 2003/04/04 20:35:57 tegge Exp $ - * $DragonFly: src/sys/sys/mount.h,v 1.21 2005/07/26 15:43:35 hmp Exp $ + * $DragonFly: src/sys/sys/mount.h,v 1.22 2006/05/05 21:27:54 dillon Exp $ */ #ifndef _SYS_MOUNT_H_ @@ -491,7 +491,7 @@ int vfs_setpublicfs /* set publicly exported fs */ int vfs_lock (struct mount *); /* lock a vfs */ void vfs_msync (struct mount *, int); void vfs_unlock (struct mount *); /* unlock a vfs */ -int vfs_busy (struct mount *, int, struct thread *); +int vfs_busy (struct mount *, int); void vfs_bufstats(void); int vfs_export /* process mount export info */ (struct mount *, struct netexport *, struct export_args *); @@ -504,7 +504,7 @@ struct mount *vfs_getvfs (fsid_t *); /* return vfs given fsid */ int vfs_modevent (module_t, int, void *); int vfs_mountedon (struct vnode *); /* is a vfs mounted on vp */ int vfs_rootmountalloc (char *, char *, struct mount **); -void vfs_unbusy (struct mount *, struct thread *); +void vfs_unbusy (struct mount *); void vfs_unmountall (void); int vfs_register (struct vfsconf *); int vfs_unregister (struct vfsconf *); diff --git a/sys/vfs/gnu/ext2fs/ext2_vfsops.c b/sys/vfs/gnu/ext2fs/ext2_vfsops.c index 5405f07e72..7b3b27b937 100644 --- a/sys/vfs/gnu/ext2fs/ext2_vfsops.c +++ b/sys/vfs/gnu/ext2fs/ext2_vfsops.c @@ -38,7 +38,7 @@ * * @(#)ffs_vfsops.c 8.8 (Berkeley) 4/18/94 * $FreeBSD: src/sys/gnu/ext2fs/ext2_vfsops.c,v 1.63.2.7 2002/07/01 00:18:51 iedowse Exp $ - * $DragonFly: src/sys/vfs/gnu/ext2fs/ext2_vfsops.c,v 1.39 2006/05/05 21:15:09 dillon Exp $ + * $DragonFly: src/sys/vfs/gnu/ext2fs/ext2_vfsops.c,v 1.40 2006/05/05 21:27:56 dillon Exp $ */ #include "opt_quota.h" @@ -180,7 +180,7 @@ ext2_quotactl(struct mount *mp, int cmds, uid_t uid, caddr_t arg, type = cmds & SUBCMDMASK; if ((uint)type >= MAXQUOTAS) return (EINVAL); - if (vfs_busy(mp, LK_NOWAIT, td)) + if (vfs_busy(mp, LK_NOWAIT)) return (0); switch (cmd) { @@ -213,7 +213,7 @@ ext2_quotactl(struct mount *mp, int cmds, uid_t uid, caddr_t arg, error = EINVAL; break; } - vfs_unbusy(mp, td); + vfs_unbusy(mp); return (error); #endif } @@ -275,10 +275,10 @@ ext2_mount(struct mount *mp, char *path, caddr_t data, flags = WRITECLOSE; if (mp->mnt_flag & MNT_FORCE) flags |= FORCECLOSE; - if (vfs_busy(mp, LK_NOWAIT, td)) + if (vfs_busy(mp, LK_NOWAIT)) return (EBUSY); error = ext2_flushfiles(mp, flags, td); - vfs_unbusy(mp, td); + vfs_unbusy(mp); if (!error && fs->s_wasvalid) { fs->s_es->s_state |= EXT2_VALID_FS; ext2_sbupdate(ump, MNT_WAIT); diff --git a/sys/vfs/nfs/nfs_vfsops.c b/sys/vfs/nfs/nfs_vfsops.c index ac22bfa5d3..6eccaf35bd 100644 --- a/sys/vfs/nfs/nfs_vfsops.c +++ b/sys/vfs/nfs/nfs_vfsops.c @@ -35,7 +35,7 @@ * * @(#)nfs_vfsops.c 8.12 (Berkeley) 5/20/95 * $FreeBSD: src/sys/nfs/nfs_vfsops.c,v 1.91.2.7 2003/01/27 20:04:08 dillon Exp $ - * $DragonFly: src/sys/vfs/nfs/nfs_vfsops.c,v 1.39 2006/05/05 21:15:10 dillon Exp $ + * $DragonFly: src/sys/vfs/nfs/nfs_vfsops.c,v 1.40 2006/05/05 21:27:57 dillon Exp $ */ #include "opt_bootp.h" @@ -565,7 +565,7 @@ nfs_mountroot(mp) crit_exit(); return (error); } - vfs_unbusy(swap_mp, td); + vfs_unbusy(swap_mp); VTONFS(vp)->n_size = VTONFS(vp)->n_vattr.va_size = nd->swap_nblks * DEV_BSIZE ; @@ -582,7 +582,7 @@ nfs_mountroot(mp) mp->mnt_flag |= MNT_ROOTFS; mp->mnt_vnodecovered = NULLVP; - vfs_unbusy(mp, td); + vfs_unbusy(mp); /* * This is not really an nfs issue, but it is much easier to @@ -644,7 +644,7 @@ haderror: #endif printf("nfs_mountroot: mount %s on %s: %d", path, which, error); mp->mnt_vfc->vfc_refcount--; - vfs_unbusy(mp, td); + vfs_unbusy(mp); if (didalloc) free(mp, M_MOUNT); FREE(nam, M_SONAME); diff --git a/sys/vfs/ufs/ufs_vfsops.c b/sys/vfs/ufs/ufs_vfsops.c index 6b649b57b3..3a3514efd6 100644 --- a/sys/vfs/ufs/ufs_vfsops.c +++ b/sys/vfs/ufs/ufs_vfsops.c @@ -37,7 +37,7 @@ * * @(#)ufs_vfsops.c 8.8 (Berkeley) 5/20/95 * $FreeBSD: src/sys/ufs/ufs/ufs_vfsops.c,v 1.17.2.3 2001/10/14 19:08:16 iedowse Exp $ - * $DragonFly: src/sys/vfs/ufs/ufs_vfsops.c,v 1.12 2006/04/03 02:02:37 dillon Exp $ + * $DragonFly: src/sys/vfs/ufs/ufs_vfsops.c,v 1.13 2006/05/05 21:27:58 dillon Exp $ */ #include "opt_quota.h" @@ -118,7 +118,7 @@ ufs_quotactl(struct mount *mp, int cmds, uid_t uid, caddr_t arg, type = cmds & SUBCMDMASK; if ((uint)type >= MAXQUOTAS) return (EINVAL); - if (vfs_busy(mp, LK_NOWAIT, td)) + if (vfs_busy(mp, LK_NOWAIT)) return (0); switch (cmd) { @@ -151,7 +151,7 @@ ufs_quotactl(struct mount *mp, int cmds, uid_t uid, caddr_t arg, error = EINVAL; break; } - vfs_unbusy(mp, td); + vfs_unbusy(mp); return (error); #endif } diff --git a/sys/vfs/union/union_vnops.c b/sys/vfs/union/union_vnops.c index 9fde59dd1f..60f8814d52 100644 --- a/sys/vfs/union/union_vnops.c +++ b/sys/vfs/union/union_vnops.c @@ -36,7 +36,7 @@ * * @(#)union_vnops.c 8.32 (Berkeley) 6/23/95 * $FreeBSD: src/sys/miscfs/union/union_vnops.c,v 1.72 1999/12/15 23:02:14 eivind Exp $ - * $DragonFly: src/sys/vfs/union/union_vnops.c,v 1.27 2006/05/05 21:15:11 dillon Exp $ + * $DragonFly: src/sys/vfs/union/union_vnops.c,v 1.28 2006/05/05 21:27:58 dillon Exp $ */ #include @@ -251,7 +251,7 @@ union_lookup1(struct vnode *udvp, struct vnode **pdvp, struct vnode **vpp, ) { int relock_pdvp = 0; - if (vfs_busy(mp, 0, td)) + if (vfs_busy(mp, 0)) continue; if (dvp == *pdvp) @@ -260,7 +260,7 @@ union_lookup1(struct vnode *udvp, struct vnode **pdvp, struct vnode **vpp, dvp = NULL; error = VFS_ROOT(mp, &dvp); - vfs_unbusy(mp, td); + vfs_unbusy(mp); if (relock_pdvp) vn_lock(*pdvp, LK_EXCLUSIVE | LK_RETRY); -- 2.41.0