summaryrefslogtreecommitdiffstats
path: root/sys/fs/nullfs/null.h
diff options
context:
space:
mode:
authorjeff <jeff@FreeBSD.org>2005-03-15 13:49:33 +0000
committerjeff <jeff@FreeBSD.org>2005-03-15 13:49:33 +0000
commit57fd917aad75576de4048e68dcfbd17ea004045b (patch)
treed2348df5b3f7132a7a900e259147ecf529e73d1c /sys/fs/nullfs/null.h
parent2115694bbc6bb40d45f659eef89bac4b98ad6585 (diff)
downloadFreeBSD-src-57fd917aad75576de4048e68dcfbd17ea004045b.zip
FreeBSD-src-57fd917aad75576de4048e68dcfbd17ea004045b.tar.gz
- Assume that all lower filesystems now support proper locking. Assert
that they set v->v_vnlock. This is true for all filesystems in the tree. - Remove all uses of LK_THISLAYER. If the lower layer is locked, the null layer is locked. We only use vget() to get a reference now. null essentially does no locking. This fixes LOOKUP_SHARED with nullfs. - Remove the special LK_DRAIN considerations, I do not believe this is needed now as LK_DRAIN doesn't destroy the lower vnode's lock, and it's hardly used anymore. - Add one well commented hack to prevent the lowervp from going away while we're in it's VOP_LOCK routine. This can only happen if we're forcibly unmounted while some callers are waiting in the lock. In this case the lowervp could be recycled after we drop our last ref in null_reclaim(). Prevent this with a vhold().
Diffstat (limited to 'sys/fs/nullfs/null.h')
-rw-r--r--sys/fs/nullfs/null.h2
1 files changed, 0 insertions, 2 deletions
diff --git a/sys/fs/nullfs/null.h b/sys/fs/nullfs/null.h
index b6cc7e3..c8fc5de 100644
--- a/sys/fs/nullfs/null.h
+++ b/sys/fs/nullfs/null.h
@@ -47,8 +47,6 @@ struct null_node {
LIST_ENTRY(null_node) null_hash; /* Hash list */
struct vnode *null_lowervp; /* VREFed once */
struct vnode *null_vnode; /* Back pointer */
- int null_pending_locks;
- int null_drain_wakeup;
};
#define MOUNTTONULLMOUNT(mp) ((struct null_mount *)((mp)->mnt_data))
OpenPOWER on IntegriCloud