From ab5ef5fb6355489e6a960b4d107e6767e2336ea2 Mon Sep 17 00:00:00 2001 From: Konstantin Belousov Date: Sat, 2 Jul 2022 16:15:57 +0300 Subject: [PATCH] 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);