From nobody Sat Nov 15 02:34:59 2025 X-Original-To: dev-commits-src-main@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 4d7dQC5YHTz6GsmT; Sat, 15 Nov 2025 02:34:59 +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 "R12" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4d7dQC50mlz40tg; Sat, 15 Nov 2025 02:34:59 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1763174099; 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=iu+zpyHuOPNl+DbIprBaWjjFdciwLiMI1hDrCvq8/f8=; b=SP8j1T/znFlFlC23zPo90LnFcJHVKBo6e6cETBh6wiPi9Hq3xZnJJdPPVv1Sj6Aj/+OX2A IoR3LOov6eVTdXTGXUAV3VjkWY6H23Ij2hxXf/gOn5DXCGbNsZxpZQkHPzIYagd2dHqhCe HiJVKrJ9mbrc7mfSEIOXhQ0gx2aQGIGg/0qORrhBvCIY6ZxqSlaH46VV6sN+CKgWI17EPL sQS3zdZ47AWz+7mOaSr8STEzlMAkbfIl5Srk1zG478KX6nwhYpm49Xf5XHpH51DSaiOsZ6 lY1twU10n3W1qJIWgBZ3KkCsm76ODwozvD/kVKTLtjwCCbLb+uofAmVZI462ow== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1763174099; 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=iu+zpyHuOPNl+DbIprBaWjjFdciwLiMI1hDrCvq8/f8=; b=Uw+ztnTi+SuQyzRGvDE1cSfbnNkBIeOkkDw3ZVHNZTwa9ee2d/mmb/sbUzdcIJqeNPCg/K w64BZGM0iBaC3/Ku7/ulHFmFUuf3otqn9113D99dqpO0rEFaZ4W4vNdqwdt7VFkQv1E6ep Sp+x13ukUZRwAuKK0/uidxLWDEHQV7S/LALBDlGyoKRA6wczUnsF362b7q35xY17e+QHdk 6MDcevHZVFHIEkOkVjBxAPOhRW9LVm32pIfn+J25nqJvFvFEYx7mQcT0o8D7ig4DOWzgZy tAgnr9JWe6/s5x/SknkJe0Ejxq/oZmO+8Sb7wnZc1WnWcKIjsAfEqxmDHRiY5g== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1763174099; a=rsa-sha256; cv=none; b=SGffxfri55UFgPMt40O5kATGh0BzPkoCUEPhVNFcI3jnKKT/bVteKtdZFXKAazcDEUhznA 3X4ro6Lf1iW3htWlyjgkbl+zb0N4WaYl6U2JoUOdHkJchOMSLkz2nDhTMpAD+x/awfF+km b3VkNZH7ES9MRgBpuHZjvTDWsotvAOubsPpEn9Y7xYTc82MG899sngoUDgMkDG0bEt534p SzfMYR01k7Cf+yEjo+2oUjZMmQ/uurMAFdOJP17Nffc+nAoiFLd95OF/HZWyiiHzmWJlB0 FdzpM+u0KWxd1GT5Ld876p0+oGNAwf8jawJRRt1OYRVcztl68U/fhamCkxapQw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none 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 4d7dQC4F36zZYL; Sat, 15 Nov 2025 02:34:59 +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 5AF2YxN0009161; Sat, 15 Nov 2025 02:34:59 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 5AF2Yx0o009159; Sat, 15 Nov 2025 02:34:59 GMT (envelope-from git) Date: Sat, 15 Nov 2025 02:34:59 GMT Message-Id: <202511150234.5AF2Yx0o009159@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Mark Johnston Subject: git: 51931e1f0f33 - main - Revert "vnode: Rework vput() to avoid holding the vnode lock after decrementing" List-Id: Commit messages for the main branch of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-main@freebsd.org Sender: owner-dev-commits-src-main@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: markj X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 51931e1f0f33986296ff2860f25374cba47b860a Auto-Submitted: auto-generated The branch main has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=51931e1f0f33986296ff2860f25374cba47b860a commit 51931e1f0f33986296ff2860f25374cba47b860a Author: Mark Johnston AuthorDate: 2025-11-15 02:30:34 +0000 Commit: Mark Johnston CommitDate: 2025-11-15 02:30:34 +0000 Revert "vnode: Rework vput() to avoid holding the vnode lock after decrementing" The change can introduce a deadlock if we release the vnode lock in order to release a reference, and then end up releasing the final reference after all, requiring a relock of the vnode. This relock may violate the usual parent->child vnode lock order. This reverts commit 99cb3dca4773fe4a16c500f9cb55fcd62cd8d7f3. Reported by: jhb --- sys/kern/vfs_subr.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/sys/kern/vfs_subr.c b/sys/kern/vfs_subr.c index 9cf983f6f89d..58975f7ac932 100644 --- a/sys/kern/vfs_subr.c +++ b/sys/kern/vfs_subr.c @@ -3713,12 +3713,11 @@ vput(struct vnode *vp) ASSERT_VOP_LOCKED(vp, __func__); ASSERT_VI_UNLOCKED(vp, __func__); - if (refcount_release_if_last(&vp->v_usecount)) { - vput_final(vp, VPUT); + if (!refcount_release(&vp->v_usecount)) { + VOP_UNLOCK(vp); return; } - VOP_UNLOCK(vp); - vrele(vp); + vput_final(vp, VPUT); } /*