The branch main has been updated by mjg:

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

commit ebf37c3fed04f10d452b426cf83e741b6365a2ec
Author:     Mateusz Guzik <[email protected]>
AuthorDate: 2023-07-05 22:56:04 +0000
Commit:     Mateusz Guzik <[email protected]>
CommitDate: 2023-07-07 01:14:55 +0000

    vfs: drop LK_RETRY when crossing mount points in vfs_lookup
    
    vn_lock already returns the expected error.
    
    Reviewed by:    kib
    Differential Revision:  https://reviews.freebsd.org/D40883
---
 sys/kern/vfs_lookup.c | 8 +++-----
 1 file changed, 3 insertions(+), 5 deletions(-)

diff --git a/sys/kern/vfs_lookup.c b/sys/kern/vfs_lookup.c
index 588ef88d24df..5a5560a4c26f 100644
--- a/sys/kern/vfs_lookup.c
+++ b/sys/kern/vfs_lookup.c
@@ -1314,11 +1314,9 @@ good:
                                crosslkflags &= ~LK_SHARED;
                                crosslkflags |= LK_EXCLUSIVE | LK_CANRECURSE;
                        } else if ((crosslkflags & LK_EXCLUSIVE) != 0) {
-                               vn_lock(dp, LK_UPGRADE | LK_RETRY);
-                               if (VN_IS_DOOMED(dp)) {
-                                       error = ENOENT;
-                                       goto bad2;
-                               }
+                               error = vn_lock(dp, LK_UPGRADE);
+                               if (error != 0)
+                                       goto bad_unlocked;
                                if (dp->v_mountedhere != mp) {
                                        continue;
                                }

Reply via email to