diff options
author | 2005-11-30 10:35:07 +0000 | |
---|---|---|
committer | 2005-11-30 10:35:07 +0000 | |
commit | 139e3b108cc426cdf4aed76e50a3534d0c9888c7 (patch) | |
tree | 529a02cb7a9f1aae0693ee190d71d100f5bd2dda | |
parent | `-ztz' is only here for compatibility; (diff) | |
download | wireguard-openbsd-139e3b108cc426cdf4aed76e50a3534d0c9888c7.tar.xz wireguard-openbsd-139e3b108cc426cdf4aed76e50a3534d0c9888c7.zip |
No need for vfs_busy() and vfs_unbusy() to take a process pointer
anymore. Testing by jolan@, thanks.
-rw-r--r-- | sys/compat/common/vfs_syscalls_25.c | 10 | ||||
-rw-r--r-- | sys/compat/freebsd/freebsd_file.c | 10 | ||||
-rw-r--r-- | sys/compat/netbsd/netbsd_file.c | 10 | ||||
-rw-r--r-- | sys/isofs/cd9660/cd9660_vfsops.c | 6 | ||||
-rw-r--r-- | sys/kern/vfs_lookup.c | 6 | ||||
-rw-r--r-- | sys/kern/vfs_subr.c | 29 | ||||
-rw-r--r-- | sys/kern/vfs_sync.c | 6 | ||||
-rw-r--r-- | sys/kern/vfs_syscalls.c | 30 | ||||
-rw-r--r-- | sys/nfs/nfs_syscalls.c | 4 | ||||
-rw-r--r-- | sys/nfs/nfs_vfsops.c | 6 | ||||
-rw-r--r-- | sys/sys/mount.h | 6 | ||||
-rw-r--r-- | sys/ufs/ext2fs/ext2fs_vfsops.c | 6 | ||||
-rw-r--r-- | sys/ufs/ffs/ffs_vfsops.c | 6 | ||||
-rw-r--r-- | sys/ufs/mfs/mfs_vfsops.c | 8 | ||||
-rw-r--r-- | sys/ufs/ufs/ufs_quota.c | 6 | ||||
-rw-r--r-- | sys/xfs/xfs_config.h | 4 | ||||
-rw-r--r-- | usr.sbin/afs/include/config.h | 4 | ||||
-rw-r--r-- | usr.sbin/afs/src/include/config.h | 4 |
18 files changed, 78 insertions, 83 deletions
diff --git a/sys/compat/common/vfs_syscalls_25.c b/sys/compat/common/vfs_syscalls_25.c index 7d129b040ee..77f65ff4da4 100644 --- a/sys/compat/common/vfs_syscalls_25.c +++ b/sys/compat/common/vfs_syscalls_25.c @@ -1,4 +1,4 @@ -/* $OpenBSD: vfs_syscalls_25.c,v 1.6 2003/08/15 20:32:15 tedu Exp $ */ +/* $OpenBSD: vfs_syscalls_25.c,v 1.7 2005/11/30 10:35:07 pedro Exp $ */ /* * Copyright (c) 1989, 1993 @@ -181,7 +181,7 @@ compat_25_sys_getfsstat(p, v, retval) simple_lock(&mountlist_slock); for (mp = CIRCLEQ_FIRST(&mountlist); mp != CIRCLEQ_END(&mountlist); mp = nmp) { - if (vfs_busy(mp, LK_NOWAIT, &mountlist_slock, p)) { + if (vfs_busy(mp, LK_NOWAIT, &mountlist_slock)) { nmp = CIRCLEQ_NEXT(mp, mnt_list); continue; } @@ -196,14 +196,14 @@ compat_25_sys_getfsstat(p, v, retval) (error = VFS_STATFS(mp, sp, p))) { simple_lock(&mountlist_slock); nmp = mp->mnt_list.cqe_next; - vfs_unbusy(mp, p); + vfs_unbusy(mp); continue; } statfs_to_ostatfs(p, mp, sp, &osb); error = copyout((caddr_t)&osb, sfsp, sizeof(osb)); if (error) { - vfs_unbusy(mp, p); + vfs_unbusy(mp); return (error); } sfsp += sizeof(osb); @@ -211,7 +211,7 @@ compat_25_sys_getfsstat(p, v, retval) count++; simple_lock(&mountlist_slock); nmp = CIRCLEQ_NEXT(mp, mnt_list); - vfs_unbusy(mp, p); + vfs_unbusy(mp); } simple_unlock(&mountlist_slock); if (sfsp && count > maxcount) diff --git a/sys/compat/freebsd/freebsd_file.c b/sys/compat/freebsd/freebsd_file.c index ddd063a2935..1cbc83c40fd 100644 --- a/sys/compat/freebsd/freebsd_file.c +++ b/sys/compat/freebsd/freebsd_file.c @@ -1,4 +1,4 @@ -/* $OpenBSD: freebsd_file.c,v 1.19 2004/07/13 21:04:29 millert Exp $ */ +/* $OpenBSD: freebsd_file.c,v 1.20 2005/11/30 10:35:07 pedro Exp $ */ /* $NetBSD: freebsd_file.c,v 1.3 1996/05/03 17:03:09 christos Exp $ */ /* @@ -659,7 +659,7 @@ freebsd_sys_getfsstat(p, v, retval) count = 0; simple_lock(&mountlist_slock); for (mp = mountlist.cqh_first; mp != (void *)&mountlist; mp = nmp) { - if (vfs_busy(mp, LK_NOWAIT, &mountlist_slock, p)) { + if (vfs_busy(mp, LK_NOWAIT, &mountlist_slock)) { nmp = mp->mnt_list.cqe_next; continue; } @@ -674,7 +674,7 @@ freebsd_sys_getfsstat(p, v, retval) (error = VFS_STATFS(mp, sp, p))) { simple_lock(&mountlist_slock); nmp = mp->mnt_list.cqe_next; - vfs_unbusy(mp, p); + vfs_unbusy(mp); continue; } sp->f_flags = mp->mnt_flag & MNT_VISFLAGMASK; @@ -682,7 +682,7 @@ freebsd_sys_getfsstat(p, v, retval) statfs_to_freebsd_statfs(p, mp, sp, &fsb); error = copyout((caddr_t)&fsb, sfsp, sizeof(fsb)); if (error) { - vfs_unbusy(mp, p); + vfs_unbusy(mp); return (error); } sfsp += sizeof(fsb); @@ -690,7 +690,7 @@ freebsd_sys_getfsstat(p, v, retval) count++; simple_lock(&mountlist_slock); nmp = mp->mnt_list.cqe_next; - vfs_unbusy(mp, p); + vfs_unbusy(mp); } simple_unlock(&mountlist_slock); if (sfsp && count > maxcount) diff --git a/sys/compat/netbsd/netbsd_file.c b/sys/compat/netbsd/netbsd_file.c index 5b35d37d8ce..0c8c8ee252f 100644 --- a/sys/compat/netbsd/netbsd_file.c +++ b/sys/compat/netbsd/netbsd_file.c @@ -1,4 +1,4 @@ -/* $OpenBSD: netbsd_file.c,v 1.5 2003/08/15 20:32:16 tedu Exp $ */ +/* $OpenBSD: netbsd_file.c,v 1.6 2005/11/30 10:35:07 pedro Exp $ */ /* $NetBSD: freebsd_file.c,v 1.3 1996/05/03 17:03:09 christos Exp $ */ /* @@ -633,7 +633,7 @@ netbsd_sys_getfsstat(p, v, retval) count = 0; simple_lock(&mountlist_slock); for (mp = mountlist.cqh_first; mp != (void *)&mountlist; mp = nmp) { - if (vfs_busy(mp, LK_NOWAIT, &mountlist_slock, p)) { + if (vfs_busy(mp, LK_NOWAIT, &mountlist_slock)) { nmp = mp->mnt_list.cqe_next; continue; } @@ -648,7 +648,7 @@ netbsd_sys_getfsstat(p, v, retval) (error = VFS_STATFS(mp, sp, p))) { simple_lock(&mountlist_slock); nmp = mp->mnt_list.cqe_next; - vfs_unbusy(mp, p); + vfs_unbusy(mp); continue; } sp->f_flags = mp->mnt_flag & MNT_VISFLAGMASK; @@ -656,7 +656,7 @@ netbsd_sys_getfsstat(p, v, retval) statfs_to_netbsd_statfs(p, mp, sp, &fsb); error = copyout((caddr_t)&fsb, sfsp, sizeof(fsb)); if (error) { - vfs_unbusy(mp, p); + vfs_unbusy(mp); return (error); } sfsp += sizeof(fsb); @@ -664,7 +664,7 @@ netbsd_sys_getfsstat(p, v, retval) count++; simple_lock(&mountlist_slock); nmp = mp->mnt_list.cqe_next; - vfs_unbusy(mp, p); + vfs_unbusy(mp); } simple_unlock(&mountlist_slock); if (sfsp && count > maxcount) diff --git a/sys/isofs/cd9660/cd9660_vfsops.c b/sys/isofs/cd9660/cd9660_vfsops.c index 4a40ecfa85c..9237848f7f0 100644 --- a/sys/isofs/cd9660/cd9660_vfsops.c +++ b/sys/isofs/cd9660/cd9660_vfsops.c @@ -1,4 +1,4 @@ -/* $OpenBSD: cd9660_vfsops.c,v 1.36 2005/11/09 02:38:38 pedro Exp $ */ +/* $OpenBSD: cd9660_vfsops.c,v 1.37 2005/11/30 10:35:07 pedro Exp $ */ /* $NetBSD: cd9660_vfsops.c,v 1.26 1997/06/13 15:38:58 pk Exp $ */ /*- @@ -110,7 +110,7 @@ cd9660_mountroot() args.flags = ISOFSMNT_ROOT; if ((error = iso_mountfs(rootvp, mp, p, &args)) != 0) { mp->mnt_vfc->vfc_refcount--; - vfs_unbusy(mp, p); + vfs_unbusy(mp); free(mp, M_MOUNT); return (error); } @@ -118,7 +118,7 @@ cd9660_mountroot() CIRCLEQ_INSERT_TAIL(&mountlist, mp, mnt_list); simple_unlock(&mountlist_slock); (void)cd9660_statfs(mp, &mp->mnt_stat, p); - vfs_unbusy(mp, p); + vfs_unbusy(mp); inittodr(0); return (0); } diff --git a/sys/kern/vfs_lookup.c b/sys/kern/vfs_lookup.c index 04087a1ff75..756b532bceb 100644 --- a/sys/kern/vfs_lookup.c +++ b/sys/kern/vfs_lookup.c @@ -1,4 +1,4 @@ -/* $OpenBSD: vfs_lookup.c,v 1.30 2005/11/08 15:43:44 pedro Exp $ */ +/* $OpenBSD: vfs_lookup.c,v 1.31 2005/11/30 10:35:07 pedro Exp $ */ /* $NetBSD: vfs_lookup.c,v 1.17 1996/02/09 19:00:59 christos Exp $ */ /* @@ -513,11 +513,11 @@ dirloop: */ while (dp->v_type == VDIR && (mp = dp->v_mountedhere) && (cnp->cn_flags & NOCROSSMOUNT) == 0) { - if (vfs_busy(mp, 0, 0, p)) + if (vfs_busy(mp, 0, NULL)) continue; VOP_UNLOCK(dp, 0, p); error = VFS_ROOT(mp, &tdp); - vfs_unbusy(mp, p); + vfs_unbusy(mp); if (error) { dpunlocked = 1; goto bad2; diff --git a/sys/kern/vfs_subr.c b/sys/kern/vfs_subr.c index 4c32a075a16..0416a45e382 100644 --- a/sys/kern/vfs_subr.c +++ b/sys/kern/vfs_subr.c @@ -1,4 +1,4 @@ -/* $OpenBSD: vfs_subr.c,v 1.120 2005/11/24 12:08:16 pedro Exp $ */ +/* $OpenBSD: vfs_subr.c,v 1.121 2005/11/30 10:35:07 pedro Exp $ */ /* $NetBSD: vfs_subr.c,v 1.53 1996/04/22 01:39:13 christos Exp $ */ /* @@ -154,8 +154,7 @@ vntblinit(void) * fail. */ int -vfs_busy(struct mount *mp, int flags, struct simplelock *interlkp, - struct proc *p) +vfs_busy(struct mount *mp, int flags, struct simplelock *interlkp) { int lkflags; @@ -183,12 +182,11 @@ vfs_busy(struct mount *mp, int flags, struct simplelock *interlkp, return (0); } - /* * Free a busy file system */ void -vfs_unbusy(struct mount *mp, struct proc *p) +vfs_unbusy(struct mount *mp) { lockmgr(&mp->mnt_lock, LK_RELEASE, NULL); } @@ -208,7 +206,6 @@ vfs_isbusy(struct mount *mp) int vfs_rootmountalloc(char *fstypename, char *devname, struct mount **mpp) { - struct proc *p = curproc; struct vfsconf *vfsp; struct mount *mp; @@ -220,7 +217,7 @@ vfs_rootmountalloc(char *fstypename, char *devname, struct mount **mpp) mp = malloc((u_long)sizeof(struct mount), M_MOUNT, M_WAITOK); bzero((char *)mp, (u_long)sizeof(struct mount)); lockinit(&mp->mnt_lock, PVFS, "vfslock", 0, 0); - (void)vfs_busy(mp, LK_NOWAIT, 0, p); + (void)vfs_busy(mp, LK_NOWAIT, NULL); LIST_INIT(&mp->mnt_vnodelist); mp->mnt_vfc = vfsp; mp->mnt_op = vfsp->vfc_vfsops; @@ -1167,7 +1164,7 @@ vgonel(struct vnode *vp, struct proc *p) */ mp = vp->v_specmountpoint; if (mp != NULL) { - if (!vfs_busy(mp, LK_EXCLUSIVE, NULL, p)) { + if (!vfs_busy(mp, LK_EXCLUSIVE, NULL)) { flags = MNT_FORCE | MNT_DOOMED; dounmount(mp, flags, p, NULL); } @@ -1325,7 +1322,6 @@ vprint(char *label, struct vnode *vp) void printlockedvnodes(void) { - struct proc *p = curproc; struct mount *mp, *nmp; struct vnode *vp; @@ -1333,7 +1329,7 @@ printlockedvnodes(void) simple_lock(&mountlist_slock); for (mp = CIRCLEQ_FIRST(&mountlist); mp != CIRCLEQ_END(&mountlist); mp = nmp) { - if (vfs_busy(mp, LK_NOWAIT, &mountlist_slock, p)) { + if (vfs_busy(mp, LK_NOWAIT, &mountlist_slock)) { nmp = CIRCLEQ_NEXT(mp, mnt_list); continue; } @@ -1343,7 +1339,7 @@ printlockedvnodes(void) } simple_lock(&mountlist_slock); nmp = CIRCLEQ_NEXT(mp, mnt_list); - vfs_unbusy(mp, p); + vfs_unbusy(mp); } simple_unlock(&mountlist_slock); @@ -1414,7 +1410,7 @@ sysctl_vnode(char *where, size_t *sizep, struct proc *p) simple_lock(&mountlist_slock); for (mp = CIRCLEQ_FIRST(&mountlist); mp != CIRCLEQ_END(&mountlist); mp = nmp) { - if (vfs_busy(mp, LK_NOWAIT, &mountlist_slock, p)) { + if (vfs_busy(mp, LK_NOWAIT, &mountlist_slock)) { nmp = CIRCLEQ_NEXT(mp, mnt_list); continue; } @@ -1438,7 +1434,7 @@ again: if (bp + sizeof(struct e_vnode) > ewhere) { simple_unlock(&mntvnode_slock); *sizep = bp - where; - vfs_unbusy(mp, p); + vfs_unbusy(mp); return (ENOMEM); } if ((error = copyout(&vp, @@ -1447,7 +1443,7 @@ again: (error = copyout(vp, &((struct e_vnode *)bp)->vnode, sizeof(struct vnode)))) { - vfs_unbusy(mp, p); + vfs_unbusy(mp); return (error); } bp += sizeof(struct e_vnode); @@ -1457,7 +1453,7 @@ again: simple_unlock(&mntvnode_slock); simple_lock(&mountlist_slock); nmp = CIRCLEQ_NEXT(mp, mnt_list); - vfs_unbusy(mp, p); + vfs_unbusy(mp); } simple_unlock(&mountlist_slock); @@ -1711,14 +1707,13 @@ vfs_unmountall(void) { struct mount *mp, *nmp; int allerror, error, again = 1; - struct proc *p = curproc; retry: allerror = 0; for (mp = CIRCLEQ_LAST(&mountlist); mp != CIRCLEQ_END(&mountlist); mp = nmp) { nmp = CIRCLEQ_PREV(mp, mnt_list); - if ((vfs_busy(mp, LK_EXCLUSIVE|LK_NOWAIT, NULL, p)) != 0) + if ((vfs_busy(mp, LK_EXCLUSIVE|LK_NOWAIT, NULL)) != 0) continue; if ((error = dounmount(mp, MNT_FORCE, curproc, NULL)) != 0) { printf("unmount of %s failed with error %d\n", diff --git a/sys/kern/vfs_sync.c b/sys/kern/vfs_sync.c index 19b0389ee54..62a280afcaa 100644 --- a/sys/kern/vfs_sync.c +++ b/sys/kern/vfs_sync.c @@ -1,4 +1,4 @@ -/* $OpenBSD: vfs_sync.c,v 1.35 2005/11/06 13:07:48 pedro Exp $ */ +/* $OpenBSD: vfs_sync.c,v 1.36 2005/11/30 10:35:07 pedro Exp $ */ /* * Portions of this code are: @@ -352,13 +352,13 @@ sync_fsync(void *v) * not already on the sync list. */ simple_lock(&mountlist_slock); - if (vfs_busy(mp, LK_NOWAIT, &mountlist_slock, ap->a_p) == 0) { + if (vfs_busy(mp, LK_NOWAIT, &mountlist_slock) == 0) { asyncflag = mp->mnt_flag & MNT_ASYNC; mp->mnt_flag &= ~MNT_ASYNC; VFS_SYNC(mp, MNT_LAZY, ap->a_cred, ap->a_p); if (asyncflag) mp->mnt_flag |= MNT_ASYNC; - vfs_unbusy(mp, ap->a_p); + vfs_unbusy(mp); } else simple_unlock(&mountlist_slock); diff --git a/sys/kern/vfs_syscalls.c b/sys/kern/vfs_syscalls.c index 1047dffb2a1..4543f713660 100644 --- a/sys/kern/vfs_syscalls.c +++ b/sys/kern/vfs_syscalls.c @@ -1,4 +1,4 @@ -/* $OpenBSD: vfs_syscalls.c,v 1.129 2005/11/27 12:37:58 pedro Exp $ */ +/* $OpenBSD: vfs_syscalls.c,v 1.130 2005/11/30 10:35:08 pedro Exp $ */ /* $NetBSD: vfs_syscalls.c,v 1.71 1996/04/23 10:29:02 mycroft Exp $ */ /* @@ -150,7 +150,7 @@ sys_mount(struct proc *p, void *v, register_t *retval) if (flag & MNT_NOEXEC) SCARG(uap, flags) |= MNT_NOEXEC; } - if ((error = vfs_busy(mp, LK_NOWAIT, 0, p)) != 0) { + if ((error = vfs_busy(mp, LK_NOWAIT, NULL)) != 0) { vput(vp); return (error); } @@ -238,7 +238,7 @@ sys_mount(struct proc *p, void *v, register_t *retval) bzero((char *)mp, (u_long)sizeof(struct mount)); lockinit(&mp->mnt_lock, PVFS, "vfslock", 0, 0); /* This error never happens, but it makes auditing easier */ - if ((error = vfs_busy(mp, LK_NOWAIT, 0, p))) + if ((error = vfs_busy(mp, LK_NOWAIT, NULL))) return (error); mp->mnt_op = vfsp->vfc_vfsops; mp->mnt_vfc = vfsp; @@ -285,7 +285,7 @@ update: mp->mnt_syncer = NULL; } - vfs_unbusy(mp, p); + vfs_unbusy(mp); return (error); } @@ -304,13 +304,13 @@ update: VOP_UNLOCK(vp, 0, p); if ((mp->mnt_flag & MNT_RDONLY) == 0) error = vfs_allocate_syncvnode(mp); - vfs_unbusy(mp, p); + vfs_unbusy(mp); (void) VFS_STATFS(mp, &mp->mnt_stat, p); if ((error = VFS_START(mp, 0, p)) != 0) vrele(vp); } else { mp->mnt_vnodecovered->v_mountedhere = (struct mount *)0; - vfs_unbusy(mp, p); + vfs_unbusy(mp); free(mp, M_MOUNT); vput(vp); } @@ -407,7 +407,7 @@ sys_unmount(struct proc *p, void *v, register_t *retval) } vput(vp); - if (vfs_busy(mp, LK_EXCLUSIVE, NULL, p)) + if (vfs_busy(mp, LK_EXCLUSIVE, NULL)) return (EBUSY); return (dounmount(mp, SCARG(uap, flags), p, vp)); @@ -473,7 +473,7 @@ sys_sync(struct proc *p, void *v, register_t *retval) simple_lock(&mountlist_slock); for (mp = CIRCLEQ_LAST(&mountlist); mp != CIRCLEQ_END(&mountlist); mp = nmp) { - if (vfs_busy(mp, LK_NOWAIT, &mountlist_slock, p)) { + if (vfs_busy(mp, LK_NOWAIT, &mountlist_slock)) { nmp = CIRCLEQ_PREV(mp, mnt_list); continue; } @@ -487,7 +487,7 @@ sys_sync(struct proc *p, void *v, register_t *retval) } simple_lock(&mountlist_slock); nmp = CIRCLEQ_PREV(mp, mnt_list); - vfs_unbusy(mp, p); + vfs_unbusy(mp); } simple_unlock(&mountlist_slock); @@ -630,7 +630,7 @@ sys_getfsstat(struct proc *p, void *v, register_t *retval) simple_lock(&mountlist_slock); for (mp = CIRCLEQ_FIRST(&mountlist); mp != CIRCLEQ_END(&mountlist); mp = nmp) { - if (vfs_busy(mp, LK_NOWAIT, &mountlist_slock, p)) { + if (vfs_busy(mp, LK_NOWAIT, &mountlist_slock)) { nmp = CIRCLEQ_NEXT(mp, mnt_list); continue; } @@ -645,7 +645,7 @@ sys_getfsstat(struct proc *p, void *v, register_t *retval) (error = VFS_STATFS(mp, sp, p))) { simple_lock(&mountlist_slock); nmp = CIRCLEQ_NEXT(mp, mnt_list); - vfs_unbusy(mp, p); + vfs_unbusy(mp); continue; } @@ -661,7 +661,7 @@ sys_getfsstat(struct proc *p, void *v, register_t *retval) } error = copyout(sp, sfsp, sizeof(*sp)); if (error) { - vfs_unbusy(mp, p); + vfs_unbusy(mp); return (error); } sfsp++; @@ -669,7 +669,7 @@ sys_getfsstat(struct proc *p, void *v, register_t *retval) count++; simple_lock(&mountlist_slock); nmp = CIRCLEQ_NEXT(mp, mnt_list); - vfs_unbusy(mp, p); + vfs_unbusy(mp); } simple_unlock(&mountlist_slock); if (sfsp && count > maxcount) @@ -707,10 +707,10 @@ sys_fchdir(struct proc *p, void *v, register_t *retval) error = VOP_ACCESS(vp, VEXEC, p->p_ucred, p); while (!error && (mp = vp->v_mountedhere) != NULL) { - if (vfs_busy(mp, 0, 0, p)) + if (vfs_busy(mp, 0, NULL)) continue; error = VFS_ROOT(mp, &tdp); - vfs_unbusy(mp, p); + vfs_unbusy(mp); if (error) break; vput(vp); diff --git a/sys/nfs/nfs_syscalls.c b/sys/nfs/nfs_syscalls.c index 7bf17ef9d96..0156eb77b0e 100644 --- a/sys/nfs/nfs_syscalls.c +++ b/sys/nfs/nfs_syscalls.c @@ -1,4 +1,4 @@ -/* $OpenBSD: nfs_syscalls.c,v 1.44 2005/04/01 02:54:57 tedu Exp $ */ +/* $OpenBSD: nfs_syscalls.c,v 1.45 2005/11/30 10:35:08 pedro Exp $ */ /* $NetBSD: nfs_syscalls.c,v 1.19 1996/02/18 11:53:52 fvdl Exp $ */ /* @@ -177,7 +177,7 @@ nfs_clientd(struct nfsmount *nmp, struct ucred *cred, struct nfsd_cargs *ncd, error = tsleep((caddr_t)&nmp->nm_authstr, PSOCK | PCATCH, "nqnfstimr", hz / 3); if (error == EINTR || error == ERESTART) { - if (vfs_busy(nmp->nm_mountp, LK_EXCLUSIVE, NULL, p) == 0) + if (vfs_busy(nmp->nm_mountp, LK_EXCLUSIVE, NULL) == 0) dounmount(nmp->nm_mountp, MNT_FORCE, p, NULL); } } diff --git a/sys/nfs/nfs_vfsops.c b/sys/nfs/nfs_vfsops.c index c86675ce7cf..0240b4a73ae 100644 --- a/sys/nfs/nfs_vfsops.c +++ b/sys/nfs/nfs_vfsops.c @@ -1,4 +1,4 @@ -/* $OpenBSD: nfs_vfsops.c,v 1.57 2005/05/22 17:37:49 pedro Exp $ */ +/* $OpenBSD: nfs_vfsops.c,v 1.58 2005/11/30 10:35:08 pedro Exp $ */ /* $NetBSD: nfs_vfsops.c,v 1.46.4.1 1996/05/25 22:40:35 fvdl Exp $ */ /* @@ -282,7 +282,7 @@ nfs_mountroot() simple_lock(&mountlist_slock); CIRCLEQ_INSERT_TAIL(&mountlist, mp, mnt_list); simple_unlock(&mountlist_slock); - vfs_unbusy(mp, procp); + vfs_unbusy(mp); /* Get root attributes (for the time). */ error = VOP_GETATTR(rootvp, &attr, procp->p_ucred, procp); @@ -328,7 +328,7 @@ nfs_mountroot() if (!error) { mp = nfs_mount_diskless(&nd.nd_swap, "/swap", 0); nfs_root(mp, &vp); - vfs_unbusy(mp, procp); + vfs_unbusy(mp); /* * Since the swap file is not the root dir of a file system, diff --git a/sys/sys/mount.h b/sys/sys/mount.h index e28e1e6e180..524492e587b 100644 --- a/sys/sys/mount.h +++ b/sys/sys/mount.h @@ -1,4 +1,4 @@ -/* $OpenBSD: mount.h,v 1.64 2005/11/24 12:08:16 pedro Exp $ */ +/* $OpenBSD: mount.h,v 1.65 2005/11/30 10:35:08 pedro Exp $ */ /* $NetBSD: mount.h,v 1.48 1996/02/18 11:55:47 fvdl Exp $ */ /* @@ -564,7 +564,7 @@ struct netexport { /* * exported vnode operations */ -int vfs_busy(struct mount *, int, struct simplelock *, struct proc *); +int vfs_busy(struct mount *, int, struct simplelock *); int vfs_isbusy(struct mount *); int vfs_mount_foreach_vnode(struct mount *, int (*func)(struct vnode *, void *), void *); @@ -573,7 +573,7 @@ struct mount *vfs_getvfs(fsid_t *); int vfs_mountedon(struct vnode *); int vfs_mountroot(void); int vfs_rootmountalloc(char *, char *, struct mount **); -void vfs_unbusy(struct mount *, struct proc *); +void vfs_unbusy(struct mount *); void vfs_unmountall(void); extern CIRCLEQ_HEAD(mntlist, mount) mountlist; extern struct simplelock mountlist_slock; diff --git a/sys/ufs/ext2fs/ext2fs_vfsops.c b/sys/ufs/ext2fs/ext2fs_vfsops.c index 9a56f711089..e279efcda54 100644 --- a/sys/ufs/ext2fs/ext2fs_vfsops.c +++ b/sys/ufs/ext2fs/ext2fs_vfsops.c @@ -1,4 +1,4 @@ -/* $OpenBSD: ext2fs_vfsops.c,v 1.40 2005/11/06 00:24:17 pedro Exp $ */ +/* $OpenBSD: ext2fs_vfsops.c,v 1.41 2005/11/30 10:35:08 pedro Exp $ */ /* $NetBSD: ext2fs_vfsops.c,v 1.1 1997/06/11 09:34:07 bouyer Exp $ */ /* @@ -140,7 +140,7 @@ ext2fs_mountroot() if ((error = ext2fs_mountfs(rootvp, mp, p)) != 0) { mp->mnt_vfc->vfc_refcount--; - vfs_unbusy(mp, p); + vfs_unbusy(mp); free(mp, M_MOUNT); vrele(rootvp); return (error); @@ -159,7 +159,7 @@ ext2fs_mountroot() sizeof(fs->e2fs.e2fs_fsmnt) - 1, 0); } (void)ext2fs_statfs(mp, &mp->mnt_stat, p); - vfs_unbusy(mp, p); + vfs_unbusy(mp); inittodr(fs->e2fs.e2fs_wtime); return (0); } diff --git a/sys/ufs/ffs/ffs_vfsops.c b/sys/ufs/ffs/ffs_vfsops.c index de0db8e085b..557b3f15a03 100644 --- a/sys/ufs/ffs/ffs_vfsops.c +++ b/sys/ufs/ffs/ffs_vfsops.c @@ -1,4 +1,4 @@ -/* $OpenBSD: ffs_vfsops.c,v 1.74 2005/11/08 02:29:51 pedro Exp $ */ +/* $OpenBSD: ffs_vfsops.c,v 1.75 2005/11/30 10:35:08 pedro Exp $ */ /* $NetBSD: ffs_vfsops.c,v 1.19 1996/02/09 22:22:26 christos Exp $ */ /* @@ -130,7 +130,7 @@ ffs_mountroot(void) if ((error = ffs_mountfs(rootvp, mp, p)) != 0) { mp->mnt_vfc->vfc_refcount--; - vfs_unbusy(mp, p); + vfs_unbusy(mp); free(mp, M_MOUNT); vrele(swapdev_vp); vrele(rootvp); @@ -143,7 +143,7 @@ ffs_mountroot(void) fs = ump->um_fs; (void) copystr(mp->mnt_stat.f_mntonname, fs->fs_fsmnt, MNAMELEN - 1, 0); (void)ffs_statfs(mp, &mp->mnt_stat, p); - vfs_unbusy(mp, p); + vfs_unbusy(mp); inittodr(fs->fs_time); return (0); } diff --git a/sys/ufs/mfs/mfs_vfsops.c b/sys/ufs/mfs/mfs_vfsops.c index 5b1425f03ea..401e44e496d 100644 --- a/sys/ufs/mfs/mfs_vfsops.c +++ b/sys/ufs/mfs/mfs_vfsops.c @@ -1,4 +1,4 @@ -/* $OpenBSD: mfs_vfsops.c,v 1.28 2005/07/03 20:14:02 drahn Exp $ */ +/* $OpenBSD: mfs_vfsops.c,v 1.29 2005/11/30 10:35:08 pedro Exp $ */ /* $NetBSD: mfs_vfsops.c,v 1.10 1996/02/09 22:31:28 christos Exp $ */ /* @@ -113,7 +113,7 @@ mfs_mountroot() mfsp->mfs_buflist = (struct buf *)0; if ((error = ffs_mountfs(rootvp, mp, p)) != 0) { mp->mnt_vfc->vfc_refcount--; - vfs_unbusy(mp, p); + vfs_unbusy(mp); free(mp, M_MOUNT); free(mfsp, M_MFSNODE); return (error); @@ -125,7 +125,7 @@ mfs_mountroot() fs = ump->um_fs; (void) copystr(mp->mnt_stat.f_mntonname, fs->fs_fsmnt, MNAMELEN - 1, 0); (void)ffs_statfs(mp, &mp->mnt_stat, p); - vfs_unbusy(mp, p); + vfs_unbusy(mp); inittodr((time_t)0); return (0); } @@ -271,7 +271,7 @@ mfs_start(mp, flags, p) * EINTR/ERESTART. */ if (sleepreturn != 0) { - if (vfs_busy(mp, LK_EXCLUSIVE|LK_NOWAIT, NULL, p) || + if (vfs_busy(mp, LK_EXCLUSIVE|LK_NOWAIT, NULL) || dounmount(mp, 0, p, NULL)) CLRSIG(p, CURSIG(p)); sleepreturn = 0; diff --git a/sys/ufs/ufs/ufs_quota.c b/sys/ufs/ufs/ufs_quota.c index a87d2f23aed..bc2c7e45c0c 100644 --- a/sys/ufs/ufs/ufs_quota.c +++ b/sys/ufs/ufs/ufs_quota.c @@ -1,4 +1,4 @@ -/* $OpenBSD: ufs_quota.c,v 1.20 2005/11/11 16:27:52 pedro Exp $ */ +/* $OpenBSD: ufs_quota.c,v 1.21 2005/11/30 10:35:08 pedro Exp $ */ /* $NetBSD: ufs_quota.c,v 1.8 1996/02/09 22:36:09 christos Exp $ */ /* @@ -1028,7 +1028,7 @@ ufs_quotactl(struct mount *mp, int cmds, uid_t uid, caddr_t arg, if ((u_int)type >= MAXQUOTAS) return (EINVAL); - if (vfs_busy(mp, LK_NOWAIT, 0, p)) + if (vfs_busy(mp, LK_NOWAIT, NULL)) return (0); @@ -1063,6 +1063,6 @@ ufs_quotactl(struct mount *mp, int cmds, uid_t uid, caddr_t arg, break; } - vfs_unbusy(mp, p); + vfs_unbusy(mp); return (error); } diff --git a/sys/xfs/xfs_config.h b/sys/xfs/xfs_config.h index 57cf01c741e..32e33f0ec59 100644 --- a/sys/xfs/xfs_config.h +++ b/sys/xfs/xfs_config.h @@ -228,7 +228,7 @@ static /**/const char *const rcsid[] = { (const char *)rcsid, "@(#)" msg } /* #undef HAVE_FOUR_ARGUMENT_LOCKMGR */ /* define if vfs_busy takes four arguments */ -#define HAVE_FOUR_ARGUMENT_VFS_BUSY 1 +/* #undef HAVE_FOUR_ARGUMENT_VFS_BUSY */ /* define if vfs_name_hash takes four arguments */ /* #undef HAVE_FOUR_ARGUMENT_VFS_NAME_HASH */ @@ -1260,7 +1260,7 @@ static /**/const char *const rcsid[] = { (const char *)rcsid, "@(#)" msg } /* #undef HAVE_THREE_ARGUMENT_SELRECORD */ /* define if vfs_busy takes three arguments */ -/* #undef HAVE_THREE_ARGUMENT_VFS_BUSY */ +#define HAVE_THREE_ARGUMENT_VFS_BUSY 1 /* define if vfs_name_hash takes three arguments */ /* #undef HAVE_THREE_ARGUMENT_VFS_NAME_HASH */ diff --git a/usr.sbin/afs/include/config.h b/usr.sbin/afs/include/config.h index 57cf01c741e..32e33f0ec59 100644 --- a/usr.sbin/afs/include/config.h +++ b/usr.sbin/afs/include/config.h @@ -228,7 +228,7 @@ static /**/const char *const rcsid[] = { (const char *)rcsid, "@(#)" msg } /* #undef HAVE_FOUR_ARGUMENT_LOCKMGR */ /* define if vfs_busy takes four arguments */ -#define HAVE_FOUR_ARGUMENT_VFS_BUSY 1 +/* #undef HAVE_FOUR_ARGUMENT_VFS_BUSY */ /* define if vfs_name_hash takes four arguments */ /* #undef HAVE_FOUR_ARGUMENT_VFS_NAME_HASH */ @@ -1260,7 +1260,7 @@ static /**/const char *const rcsid[] = { (const char *)rcsid, "@(#)" msg } /* #undef HAVE_THREE_ARGUMENT_SELRECORD */ /* define if vfs_busy takes three arguments */ -/* #undef HAVE_THREE_ARGUMENT_VFS_BUSY */ +#define HAVE_THREE_ARGUMENT_VFS_BUSY 1 /* define if vfs_name_hash takes three arguments */ /* #undef HAVE_THREE_ARGUMENT_VFS_NAME_HASH */ diff --git a/usr.sbin/afs/src/include/config.h b/usr.sbin/afs/src/include/config.h index eff15d5b639..fc1004e302b 100644 --- a/usr.sbin/afs/src/include/config.h +++ b/usr.sbin/afs/src/include/config.h @@ -882,10 +882,10 @@ #define HAVE_THREE_ARGUMENT_VOP_LOCK 1 /* define if vfs_busy takes three arguments */ -/* #undef HAVE_THREE_ARGUMENT_VFS_BUSY */ +#define HAVE_THREE_ARGUMENT_VFS_BUSY 1 /* define if vfs_busy takes four arguments */ -#define HAVE_FOUR_ARGUMENT_VFS_BUSY 1 +/* #undef HAVE_FOUR_ARGUMENT_VFS_BUSY */ /* define if vget takes one argument */ /* #undef HAVE_ONE_ARGUMENT_VGET */ |