diff options
Diffstat (limited to 'sys/kern')
-rw-r--r-- | sys/kern/init_main.c | 2 | ||||
-rw-r--r-- | sys/kern/vfs_default.c | 3 | ||||
-rw-r--r-- | sys/kern/vfs_export.c | 2 | ||||
-rw-r--r-- | sys/kern/vfs_extattr.c | 2 | ||||
-rw-r--r-- | sys/kern/vfs_lookup.c | 2 | ||||
-rw-r--r-- | sys/kern/vfs_mount.c | 8 | ||||
-rw-r--r-- | sys/kern/vfs_subr.c | 8 | ||||
-rw-r--r-- | sys/kern/vfs_syscalls.c | 2 |
8 files changed, 15 insertions, 14 deletions
diff --git a/sys/kern/init_main.c b/sys/kern/init_main.c index 757f8ae..575f227 100644 --- a/sys/kern/init_main.c +++ b/sys/kern/init_main.c @@ -553,7 +553,7 @@ start_init(void *dummy) vfs_mountroot(); /* Get the vnode for '/'. Set p->p_fd->fd_cdir to reference it. */ - if (VFS_ROOT(TAILQ_FIRST(&mountlist), &rootvnode)) + if (VFS_ROOT(TAILQ_FIRST(&mountlist), &rootvnode, td)) panic("cannot find root vnode"); FILEDESC_LOCK(p->p_fd); p->p_fd->fd_cdir = rootvnode; diff --git a/sys/kern/vfs_default.c b/sys/kern/vfs_default.c index c497b60..5812a03 100644 --- a/sys/kern/vfs_default.c +++ b/sys/kern/vfs_default.c @@ -655,9 +655,10 @@ vop_stdputpages(ap) * used to fill the vfs function table to get reasonable default return values. */ int -vfs_stdroot (mp, vpp) +vfs_stdroot (mp, vpp, td) struct mount *mp; struct vnode **vpp; + struct thread *td; { return (EOPNOTSUPP); diff --git a/sys/kern/vfs_export.c b/sys/kern/vfs_export.c index a90d6f8..dd21782 100644 --- a/sys/kern/vfs_export.c +++ b/sys/kern/vfs_export.c @@ -296,7 +296,7 @@ vfs_setpublicfs(mp, nep, argp) bzero(&nfs_pub.np_handle, sizeof(nfs_pub.np_handle)); nfs_pub.np_handle.fh_fsid = mp->mnt_stat.f_fsid; - if ((error = VFS_ROOT(mp, &rvp))) + if ((error = VFS_ROOT(mp, &rvp, curthread /* XXX */))) return (error); if ((error = VFS_VPTOFH(rvp, &nfs_pub.np_handle.fh_fid))) diff --git a/sys/kern/vfs_extattr.c b/sys/kern/vfs_extattr.c index 2fffe63..c22b194 100644 --- a/sys/kern/vfs_extattr.c +++ b/sys/kern/vfs_extattr.c @@ -690,7 +690,7 @@ fchdir(td, uap) while (!error && (mp = vp->v_mountedhere) != NULL) { if (vfs_busy(mp, 0, 0, td)) continue; - error = VFS_ROOT(mp, &tdp); + error = VFS_ROOT(mp, &tdp, td); vfs_unbusy(mp, td); if (error) break; diff --git a/sys/kern/vfs_lookup.c b/sys/kern/vfs_lookup.c index b931102..10b49aa 100644 --- a/sys/kern/vfs_lookup.c +++ b/sys/kern/vfs_lookup.c @@ -555,7 +555,7 @@ unionlookup: if (vfs_busy(mp, 0, 0, td)) continue; VOP_UNLOCK(dp, 0, td); - error = VFS_ROOT(mp, &tdp); + error = VFS_ROOT(mp, &tdp, td); vfs_unbusy(mp, td); if (error) { dpunlocked = 1; diff --git a/sys/kern/vfs_mount.c b/sys/kern/vfs_mount.c index 5252b3b..d697499 100644 --- a/sys/kern/vfs_mount.c +++ b/sys/kern/vfs_mount.c @@ -913,7 +913,7 @@ update: TAILQ_INSERT_TAIL(&mountlist, mp, mnt_list); mtx_unlock(&mountlist_mtx); vfs_event_signal(NULL, VQ_MOUNT, 0); - if (VFS_ROOT(mp, &newdp)) + if (VFS_ROOT(mp, &newdp, td)) panic("mount: lost mount"); checkdirs(vp, newdp); vput(newdp); @@ -1114,7 +1114,7 @@ dounmount(mp, flags, td) * vnode to the covered vnode. For non-forced unmounts we want * such references to cause an EBUSY error. */ - if ((flags & MNT_FORCE) && VFS_ROOT(mp, &fsrootvp) == 0) { + if ((flags & MNT_FORCE) && VFS_ROOT(mp, &fsrootvp, td) == 0) { if (mp->mnt_vnodecovered != NULL) checkdirs(fsrootvp, mp->mnt_vnodecovered); if (fsrootvp == rootvnode) { @@ -1131,7 +1131,7 @@ dounmount(mp, flags, td) vn_finished_write(mp); if (error) { /* Undo cdir/rdir and rootvnode changes made above. */ - if ((flags & MNT_FORCE) && VFS_ROOT(mp, &fsrootvp) == 0) { + if ((flags & MNT_FORCE) && VFS_ROOT(mp, &fsrootvp, td) == 0) { if (mp->mnt_vnodecovered != NULL) checkdirs(mp->mnt_vnodecovered, fsrootvp); if (rootvnode == NULL) { @@ -1465,7 +1465,7 @@ getdiskbyname(char *name) if (error) break; VFS_START(mp, 0, td); - VFS_ROOT(mp, &vroot); + VFS_ROOT(mp, &vroot, td); VOP_UNLOCK(vroot, 0, td); NDINIT(&nid, LOOKUP, NOCACHE|FOLLOW, diff --git a/sys/kern/vfs_subr.c b/sys/kern/vfs_subr.c index c0dff88..53403db 100644 --- a/sys/kern/vfs_subr.c +++ b/sys/kern/vfs_subr.c @@ -2258,7 +2258,7 @@ vdropl(vp) * * `rootrefs' specifies the base reference count for the root vnode * of this filesystem. The root vnode is considered busy if its - * v_usecount exceeds this value. On a successful return, vflush() + * v_usecount exceeds this value. On a successful return, vflush(, td) * will call vrele() on the root vnode exactly rootrefs times. * If the SKIPSYSTEM or WRITECLOSE flags are specified, rootrefs must * be zero. @@ -2269,12 +2269,12 @@ SYSCTL_INT(_debug, OID_AUTO, busyprt, CTLFLAG_RW, &busyprt, 0, ""); #endif int -vflush(mp, rootrefs, flags) +vflush(mp, rootrefs, flags, td) struct mount *mp; int rootrefs; int flags; + struct thread *td; { - struct thread *td = curthread; /* XXX */ struct vnode *vp, *nvp, *rootvp = NULL; struct vattr vattr; int busy = 0, error; @@ -2286,7 +2286,7 @@ vflush(mp, rootrefs, flags) * Get the filesystem root vnode. We can vput() it * immediately, since with rootrefs > 0, it won't go away. */ - if ((error = VFS_ROOT(mp, &rootvp)) != 0) + if ((error = VFS_ROOT(mp, &rootvp, td)) != 0) return (error); vput(rootvp); diff --git a/sys/kern/vfs_syscalls.c b/sys/kern/vfs_syscalls.c index 2fffe63..c22b194 100644 --- a/sys/kern/vfs_syscalls.c +++ b/sys/kern/vfs_syscalls.c @@ -690,7 +690,7 @@ fchdir(td, uap) while (!error && (mp = vp->v_mountedhere) != NULL) { if (vfs_busy(mp, 0, 0, td)) continue; - error = VFS_ROOT(mp, &tdp); + error = VFS_ROOT(mp, &tdp, td); vfs_unbusy(mp, td); if (error) break; |