Linux-NFS Archive on lore.kernel.org
 help / color / Atom feed
* [PATCH v3 0/9] Various NFSv4 state error handling fixes
@ 2019-09-20 11:23 Trond Myklebust
  2019-09-20 11:23 ` [PATCH v3 1/9] pNFS: Ensure we do clear the return-on-close layout stateid on fatal errors Trond Myklebust
  2019-09-20 21:01 ` [PATCH v3 0/9] Various NFSv4 state error handling fixes Olga Kornievskaia
  0 siblings, 2 replies; 12+ messages in thread
From: Trond Myklebust @ 2019-09-20 11:23 UTC (permalink / raw)
  To: Anna Schumaker; +Cc: Olga Kornievskaia, linux-nfs

Various NFSv4 fixes to ensure we handle state errors correctly. In
particular, we need to ensure that for COMPOUNDs like CLOSE and
DELEGRETURN, that may have an embedded LAYOUTRETURN, we handle the
layout state errors so that a retry of either the LAYOUTRETURN, or
the later CLOSE/DELEGRETURN does not corrupt the LAYOUTRETURN
reply.

Also ensure that if we get a NFS4ERR_OLD_STATEID, then we do our
best to still try to destroy the state on the server, in order to
avoid causing state leakage.

v2: Fix bug reports from Olga
 - Try to avoid sending old stateids on CLOSE/OPEN_DOWNGRADE when
   doing fully serialised NFSv4.0.
 - Ensure LOCKU initialises the stateid correctly.
v3: Fix locking
 - Ensure the patch "Handle NFS4ERR_OLD_STATEID in LOCKU" locks the
   stateid when copying it in nfs4_alloc_unlockdata().

Trond Myklebust (9):
  pNFS: Ensure we do clear the return-on-close layout stateid on fatal
    errors
  NFSv4: Clean up pNFS return-on-close error handling
  NFSv4: Handle NFS4ERR_DELAY correctly in return-on-close
  NFSv4: Handle RPC level errors in LAYOUTRETURN
  NFSv4: Add a helper to increment stateid seqids
  pNFS: Handle NFS4ERR_OLD_STATEID on layoutreturn by bumping the state
    seqid
  NFSv4: Fix OPEN_DOWNGRADE error handling
  NFSv4: Handle NFS4ERR_OLD_STATEID in CLOSE/OPEN_DOWNGRADE
  NFSv4: Handle NFS4ERR_OLD_STATEID in LOCKU

 fs/nfs/nfs4_fs.h   |  11 ++-
 fs/nfs/nfs4proc.c  | 209 +++++++++++++++++++++++++++++++--------------
 fs/nfs/nfs4state.c |  16 ----
 fs/nfs/pnfs.c      |  71 +++++++++++++--
 fs/nfs/pnfs.h      |  17 +++-
 5 files changed, 233 insertions(+), 91 deletions(-)

-- 
2.21.0


^ permalink raw reply	[flat|nested] 12+ messages in thread

end of thread, back to index

Thread overview: 12+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-09-20 11:23 [PATCH v3 0/9] Various NFSv4 state error handling fixes Trond Myklebust
2019-09-20 11:23 ` [PATCH v3 1/9] pNFS: Ensure we do clear the return-on-close layout stateid on fatal errors Trond Myklebust
2019-09-20 11:23   ` [PATCH v3 2/9] NFSv4: Clean up pNFS return-on-close error handling Trond Myklebust
2019-09-20 11:23     ` [PATCH v3 3/9] NFSv4: Handle NFS4ERR_DELAY correctly in return-on-close Trond Myklebust
2019-09-20 11:23       ` [PATCH v3 4/9] NFSv4: Handle RPC level errors in LAYOUTRETURN Trond Myklebust
2019-09-20 11:23         ` [PATCH v3 5/9] NFSv4: Add a helper to increment stateid seqids Trond Myklebust
2019-09-20 11:23           ` [PATCH v3 6/9] pNFS: Handle NFS4ERR_OLD_STATEID on layoutreturn by bumping the state seqid Trond Myklebust
2019-09-20 11:23             ` [PATCH v3 7/9] NFSv4: Fix OPEN_DOWNGRADE error handling Trond Myklebust
2019-09-20 11:23               ` [PATCH v3 8/9] NFSv4: Handle NFS4ERR_OLD_STATEID in CLOSE/OPEN_DOWNGRADE Trond Myklebust
2019-09-20 11:23                 ` [PATCH v3 9/9] NFSv4: Handle NFS4ERR_OLD_STATEID in LOCKU Trond Myklebust
2019-09-20 21:01 ` [PATCH v3 0/9] Various NFSv4 state error handling fixes Olga Kornievskaia
2019-09-21  4:11   ` Trond Myklebust

Linux-NFS Archive on lore.kernel.org

Archives are clonable:
	git clone --mirror https://lore.kernel.org/linux-nfs/0 linux-nfs/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 linux-nfs linux-nfs/ https://lore.kernel.org/linux-nfs \
		linux-nfs@vger.kernel.org
	public-inbox-index linux-nfs

Example config snippet for mirrors

Newsgroup available over NNTP:
	nntp://nntp.lore.kernel.org/org.kernel.vger.linux-nfs


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git