diff options
author | delphij <delphij@FreeBSD.org> | 2007-08-03 06:24:31 +0000 |
---|---|---|
committer | delphij <delphij@FreeBSD.org> | 2007-08-03 06:24:31 +0000 |
commit | 8f39689f22ef1c7ad458c19e91b75513946a3ac7 (patch) | |
tree | 365e862f83ff44d36c30869e51148e9c45df2402 /sys/fs/tmpfs/tmpfs.h | |
parent | df648ac5178b3ae8c5f25a5ea45ecaf44e82ca6e (diff) | |
download | FreeBSD-src-8f39689f22ef1c7ad458c19e91b75513946a3ac7.zip FreeBSD-src-8f39689f22ef1c7ad458c19e91b75513946a3ac7.tar.gz |
MFp4 - Refine locking to eliminate some potential race/panics:
- Copy before testing a pointer. This closes a race window.
- Use msleep with the node interlock instead of tsleep.
- Do proper locking around access to tn_vpstate.
- Assert vnode VOP lock for dir_{atta,de}tach to capture
inconsistent locking.
Suggested by: kib
Submitted by: delphij
Reviewed by: Howard Su
Approved by: re (tmpfs blanket)
Diffstat (limited to 'sys/fs/tmpfs/tmpfs.h')
-rw-r--r-- | sys/fs/tmpfs/tmpfs.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/sys/fs/tmpfs/tmpfs.h b/sys/fs/tmpfs/tmpfs.h index 9ef7731..f681e32 100644 --- a/sys/fs/tmpfs/tmpfs.h +++ b/sys/fs/tmpfs/tmpfs.h @@ -256,6 +256,7 @@ LIST_HEAD(tmpfs_node_list, tmpfs_node); #define TMPFS_NODE_LOCK(node) mtx_lock(&(node)->tn_interlock) #define TMPFS_NODE_UNLOCK(node) mtx_unlock(&(node)->tn_interlock) +#define TMPFS_NODE_MTX(node) (&(node)->tn_interlock) #define TMPFS_VNODE_ALLOCATING 1 #define TMPFS_VNODE_WANT 2 |