From nobody Sun Dec 26 02:26:04 2021 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 97D0E1903B94; Sun, 26 Dec 2021 02:26:04 +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 4JM4RJ28ZGz4TpD; Sun, 26 Dec 2021 02:26:04 +0000 (UTC) (envelope-from git@FreeBSD.org) 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 21ADC21DD3; Sun, 26 Dec 2021 02:26:04 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 1BQ2Q4IA066751; Sun, 26 Dec 2021 02:26:04 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 1BQ2Q4o1066750; Sun, 26 Dec 2021 02:26:04 GMT (envelope-from git) Date: Sun, 26 Dec 2021 02:26:04 GMT Message-Id: <202112260226.1BQ2Q4o1066750@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Rick Macklem Subject: git: 468043bbaeb9 - stable/13 - nfscl: Fix must_commit handling for mirrored pNFS mounts 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: rmacklem X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: 468043bbaeb910657536d7c9d146818c00eea193 Auto-Submitted: auto-generated ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1640485564; 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=z5t9h7TcMzhLHf//tYSoaEZ/9jSJB9FYHDWigNjPszw=; b=HFoH/5hAR9noz4RVu+/YZcFsobHjesy/c1YgrHV+qaimYvo0+v6NOlz5hIa6J1AADfDJWZ 2WibgflVR5eT+al6KcecLyD4Ttp2uOWDf3sB5zGBwdVDGoGM+ytKUn5GSXNCTiSaF8rEud MVVDNqscJZm4EnvMOejJ+V83MWyrMK9rWwakKdnAyavt4SD4NssloUCQskuxWRsaagIMkt 0Jg+um2OSRfFSWcohd7YFlNE7X+KwdfUahRlIdEr060Ap6MJELpALOpHQQ15o055KwHBiO jI9r5YMihZ8erUk66wSIfmW8G9rcZVOgFHG3hZFyd/OqZQ4yEEP9RnpLf/IGzA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1640485564; a=rsa-sha256; cv=none; b=wAP7ngSkASjSt6OGxWwxVBIlHgZu/cyRFCUJjEB5LOqRi75+zIx0fIw7CrfX92QtgN2kg8 /3D4ySjupFIqB2QFdaiYuPOcgLlSqqldza2K+9dHJYGmuAkMkFah7Pdk8WqkrdifW/GcT/ IK9PZt2ozkwYPWyMjsBAYIR3wsOLH1O5BNobjRxtCyil+aIfiOiPbC1wPFXjuJqARtBhnQ naMO+A7jOPaglNBSC7kblvlv7kw6l1Ik3kYjuGoZGSth8UQmiJ6s9m5mMzl5tGroH4VUeE eiPwuZgoPf1+lkXG3/IIsPKSFtOpOwdK1xwPWIEwrCOcNbF8YOqUW/UK4/yTRA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none X-ThisMailContainsUnwantedMimeParts: N The branch stable/13 has been updated by rmacklem: URL: https://cgit.FreeBSD.org/src/commit/?id=468043bbaeb910657536d7c9d146818c00eea193 commit 468043bbaeb910657536d7c9d146818c00eea193 Author: Rick Macklem AuthorDate: 2021-12-12 23:40:30 +0000 Commit: Rick Macklem CommitDate: 2021-12-26 02:22:20 +0000 nfscl: Fix must_commit handling for mirrored pNFS mounts For pNFS mounts to mirrored Flexible File layout pNFS servers, the "must_commit" component in the nfsclwritedsdorpc structure must be checked and the "must_commit" argument passed into nfscl_doiods() must be updated. Technically, only writes to the DS with a writeverf change must be redone, but since this occurrence will be rare, the must_commit argument to nfscl_doiosd() is set to 1, so all writes to all DSs will be redone. This bug would affect few, since use of mirrored pNFS servers is rare and "writeverf" rarely changes. Normally "writeverf" only changes when a NFS server reboots. (cherry picked from commit 24947b701d07634434b3208b0a0c970235f9d16e) --- sys/fs/nfsclient/nfs_clrpcops.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/sys/fs/nfsclient/nfs_clrpcops.c b/sys/fs/nfsclient/nfs_clrpcops.c index 2e1d3e86c1d2..72e3b74aa31e 100644 --- a/sys/fs/nfsclient/nfs_clrpcops.c +++ b/sys/fs/nfsclient/nfs_clrpcops.c @@ -6007,6 +6007,10 @@ nfscl_doiods(vnode_t vp, struct uio *uiop, int *iomode, int *must_commit, timo); if (error == 0 && tdrpc->err != 0) error = tdrpc->err; + if (rwaccess != NFSV4OPEN_ACCESSREAD && + docommit == 0 && *must_commit == 0 && + tdrpc->must_commit == 1) + *must_commit = 1; } free(drpc, M_TEMP); if (error == 0) { @@ -6755,8 +6759,8 @@ nfsio_writedsmir(vnode_t vp, int *iomode, int *must_commit, NFSCL_DEBUG(4, "nfsio_writedsmir: nfs_pnfsio=%d\n", ret); } if (ret != 0) - error = nfsrpc_writedsmir(vp, iomode, must_commit, stateidp, - dsp, off, len, fhp, m, vers, minorvers, cred, p); + error = nfsrpc_writedsmir(vp, iomode, &drpc->must_commit, + stateidp, dsp, off, len, fhp, m, vers, minorvers, cred, p); NFSCL_DEBUG(4, "nfsio_writedsmir: error=%d\n", error); return (error); }