aboutsummaryrefslogtreecommitdiff
path: root/sys/fs/devfs/devfs_vfsops.c
diff options
context:
space:
mode:
authorAlfred Perlstein <alfred@FreeBSD.org>2004-07-12 08:14:09 +0000
committerAlfred Perlstein <alfred@FreeBSD.org>2004-07-12 08:14:09 +0000
commitf257b7a54b4fe77840cf694314bdc401e00c31a1 (patch)
tree8fe425c682e229149daf17e6533c0f750ba308d3 /sys/fs/devfs/devfs_vfsops.c
parent57a3bc41636f110374799dd408647fe26f107ac3 (diff)
downloadsrc-f257b7a54b4fe77840cf694314bdc401e00c31a1.tar.gz
src-f257b7a54b4fe77840cf694314bdc401e00c31a1.zip
Make VFS_ROOT() and vflush() take a thread argument.
This is to allow filesystems to decide based on the passed thread which vnode to return. Several filesystems used curthread, they now use the passed thread.
Notes
Notes: svn path=/head/; revision=132023
Diffstat (limited to 'sys/fs/devfs/devfs_vfsops.c')
-rw-r--r--sys/fs/devfs/devfs_vfsops.c9
1 files changed, 4 insertions, 5 deletions
diff --git a/sys/fs/devfs/devfs_vfsops.c b/sys/fs/devfs/devfs_vfsops.c
index a10efa271f8f..f23d6603facc 100644
--- a/sys/fs/devfs/devfs_vfsops.c
+++ b/sys/fs/devfs/devfs_vfsops.c
@@ -101,7 +101,7 @@ devfs_nmount(mp, ndp, td)
fmp->dm_basedir = fmp->dm_rootdir;
devfs_rules_newmount(fmp, td);
- error = devfs_root(mp, &rvp);
+ error = devfs_root(mp, &rvp, td);
if (error) {
lockdestroy(&fmp->dm_lock);
FREE(fmp, M_DEVFS);
@@ -130,7 +130,7 @@ devfs_unmount(mp, mntflags, td)
if (mntflags & MNT_FORCE)
flags |= FORCECLOSE;
/* There is 1 extra root vnode reference from devfs_mount(). */
- error = vflush(mp, 1, flags);
+ error = vflush(mp, 1, flags, td);
if (error)
return (error);
devfs_purge(fmp->dm_rootdir);
@@ -144,16 +144,15 @@ devfs_unmount(mp, mntflags, td)
/* Return locked reference to root. */
static int
-devfs_root(mp, vpp)
+devfs_root(mp, vpp, td)
struct mount *mp;
struct vnode **vpp;
+ struct thread *td;
{
int error;
- struct thread *td;
struct vnode *vp;
struct devfs_mount *dmp;
- td = curthread; /* XXX */
dmp = VFSTODEVFS(mp);
error = devfs_allocv(dmp->dm_rootdir, mp, &vp, td);
if (error)