From nobody Sun Mar 10 01:46:07 2024 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 4TsjRh03ZFz5Cw2P; Sun, 10 Mar 2024 01:46:08 +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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4TsjRg6d0xz4x1F; Sun, 10 Mar 2024 01:46:07 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1710035167; 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=C6HnYASAc/dWWYFpDdeDl67+DzikMST1vnD84/Kb9HQ=; b=BKiD0G53y0DhyYiyS0pwcBGiYyKc04KOFnycqpAkoQarbq/R4ZoKaJZxCznv0wzSnd5oG2 kW2or7gnaEJXelCEclfTGatFWXZfXap0mSC4EK4r6KnHOC9dmh2/G8W/fyqdhy0yLq37Op Qn1x6vQxgcVqtcCHHV9r0agHInoW62BSSDiheuWmcptViYZtUHPn6aV6EFzrSRBYETcF1D GA5KoxMNE204Sn7eBpg4n/dj9Jjhp443ZZvonKbTRSd5hlbWKDHscb6vXZJZITK7vM2Mtb rgpccAxcCg8x1qi0mDJAmjFpvS+D9BETUkJt4vO7VOcqZIUxuSfaTmlJr44+5A== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1710035167; a=rsa-sha256; cv=none; b=MoM6zi18tDgCqJh3rAwBGtxWVCHy7EY11ZCL0rnfHb/S7qDzcpFdrJgnjWnTyKDRGp5Ig6 9Cf4noIaRFDUXMQfFn6sKiegY7xMAeNFiN6kcLWIZsyM4yxO9R0K5Nw85nlzyHOUQG+jqE hy3/mU9J3AM1nSzArYz2zbAwhzRjYmNH5fv8CnwZNpPpF2kHUZn5D3WjKXdt0ECFdNDvg8 eug10JJH8+JPBr7VCnpaDF0TvJnhyHDcAw2h76HTFlhSJykYC4NJXisBI9A6++J6L9fo3e kaDYQpCXGawkvey6IJmldEnL5/W8q55GZk5pq0CBPtWe2M70F35VxNsk68t41Q== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1710035167; 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=C6HnYASAc/dWWYFpDdeDl67+DzikMST1vnD84/Kb9HQ=; b=m7UnQ5l6vMKc5Sq2zHg0EGB233IG7YXYdNCDXOiPMJlsrRooYryB9VQ4I6k/1sVFnS18Ct QQoa3i4eBxkDMnl+ICKsvKdzuu7K9KcfTQ4G32dhRlj322n9ovjrfrzZmmX2Y8pFc6dZSd GQiIMrJiwopr8MwZw8MPm1Xl07ULBQTpDDzYnJqFvD3XCva3Z6//iYZ4UbSEIPBbebBdYH PWTMkIpcxpFOFeJI5kGKqiXItdKmjEaC/vQQTl3NGzjPPBbhyqSAP4qz05xPxZrZDvKJ0p 5FFTy49hlOwpWvd0NArTZaWS5NXaLVphj7/hCXjgvXqVo6K4/kd0cnrKIr9i7w== 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 4TsjRg6CflzQnY; Sun, 10 Mar 2024 01:46:07 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 42A1k7dB000589; Sun, 10 Mar 2024 01:46:07 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 42A1k74F000586; Sun, 10 Mar 2024 01:46:07 GMT (envelope-from git) Date: Sun, 10 Mar 2024 01:46:07 GMT Message-Id: <202403100146.42A1k74F000586@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: "Jason A. Harmening" Subject: git: fa26f46dc29f - main - vn_lock_pair(): allow lkflags1/lkflags2 to be 0 if vp1/vp2 is NULL 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: Sender: owner-dev-commits-src-all@freebsd.org X-BeenThere: dev-commits-src-all@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: jah X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: fa26f46dc29f5ee1ac8e7b10fc12aa1f93cce702 Auto-Submitted: auto-generated The branch main has been updated by jah: URL: https://cgit.FreeBSD.org/src/commit/?id=fa26f46dc29f5ee1ac8e7b10fc12aa1f93cce702 commit fa26f46dc29f5ee1ac8e7b10fc12aa1f93cce702 Author: Jason A. Harmening AuthorDate: 2024-02-23 17:31:08 +0000 Commit: Jason A. Harmening CommitDate: 2024-03-10 01:41:45 +0000 vn_lock_pair(): allow lkflags1/lkflags2 to be 0 if vp1/vp2 is NULL It's a bit strange to require the caller to pass contrived lock flags if the corresponding vnode is NULL, simply to appease the assertion that exactly one of LK_SHARED or LK_EXCLUSIVE must be set. On the other hand, we still want to catch cases in which completely bogus or corrupt flags are passed even if the corresponding vnode is NULL. Therefore, specifically allow empty flags for lkflags1/lkflags2 iff the respective vp1/vp2 param is NULL. Reviewed by: kib, olce MFC after: 2 weeks Differential Revision: https://reviews.freebsd.org/D44046 --- sys/kern/vfs_vnops.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/sys/kern/vfs_vnops.c b/sys/kern/vfs_vnops.c index 77e4dd21f276..fd78b692b088 100644 --- a/sys/kern/vfs_vnops.c +++ b/sys/kern/vfs_vnops.c @@ -4101,9 +4101,11 @@ vn_lock_pair(struct vnode *vp1, bool vp1_locked, int lkflags1, { int error, locked1; - MPASS(((lkflags1 & LK_SHARED) != 0) ^ ((lkflags1 & LK_EXCLUSIVE) != 0)); + MPASS((((lkflags1 & LK_SHARED) != 0) ^ ((lkflags1 & LK_EXCLUSIVE) != 0)) || + (vp1 == NULL && lkflags1 == 0)); MPASS((lkflags1 & ~(LK_SHARED | LK_EXCLUSIVE | LK_NODDLKTREAT)) == 0); - MPASS(((lkflags2 & LK_SHARED) != 0) ^ ((lkflags2 & LK_EXCLUSIVE) != 0)); + MPASS((((lkflags2 & LK_SHARED) != 0) ^ ((lkflags2 & LK_EXCLUSIVE) != 0)) || + (vp2 == NULL && lkflags2 == 0)); MPASS((lkflags2 & ~(LK_SHARED | LK_EXCLUSIVE | LK_NODDLKTREAT)) == 0); if (vp1 == NULL && vp2 == NULL)