git: 8d97282a3942 - main - fdesc_lookup(): no need to vhold the dvp vnode
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Fri, 24 Mar 2023 17:47:42 UTC
The branch main has been updated by kib:
URL: https://cgit.FreeBSD.org/src/commit/?id=8d97282a394278d29883e7afa98ed6294efab35e
commit 8d97282a394278d29883e7afa98ed6294efab35e
Author: Konstantin Belousov <kib@FreeBSD.org>
AuthorDate: 2023-03-22 13:36:00 +0000
Commit: Konstantin Belousov <kib@FreeBSD.org>
CommitDate: 2023-03-24 17:47:07 +0000
fdesc_lookup(): no need to vhold the dvp vnode
It is already referenced by the VOP_LOOKUP() caller, otherwise vdrop()
after vn_lock() is invalid anyway.
Reviewed by: markj
Tested by: pho
Sponsored by: The FreeBSD Foundation
MFC after: 1 week
Differential revision: https://reviews.freebsd.org/D39207
---
sys/fs/fdescfs/fdesc_vnops.c | 2 --
1 file changed, 2 deletions(-)
diff --git a/sys/fs/fdescfs/fdesc_vnops.c b/sys/fs/fdescfs/fdesc_vnops.c
index afefaff8acf4..beef9295f11b 100644
--- a/sys/fs/fdescfs/fdesc_vnops.c
+++ b/sys/fs/fdescfs/fdesc_vnops.c
@@ -363,13 +363,11 @@ fdesc_lookup(struct vop_lookup_args *ap)
* In case we're holding the last reference to the file, the dvp
* will be re-acquired.
*/
- vhold(dvp);
VOP_UNLOCK(dvp);
fdrop(fp, td);
fdropped = true;
vn_lock(dvp, LK_RETRY | LK_EXCLUSIVE);
- vdrop(dvp);
fvp = dvp;
if (error == 0 && VN_IS_DOOMED(dvp))
error = ENOENT;