summaryrefslogtreecommitdiffstats
path: root/sys/kern/vfs_extattr.c
diff options
context:
space:
mode:
authorjeff <jeff@FreeBSD.org>2005-06-14 01:14:40 +0000
committerjeff <jeff@FreeBSD.org>2005-06-14 01:14:40 +0000
commit1792584f2aca162b7b810a852ce3b1583c7e50e9 (patch)
tree9783ba6b3f01c9c59659a4a25a4fca75a479932e /sys/kern/vfs_extattr.c
parentd6e60e9b867a54a54b941c4ff2300aefa5b1ab8f (diff)
downloadFreeBSD-src-1792584f2aca162b7b810a852ce3b1583c7e50e9.zip
FreeBSD-src-1792584f2aca162b7b810a852ce3b1583c7e50e9.tar.gz
- Remove vnode lock asserts at the end of vfs syscalls. These asserts were
used to ensure that we weren't exiting the syscall with a lock still held. This wasn't safe, however, because we'd already executed a vput() and on a loaded system the vnode may have been free'd by the time we assert. This functionality is also handled by the td_locks assert in userret, which doesn't tell you what the syscall was, but will at least panic before you deadlock. Sponsored by: Isilon Systems, Inc. Discovred by: Peter Holm Approved by: re (blanket vfs)
Diffstat (limited to 'sys/kern/vfs_extattr.c')
-rw-r--r--sys/kern/vfs_extattr.c18
1 files changed, 0 insertions, 18 deletions
diff --git a/sys/kern/vfs_extattr.c b/sys/kern/vfs_extattr.c
index b3bb0b2..fe796dc 100644
--- a/sys/kern/vfs_extattr.c
+++ b/sys/kern/vfs_extattr.c
@@ -1258,8 +1258,6 @@ restart:
NDFREE(&nd, NDF_ONLY_PNBUF);
vput(nd.ni_dvp);
vn_finished_write(mp);
- ASSERT_VOP_UNLOCKED(nd.ni_dvp, "mknod");
- ASSERT_VOP_UNLOCKED(nd.ni_vp, "mknod");
VFS_UNLOCK_GIANT(vfslocked);
return (error);
}
@@ -1466,8 +1464,6 @@ kern_link(struct thread *td, char *path, char *link, enum uio_seg segflg)
vrele(vp);
vn_finished_write(mp);
VFS_UNLOCK_GIANT(vfslocked);
- ASSERT_VOP_UNLOCKED(nd.ni_dvp, "link");
- ASSERT_VOP_UNLOCKED(nd.ni_vp, "link");
return (error);
}
@@ -1557,8 +1553,6 @@ out2:
vput(nd.ni_dvp);
vn_finished_write(mp);
VFS_UNLOCK_GIANT(vfslocked);
- ASSERT_VOP_UNLOCKED(nd.ni_dvp, "symlink");
- ASSERT_VOP_UNLOCKED(nd.ni_vp, "symlink");
out:
if (segflg != UIO_SYSSPACE)
uma_zfree(namei_zone, syspath);
@@ -1614,8 +1608,6 @@ restart:
vput(nd.ni_dvp);
vn_finished_write(mp);
VFS_UNLOCK_GIANT(vfslocked);
- ASSERT_VOP_UNLOCKED(nd.ni_dvp, "undelete");
- ASSERT_VOP_UNLOCKED(nd.ni_vp, "undelete");
return (error);
}
@@ -1701,8 +1693,6 @@ out:
vput(vp);
vput(nd.ni_dvp);
VFS_UNLOCK_GIANT(vfslocked);
- ASSERT_VOP_UNLOCKED(nd.ni_dvp, "unlink");
- ASSERT_VOP_UNLOCKED(nd.ni_vp, "unlink");
return (error);
}
@@ -3288,10 +3278,6 @@ out:
vrele(fvp);
}
vrele(tond.ni_startdir);
- ASSERT_VOP_UNLOCKED(fromnd.ni_dvp, "rename");
- ASSERT_VOP_UNLOCKED(fromnd.ni_vp, "rename");
- ASSERT_VOP_UNLOCKED(tond.ni_dvp, "rename");
- ASSERT_VOP_UNLOCKED(tond.ni_vp, "rename");
out1:
vn_finished_write(mp);
if (fromnd.ni_startdir)
@@ -3387,8 +3373,6 @@ out:
vput(nd.ni_vp);
vn_finished_write(mp);
VFS_UNLOCK_GIANT(vfslocked);
- ASSERT_VOP_UNLOCKED(nd.ni_dvp, "mkdir");
- ASSERT_VOP_UNLOCKED(nd.ni_vp, "mkdir");
return (error);
}
@@ -3475,8 +3459,6 @@ out:
vput(nd.ni_dvp);
vput(vp);
VFS_UNLOCK_GIANT(vfslocked);
- ASSERT_VOP_UNLOCKED(nd.ni_dvp, "rmdir");
- ASSERT_VOP_UNLOCKED(nd.ni_vp, "rmdir");
return (error);
}
OpenPOWER on IntegriCloud