All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/8] Make NFSv4 OPEN(CREATE) less brittle
@ 2022-05-13 19:39 Chuck Lever
  2022-05-13 19:39 ` [PATCH 1/8] NFSD: Clean up nfsd3_proc_create() Chuck Lever
                   ` (7 more replies)
  0 siblings, 8 replies; 12+ messages in thread
From: Chuck Lever @ 2022-05-13 19:39 UTC (permalink / raw)
  To: linux-nfs, linux-fsdevel, viro

fsdevel experts TL;DR: patch 8/8 is the only one that touches the
VFS. The other patches prepare NFSD for 8/8.

Attempt to address occasional reports of test failures caused by
NFSv4 OPEN(CREATE) failing internally only after the target file
object has already been created.

The basic approach is to re-organize the NFSv4 OPEN code path so
that common failure modes occur /before/ the call to vfs_create()
rather than afterwards. In addition, the local file is opened and
created atomically so that another client can't race and de-permit
that file just after it is created but before the server has opened
it.

This series was posted a few weeks ago as an RFC. Since then, Red
Hat QE has used a Lustre racer-based reproducer to confirm that
the issue is not reproducible. Therefore I'd like to include this
series in the NFSD 5.19 pull request.


---

Chuck Lever (8):
      NFSD: Clean up nfsd3_proc_create()
      NFSD: Avoid calling fh_drop_write() twice in do_nfsd_create()
      NFSD: Refactor nfsd_create_setattr()
      NFSD: Refactor NFSv3 CREATE
      NFSD: Refactor NFSv4 OPEN(CREATE)
      NFSD: Remove do_nfsd_create()
      NFSD: Clean up nfsd_open_verified()
      NFSD: Instantiate a struct file when creating a regular NFSv4 file


 fs/nfsd/filecache.c |  51 +++++++--
 fs/nfsd/filecache.h |   2 +
 fs/nfsd/nfs3proc.c  | 141 +++++++++++++++++++++----
 fs/nfsd/nfs4proc.c  | 197 +++++++++++++++++++++++++++++++++--
 fs/nfsd/nfs4state.c |  16 ++-
 fs/nfsd/vfs.c       | 245 ++++++++++----------------------------------
 fs/nfsd/vfs.h       |  14 +--
 fs/nfsd/xdr4.h      |   1 +
 fs/open.c           |  44 ++++++++
 include/linux/fs.h  |   2 +
 10 files changed, 471 insertions(+), 242 deletions(-)

--
Chuck Lever


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

end of thread, other threads:[~2022-05-14 16:34 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-05-13 19:39 [PATCH 0/8] Make NFSv4 OPEN(CREATE) less brittle Chuck Lever
2022-05-13 19:39 ` [PATCH 1/8] NFSD: Clean up nfsd3_proc_create() Chuck Lever
2022-05-13 19:39 ` [PATCH 2/8] NFSD: Avoid calling fh_drop_write() twice in do_nfsd_create() Chuck Lever
2022-05-13 19:39 ` [PATCH 3/8] NFSD: Refactor nfsd_create_setattr() Chuck Lever
2022-05-13 19:39 ` [PATCH 4/8] NFSD: Refactor NFSv3 CREATE Chuck Lever
2022-05-13 19:39 ` [PATCH 5/8] NFSD: Refactor NFSv4 OPEN(CREATE) Chuck Lever
2022-05-13 19:40 ` [PATCH 6/8] NFSD: Remove do_nfsd_create() Chuck Lever
2022-05-13 19:40 ` [PATCH 7/8] NFSD: Clean up nfsd_open_verified() Chuck Lever
2022-05-13 19:40 ` [PATCH 8/8] NFSD: Instantiate a struct file when creating a regular NFSv4 file Chuck Lever
2022-05-13 22:20   ` Al Viro
2022-05-14  4:44     ` Al Viro
2022-05-14 16:34       ` Chuck Lever III

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.