Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 27 Aug 2021 15:40:00 GMT
From:      Konstantin Belousov <kib@FreeBSD.org>
To:        src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org
Subject:   git: f19063ab029b - main - vfs_hash_rehash(): require the vnode to be exclusively locked
Message-ID:  <202108271540.17RFe0RG089623@gitrepo.freebsd.org>

next in thread | raw e-mail | index | archive | help
The branch main has been updated by kib:

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

commit f19063ab029b067e1763780aebca4bd620453110
Author:     Konstantin Belousov <kib@FreeBSD.org>
AuthorDate: 2021-08-18 11:14:42 +0000
Commit:     Konstantin Belousov <kib@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);



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202108271540.17RFe0RG089623>