git: f19063ab029b - main - vfs_hash_rehash(): require the vnode to be exclusively locked

Konstantin Belousov kib at FreeBSD.org
Fri Aug 27 15:40:01 UTC 2021


The branch main has been updated by kib:

URL: https://cgit.FreeBSD.org/src/commit/?id=f19063ab029b067e1763780aebca4bd620453110

commit f19063ab029b067e1763780aebca4bd620453110
Author:     Konstantin Belousov <kib at FreeBSD.org>
AuthorDate: 2021-08-18 11:14:42 +0000
Commit:     Konstantin Belousov <kib at FreeBSD.org>
CommitDate: 2021-08-27 15:39:45 +0000

    vfs_hash_rehash(): require the vnode to be exclusively locked
    
    Rehash updates v_hash.  Also, rehash moves the vnode to different hash
    bucket, which should be noticed in vfs_hash_get() after sleeping for
    the vnode lock.
    
    Reviewed by:    mckusick, rmacklem
    Tested by:      pho
    Sponsored by:   The FreeBSD Foundation
    MFC after:      1 week
    Differential revision:  https://reviews.freebsd.org/D31464
---
 sys/kern/vfs_hash.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/sys/kern/vfs_hash.c b/sys/kern/vfs_hash.c
index c5d67c8b2b33..2e446e69a314 100644
--- a/sys/kern/vfs_hash.c
+++ b/sys/kern/vfs_hash.c
@@ -196,6 +196,7 @@ vfs_hash_insert(struct vnode *vp, u_int hash, int flags, struct thread *td,
 void
 vfs_hash_rehash(struct vnode *vp, u_int hash)
 {
+	ASSERT_VOP_ELOCKED(vp, "rehash requires excl lock");
 
 	rw_wlock(&vfs_hash_lock);
 	LIST_REMOVE(vp, v_hashlist);


More information about the dev-commits-src-main mailing list