diff options
author | Mateusz Guzik <mjg@FreeBSD.org> | 2022-10-24 15:34:57 +0000 |
---|---|---|
committer | Mateusz Guzik <mjg@FreeBSD.org> | 2022-10-24 15:37:43 +0000 |
commit | d653aaec7a311a7d1455e9721904b2a341b32a65 (patch) | |
tree | 42690a2c60640ed5ce95410e3766c2f62d772cf3 | |
parent | 9cf5db63698b3c73edd632412bf68735d3c20d37 (diff) | |
download | src-d653aaec7a311a7d1455e9721904b2a341b32a65.tar.gz src-d653aaec7a311a7d1455e9721904b2a341b32a65.zip |
cache: add cache_assert_no_entries
-rw-r--r-- | sys/kern/vfs_cache.c | 9 | ||||
-rw-r--r-- | sys/sys/vnode.h | 6 |
2 files changed, 15 insertions, 0 deletions
diff --git a/sys/kern/vfs_cache.c b/sys/kern/vfs_cache.c index 5f72506549bd..e58d3f338085 100644 --- a/sys/kern/vfs_cache.c +++ b/sys/kern/vfs_cache.c @@ -2998,6 +2998,15 @@ cache_validate(struct vnode *dvp, struct vnode *vp, struct componentname *cnp) } mtx_unlock(blp); } + +void +cache_assert_no_entries(struct vnode *vp) +{ + + VNPASS(TAILQ_EMPTY(&vp->v_cache_dst), vp); + VNPASS(LIST_EMPTY(&vp->v_cache_src), vp); + VNPASS(vp->v_cache_dd == NULL, vp); +} #endif /* diff --git a/sys/sys/vnode.h b/sys/sys/vnode.h index 63b3c23bd072..167f1904b70d 100644 --- a/sys/sys/vnode.h +++ b/sys/sys/vnode.h @@ -676,11 +676,17 @@ void cache_vop_rmdir(struct vnode *dvp, struct vnode *vp); #ifdef INVARIANTS void cache_validate(struct vnode *dvp, struct vnode *vp, struct componentname *cnp); +void cache_assert_no_entries(struct vnode *vp); #else static inline void cache_validate(struct vnode *dvp, struct vnode *vp, struct componentname *cnp) { } + +static inline void +cache_assert_no_entries(struct vnode *vp) +{ +} #endif void cache_fast_lookup_enabled_recalc(void); int change_dir(struct vnode *vp, struct thread *td); |