The branch main has been updated by kib:

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

commit ab5ef5fb6355489e6a960b4d107e6767e2336ea2
Author:     Konstantin Belousov <[email protected]>
AuthorDate: 2022-07-02 13:15:57 +0000
Commit:     Konstantin Belousov <[email protected]>
CommitDate: 2022-07-06 12:34:28 +0000

    ufs_rename(): do not treat ERELOOKUP specially
    
    Delegate handling of it to the top VFS layer, as it is done everywhere.
    
    Tested by:      pho
    Sponsored by:   The FreeBSD Foundation
    MFC after:      1 week
---
 sys/ufs/ufs/ufs_vnops.c | 22 +---------------------
 1 file changed, 1 insertion(+), 21 deletions(-)

diff --git a/sys/ufs/ufs/ufs_vnops.c b/sys/ufs/ufs/ufs_vnops.c
index 7e54cf3916c8..976bc31841dd 100644
--- a/sys/ufs/ufs/ufs_vnops.c
+++ b/sys/ufs/ufs/ufs_vnops.c
@@ -1412,18 +1412,8 @@ relock:
             (tvp != NULL && (seqc_in_modify(tvp_s) ||
             !vn_seqc_consistent(tvp, tvp_s))))) {
                error = softdep_prerename(fdvp, fvp, tdvp, tvp);
-               if (error != 0) {
-                       if (error == ERELOOKUP) {
-                               fdvp_s = vn_seqc_read_any(fdvp);
-                               fvp_s = vn_seqc_read_any(fvp);
-                               tdvp_s = vn_seqc_read_any(tdvp);
-                               if (tvp != NULL)
-                                       tvp_s = vn_seqc_read_any(tvp);
-                               atomic_add_int(&rename_restarts, 1);
-                               goto relock;
-                       }
+               if (error != 0)
                        goto releout;
-               }
        }
 
        fdp = VTOI(fdvp);
@@ -1467,11 +1457,6 @@ relock:
                        vref(tvp);
                VOP_VPUT_PAIR(tdvp, &tvp, true);
                error = ufs_sync_nlink1(mp);
-               if (error == ERELOOKUP) {
-                       error = 0;
-                       atomic_add_int(&rename_restarts, 1);
-                       goto relock;
-               }
                vrele(fdvp);
                vrele(fvp);
                vrele(tdvp);
@@ -1620,11 +1605,6 @@ relock:
                                        vref(tvp);
                                VOP_VPUT_PAIR(tdvp, &tvp, true);
                                error = ufs_sync_nlink1(mp);
-                               if (error == ERELOOKUP) {
-                                       error = 0;
-                                       atomic_add_int(&rename_restarts, 1);
-                                       goto relock;
-                               }
                                vrele(fdvp);
                                vrele(fvp);
                                vrele(tdvp);

Reply via email to