From: Sasha Levin <sashal@kernel.org>
To: linux-kernel@vger.kernel.org, stable@vger.kernel.org
Cc: Trond Myklebust <trond.myklebust@hammerspace.com>,
Sasha Levin <sashal@kernel.org>,
linux-nfs@vger.kernel.org
Subject: [PATCH AUTOSEL 4.19 04/10] pNFS/NFSv4: Try to return invalid layout in pnfs_layout_process()
Date: Tue, 2 Feb 2021 10:07:08 -0500 [thread overview]
Message-ID: <20210202150715.1864614-4-sashal@kernel.org> (raw)
In-Reply-To: <20210202150715.1864614-1-sashal@kernel.org>
From: Trond Myklebust <trond.myklebust@hammerspace.com>
[ Upstream commit 08bd8dbe88825760e953759d7ec212903a026c75 ]
If the server returns a new stateid that does not match the one in our
cache, then try to return the one we hold instead of just invalidating
it on the client side. This ensures that both client and server will
agree that the stateid is invalid.
Signed-off-by: Trond Myklebust <trond.myklebust@hammerspace.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
fs/nfs/pnfs.c | 8 +++++++-
1 file changed, 7 insertions(+), 1 deletion(-)
diff --git a/fs/nfs/pnfs.c b/fs/nfs/pnfs.c
index 46ca5592b8b0d..2c43583e2aa1c 100644
--- a/fs/nfs/pnfs.c
+++ b/fs/nfs/pnfs.c
@@ -2301,7 +2301,13 @@ pnfs_layout_process(struct nfs4_layoutget *lgp)
* We got an entirely new state ID. Mark all segments for the
* inode invalid, and retry the layoutget
*/
- pnfs_mark_layout_stateid_invalid(lo, &free_me);
+ struct pnfs_layout_range range = {
+ .iomode = IOMODE_ANY,
+ .length = NFS4_MAX_UINT64,
+ };
+ pnfs_set_plh_return_info(lo, IOMODE_ANY, 0);
+ pnfs_mark_matching_lsegs_return(lo, &lo->plh_return_segs,
+ &range, 0);
goto out_forget;
}
--
2.27.0
next prev parent reply other threads:[~2021-02-02 15:17 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-02-02 15:07 [PATCH AUTOSEL 4.19 01/10] af_key: relax availability checks for skb size calculation Sasha Levin
2021-02-02 15:07 ` [PATCH AUTOSEL 4.19 02/10] regulator: core: avoid regulator_resolve_supply() race condition Sasha Levin
2021-02-02 15:07 ` [PATCH AUTOSEL 4.19 03/10] chtls: Fix potential resource leak Sasha Levin
2021-02-02 15:07 ` Sasha Levin [this message]
2021-02-02 15:07 ` [PATCH AUTOSEL 4.19 05/10] iwlwifi: mvm: take mutex for calling iwl_mvm_get_sync_time() Sasha Levin
2021-02-02 15:07 ` [PATCH AUTOSEL 4.19 06/10] iwlwifi: pcie: add a NULL check in iwl_pcie_txq_unmap Sasha Levin
2021-02-02 15:07 ` [PATCH AUTOSEL 4.19 07/10] iwlwifi: pcie: fix context info memory leak Sasha Levin
2021-02-02 15:07 ` [PATCH AUTOSEL 4.19 08/10] iwlwifi: mvm: guard against device removal in reprobe Sasha Levin
2021-02-02 15:07 ` [PATCH AUTOSEL 4.19 09/10] SUNRPC: Move simple_get_bytes and simple_get_netobj into private header Sasha Levin
2021-02-02 15:07 ` [PATCH AUTOSEL 4.19 10/10] SUNRPC: Handle 0 length opaque XDR object data properly Sasha Levin
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20210202150715.1864614-4-sashal@kernel.org \
--to=sashal@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-nfs@vger.kernel.org \
--cc=stable@vger.kernel.org \
--cc=trond.myklebust@hammerspace.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®