From nobody Fri Jul 4 15:23:50 2025 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4bYcqC5F0Hz61LqX; Fri, 04 Jul 2025 15:23:51 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R10" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4bYcqB6zYFz3Khd; Fri, 04 Jul 2025 15:23:50 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1751642631; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=5/RA4lDLs8PhSZpmeL13233TYi3ehJ1HvVQOBCqRmzg=; b=o752DWnfcmFDJtj39E92DGqepRjjWAH9ILwnuS9sj2JX2wp/EQ/sK02Imn/qBeRmLobddO 8VTGHwI2e5pJpHTl02gg/b46geFSDvCUokNlvzYztH/Ea32Ez2O1vwDYerwEnD61ETyPTs TZKjS2Rs5kbwOmf0r6TX3WolzYyIlyYLc2tbqdkjMGLliKFbSRapHF9AOBTRetu/JaJVUk Fzk8DgLR5nnsDfN+XU9H5UQkrQLqWiwefHYu3z6g7Xw302xdmOjWHxr00ZBgG+AFd0B6JX uit3ScTx92DYHxtFh0o0CasUWFMiA28TrHh2UNHNvcC/c8j5QfdMmVgtEcsvuw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1751642631; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=5/RA4lDLs8PhSZpmeL13233TYi3ehJ1HvVQOBCqRmzg=; b=XSqeUjLowHSPxRPiLOobA6CWuHYTolJ9z6I9jdcWqLtIpmXy+qA7aHGzt/r27giVo33juH QzNZOAXuHkra2eSZ1UybOYF9nGhxpJ6anMKpp+zBiAFvGulU1oiDIA0d4HaJj8L62q5wXT 5xVdBMf14i+Y4WYAyw7ciUyC6/FuBAv/KCZ7sCnV/OdhsYnIlX05oFMxu0TD77TdphQNG8 ZeFqSpJOs6TfVVOy8LTSd56dXJYwK6YbiRSGIkst/H9PY/voT0GmVyOwdhHUct6GVZlipx qD8gwVZUG3L9hglpY0qdD/N+QN/rfYEqb1yU5YJEs/YUykflbbM0g40wjFQhNg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1751642631; a=rsa-sha256; cv=none; b=g43iZd2EhfSjWc/CHDl2sUZD7249FF9dBtNKAUCiCQY9hi0AVEFSSWCiIRD7TOpC1TeTEx dtIlcwuX9Kc36UcavE9rs/faxT1Gyd8+vwt0h5xgsbHnF+dZ/lJNk01+WahlAXZRKvQ7I7 xl4HveqgHtYUPml0lrsDAAYI1BZlqtsr04n/IEVeOEspWpk1pQvVmoIJSEtip7hqp4I3ny 7A4Ep4tQ4BPdjL10YXXcJJ6PCaSG4sBL3hEukENLbnvs5XGwKfGKhu2RM46AZnjnLUJx1d NQuibeVLFeCL8lOgsg/WeUOTGcjluQEw0wKQ8AJfy/XZdRrsRO1FiEjz6whERQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4bYcqB65mqzwVr; Fri, 04 Jul 2025 15:23:50 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 564FNood030042; Fri, 4 Jul 2025 15:23:50 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 564FNoYR030039; Fri, 4 Jul 2025 15:23:50 GMT (envelope-from git) Date: Fri, 4 Jul 2025 15:23:50 GMT Message-Id: <202507041523.564FNoYR030039@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Konstantin Belousov Subject: git: 2c17429915f2 - main - ufs: remove um_checkpath_lock List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-all@freebsd.org Sender: owner-dev-commits-src-all@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kib X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 2c17429915f2e527d456600a9a2f30c528d1a305 Auto-Submitted: auto-generated The branch main has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=2c17429915f2e527d456600a9a2f30c528d1a305 commit 2c17429915f2e527d456600a9a2f30c528d1a305 Author: Konstantin Belousov AuthorDate: 2025-06-02 07:05:33 +0000 Commit: Konstantin Belousov CommitDate: 2025-07-04 15:23:42 +0000 ufs: remove um_checkpath_lock It's guarantee is provided by the global rename lock now. Reviewed by: markj, olce Tested by: pho Sponsored by: The FreeBSD Foundation MFC after: 1 week Differential revision: https://reviews.freebsd.org/D50648 --- sys/ufs/ffs/ffs_vfsops.c | 3 --- sys/ufs/ufs/ufs_lookup.c | 1 - sys/ufs/ufs/ufs_vnops.c | 18 ++---------------- sys/ufs/ufs/ufsmount.h | 2 -- 4 files changed, 2 insertions(+), 22 deletions(-) diff --git a/sys/ufs/ffs/ffs_vfsops.c b/sys/ufs/ffs/ffs_vfsops.c index 891e490a7031..75f5fe716c31 100644 --- a/sys/ufs/ffs/ffs_vfsops.c +++ b/sys/ufs/ffs/ffs_vfsops.c @@ -1012,7 +1012,6 @@ ffs_mountfs(struct vnode *odevvp, struct mount *mp, struct thread *td) else ump->um_check_blkno = NULL; mtx_init(UFS_MTX(ump), "FFS", "FFS Lock", MTX_DEF); - sx_init(&ump->um_checkpath_lock, "uchpth"); fs->fs_ronly = ronly; fs->fs_active = NULL; mp->mnt_data = ump; @@ -1182,7 +1181,6 @@ out: } if (ump != NULL) { mtx_destroy(UFS_MTX(ump)); - sx_destroy(&ump->um_checkpath_lock); if (mp->mnt_gjprovider != NULL) { free(mp->mnt_gjprovider, M_UFSMNT); mp->mnt_gjprovider = NULL; @@ -1306,7 +1304,6 @@ ffs_unmount(struct mount *mp, int mntflags) vrele(ump->um_odevvp); dev_rel(ump->um_dev); mtx_destroy(UFS_MTX(ump)); - sx_destroy(&ump->um_checkpath_lock); if (mp->mnt_gjprovider != NULL) { free(mp->mnt_gjprovider, M_UFSMNT); mp->mnt_gjprovider = NULL; diff --git a/sys/ufs/ufs/ufs_lookup.c b/sys/ufs/ufs/ufs_lookup.c index eaf37c58756b..3f9c95e934fc 100644 --- a/sys/ufs/ufs/ufs_lookup.c +++ b/sys/ufs/ufs/ufs_lookup.c @@ -1412,7 +1412,6 @@ ufs_checkpath(ino_t source_ino, ino_t parent_ino, struct inode *target, vp = tvp = ITOV(target); mp = vp->v_mount; *wait_ino = 0; - sx_assert(&VFSTOUFS(mp)->um_checkpath_lock, SA_XLOCKED); if (target->i_number == source_ino) return (EEXIST); diff --git a/sys/ufs/ufs/ufs_vnops.c b/sys/ufs/ufs/ufs_vnops.c index 9aea01e70951..74cb094bdfe4 100644 --- a/sys/ufs/ufs/ufs_vnops.c +++ b/sys/ufs/ufs/ufs_vnops.c @@ -1273,9 +1273,9 @@ ufs_rename( struct mount *mp; ino_t ino; seqc_t fdvp_s, fvp_s, tdvp_s, tvp_s; - bool checkpath_locked, want_seqc_end; + bool want_seqc_end; - checkpath_locked = want_seqc_end = false; + want_seqc_end = false; endoff = 0; mp = tdvp->v_mount; @@ -1427,10 +1427,6 @@ relock: } vfs_ref(mp); MPASS(!want_seqc_end); - if (checkpath_locked) { - sx_xunlock(&VFSTOUFS(mp)->um_checkpath_lock); - checkpath_locked = false; - } VOP_UNLOCK(fdvp); VOP_UNLOCK(fvp); vref(tdvp); @@ -1484,8 +1480,6 @@ relock: if (error) goto unlockout; - sx_xlock(&VFSTOUFS(mp)->um_checkpath_lock); - checkpath_locked = true; error = ufs_checkpath(ino, fdp->i_number, tdp, tcnp->cn_cred, &ino); /* @@ -1493,8 +1487,6 @@ relock: * everything else and VGET before restarting. */ if (ino) { - sx_xunlock(&VFSTOUFS(mp)->um_checkpath_lock); - checkpath_locked = false; VOP_UNLOCK(fdvp); VOP_UNLOCK(fvp); VOP_UNLOCK(tdvp); @@ -1574,9 +1566,6 @@ relock: vn_seqc_write_end(fdvp); want_seqc_end = false; vfs_ref(mp); - MPASS(checkpath_locked); - sx_xunlock(&VFSTOUFS(mp)->um_checkpath_lock); - checkpath_locked = false; VOP_UNLOCK(fdvp); VOP_UNLOCK(fvp); vref(tdvp); @@ -1763,9 +1752,6 @@ unlockout: vn_seqc_write_end(fdvp); } - if (checkpath_locked) - sx_xunlock(&VFSTOUFS(mp)->um_checkpath_lock); - vput(fdvp); vput(fvp); diff --git a/sys/ufs/ufs/ufsmount.h b/sys/ufs/ufs/ufsmount.h index 5c7fa11dae6a..d33b01e4425e 100644 --- a/sys/ufs/ufs/ufsmount.h +++ b/sys/ufs/ufs/ufsmount.h @@ -97,8 +97,6 @@ struct ufsmount { uint64_t um_maxsymlinklen; /* (c) max size of short symlink */ struct mtx um_lock; /* (c) Protects ufsmount & fs */ - struct sx um_checkpath_lock; /* (c) Protects ufs_checkpath() - result */ struct mount_softdeps *um_softdep; /* (c) softdep mgmt structure */ struct vnode *um_quotas[MAXQUOTAS]; /* (q) pointer to quota files */ struct ucred *um_cred[MAXQUOTAS]; /* (q) quota file access cred */