git: ab5ef5fb6355 - main - ufs_rename(): do not treat ERELOOKUP specially

From: Konstantin Belousov <kib_at_FreeBSD.org>
Date: Wed, 06 Jul 2022 12:35:19 UTC
The branch main has been updated by kib:

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

commit ab5ef5fb6355489e6a960b4d107e6767e2336ea2
Author:     Konstantin Belousov <kib@FreeBSD.org>
AuthorDate: 2022-07-02 13:15:57 +0000
Commit:     Konstantin Belousov <kib@FreeBSD.org>
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);