summaryrefslogtreecommitdiff
path: root/sys/gnu
diff options
context:
space:
mode:
authorBruce Evans <bde@FreeBSD.org>2000-11-07 03:09:52 +0000
committerBruce Evans <bde@FreeBSD.org>2000-11-07 03:09:52 +0000
commit0683627c64bb9ee86b302b9522c55b1aac4ac966 (patch)
treee3a54b2f0f40f03847db1482a116b4d2addc4e40 /sys/gnu
parenta2717ad2cdb43d99f6bcd5146131d4af7aa06406 (diff)
Notes
Diffstat (limited to 'sys/gnu')
-rw-r--r--sys/gnu/ext2fs/ext2_vnops.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/sys/gnu/ext2fs/ext2_vnops.c b/sys/gnu/ext2fs/ext2_vnops.c
index 0e57f30af44c..8076fd888c77 100644
--- a/sys/gnu/ext2fs/ext2_vnops.c
+++ b/sys/gnu/ext2fs/ext2_vnops.c
@@ -263,6 +263,7 @@ ext2_mknod(ap)
struct vattr *vap = ap->a_vap;
struct vnode **vpp = ap->a_vpp;
struct inode *ip;
+ ino_t ino;
int error;
error = ext2_makeinode(MAKEIMODE(vap->va_type, vap->va_mode),
@@ -285,8 +286,9 @@ ext2_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);