struct mount uppers: correct locking annotations

It is all locked by the uppers' interlock.

Noted by:	Alexander Lochmann <alexander.lochmann@tu-dortmund.de>
Sponsored by:	The FreeBSD Foundation
MFC after:	3 days
This commit is contained in:
Konstantin Belousov 2021-04-09 01:03:06 +03:00
parent 05a39c2c1c
commit 5af1131de7

View File

@ -198,6 +198,7 @@ _Static_assert(sizeof(struct mount_pcpu) == 16,
* l - mnt_listmtx
* m - mountlist_mtx
* i - interlock
* i* - interlock of uppers' list head
* v - vnode freelist mutex
*
* Unmarked fields are considered stable as long as a ref is held.
@ -242,8 +243,8 @@ struct mount {
struct vnodelst mnt_lazyvnodelist; /* (l) list of lazy vnodes */
int mnt_lazyvnodelistsize; /* (l) # of lazy vnodes */
struct lock mnt_explock; /* vfs_export walkers lock */
TAILQ_ENTRY(mount) mnt_upper_link; /* (m) we in the all uppers */
TAILQ_HEAD(, mount) mnt_uppers; /* (m) upper mounts over us*/
TAILQ_ENTRY(mount) mnt_upper_link; /* (i*) we in the all uppers */
TAILQ_HEAD(, mount) mnt_uppers; /* (i) upper mounts over us */
};
#endif /* _WANT_MOUNT || _KERNEL */