aboutsummaryrefslogtreecommitdiff
path: root/sys/fs
diff options
context:
space:
mode:
authorJohn Baldwin <jhb@FreeBSD.org>2001-01-23 22:38:15 +0000
committerJohn Baldwin <jhb@FreeBSD.org>2001-01-23 22:38:15 +0000
commit1aab03a584f8e2a8550e6682fe479e2e590ef790 (patch)
treec4e2a5861f0aa4144526327c8dacac521c0ccb70 /sys/fs
parentf5343b32191e51afda6d41aab99393628f6d5c40 (diff)
Notes
Diffstat (limited to 'sys/fs')
-rw-r--r--sys/fs/hpfs/hpfs_vfsops.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/sys/fs/hpfs/hpfs_vfsops.c b/sys/fs/hpfs/hpfs_vfsops.c
index 628ec2528c22..ab6d76312630 100644
--- a/sys/fs/hpfs/hpfs_vfsops.c
+++ b/sys/fs/hpfs/hpfs_vfsops.c
@@ -331,6 +331,9 @@ hpfs_mountfs(devvp, mp, argsp, p)
struct hpfsmount *hpmp;
struct buf *bp = NULL;
struct vnode *vp;
+#if defined(__FreeBSD__)
+ struct ucred *uc;
+#endif
dev_t dev = devvp->v_rdev;
dprintf(("hpfs_mountfs():\n"));
@@ -353,7 +356,12 @@ hpfs_mountfs(devvp, mp, argsp, p)
#if defined(__FreeBSD__)
VN_LOCK(devvp, LK_EXCLUSIVE | LK_RETRY, p);
- error = vinvalbuf(devvp, V_SAVE, p->p_ucred, p, 0, 0);
+ PROC_LOCK(p);
+ uc = p->p_ucred;
+ crhold(uc);
+ PROC_UNLOCK(p);
+ error = vinvalbuf(devvp, V_SAVE, uc, p, 0, 0);
+ crfree(uc);
VOP__UNLOCK(devvp, 0, p);
#else
error = vinvalbuf(devvp, V_SAVE, p->p_ucred, p, 0, 0);