summaryrefslogtreecommitdiffstats
path: root/sys/ufs
diff options
context:
space:
mode:
Diffstat (limited to 'sys/ufs')
-rw-r--r--sys/ufs/ufs/ufs_vnops.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/sys/ufs/ufs/ufs_vnops.c b/sys/ufs/ufs/ufs_vnops.c
index 127bda2..07d0dac 100644
--- a/sys/ufs/ufs/ufs_vnops.c
+++ b/sys/ufs/ufs/ufs_vnops.c
@@ -208,6 +208,7 @@ ufs_mknod(ap)
struct vattr *vap = ap->a_vap;
struct vnode **vpp = ap->a_vpp;
struct inode *ip;
+ ino_t ino;
int error;
error = ufs_makeinode(MAKEIMODE(vap->va_type, vap->va_mode),
@@ -231,8 +232,9 @@ ufs_mknod(ap)
*/
vput(*vpp);
(*vpp)->v_type = VNON;
+ ino = ip->i_number; /* Save this before vgone() invalidates ip. */
vgone(*vpp);
- error = VFS_VGET(ap->a_dvp->v_mount, ip->i_ino, vpp);
+ error = VFS_VGET(ap->a_dvp->v_mount, ino, vpp);
if (error) {
*vpp = NULL;
return (error);
OpenPOWER on IntegriCloud