mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
* [PATCH v2 0/9] nfs: prepare for VFS locking changes.
@ 2026-09-29  2:21 NeilBrown
  2026-09-29  2:21 ` [PATCH v2 1/9] nfs: fix open-blocking with d_fsdata NeilBrown
                   ` (9 more replies)
  0 siblings, 10 replies; 14+ messages in thread
From: NeilBrown @ 2026-09-29  2:21 UTC (permalink / raw)
  To: Trond Myklebust, Anna Schumaker, Alexander Viro, Christian Brauner
  Cc: Jeff Layton, Jan Kara, linux-fsdevel, linux-nfs, linux-kernel

sashiko reported some problem with the previous posting.  A lot
were false positives as it used the wrong base.  However:
3/9 had inverted the return code from nfs_neg_need_reval() - it returns
    1 for "must revalidate" unlike d_revalidate which returns 0.
8/9 didn't handle and error from nfs_lookup() correctly - it
    should be fatal rather than triggering a retry.

Original intro below.
Thanks,
NeilBrown

I am working on changes to directory locking.  The medium term goal is
to lift d_alloc_parallel() locking above i_rwsem, so d_alloc_paralle()
can be run unlocked, and consequently cannot be called when ->i_rwsem is
held.

The requires:
 1/ the d_alloc_parallel() not be called while i_rwsem is held.  NFS does
    this in a few places. New interfaces d_alloc_trylock() and d_duplicate()
    are now available and can be used instead.

 2/ a dentry must not be d_drop()ed while an operation is ongoing, as an
    unlocked d_alloc_parallel() would then be able to create a new
    dentry with the same name.  In particular d_rehash() must be phased
    out as it won't be safe.  Various techiniques are used to avoid the
    need for d_drop(), particularly that d_splice_alias() is now able to
    splice a hashed alias.

Further, the first two patches here fixes bugs that I found while
developing and reviewing these changes.

The patches depend on patches recently added to the vfs tree.  I would
prefer these land in that tree too with an Acked-by or similar from NFS
maintainers.

Thanks,
NeilBrown

 [PATCH v2 1/9] nfs: fix open-blocking with d_fsdata
 [PATCH v2 2/9] nfs: fix nfs_call_unlink()
 [PATCH v2 3/9] nfs: remove d_drop()/d_alloc_parallel() from
 [PATCH v2 4/9] nfs: use d_splice_alias() in nfs_link()
 [PATCH v2 5/9] nfs: don't d_drop() before d_splice_alias()
 [PATCH v2 6/9] nfs: don't d_drop() before d_splice_alias() in
 [PATCH v2 7/9] nfs: Use d_alloc_trylock() in nfs_prime_dcache()
 [PATCH v2 8/9] nfs: use d_alloc_trylock() in silly-rename
 [PATCH v2 9/9] nfs: use d_duplicate()

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

end of thread, other threads:[~2026-10-01 19:43 UTC | newest]

Thread overview: 14+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-09-29  2:21 [PATCH v2 0/9] nfs: prepare for VFS locking changes NeilBrown
2026-09-29  2:21 ` [PATCH v2 1/9] nfs: fix open-blocking with d_fsdata NeilBrown
2026-09-29  2:21 ` [PATCH v2 2/9] nfs: fix nfs_call_unlink() NeilBrown
2026-09-29  2:21 ` [PATCH v2 3/9] nfs: remove d_drop()/d_alloc_parallel() from nfs_atomic_open() NeilBrown
2026-09-30 14:32   ` John Stoffel
2026-09-30 21:17     ` NeilBrown
2026-10-01 19:43       ` John Stoffel
2026-09-29  2:21 ` [PATCH v2 4/9] nfs: use d_splice_alias() in nfs_link() NeilBrown
2026-09-29  2:21 ` [PATCH v2 5/9] nfs: don't d_drop() before d_splice_alias() NeilBrown
2026-09-29  2:21 ` [PATCH v2 6/9] nfs: don't d_drop() before d_splice_alias() in atomic_create NeilBrown
2026-09-29  2:21 ` [PATCH v2 7/9] nfs: Use d_alloc_trylock() in nfs_prime_dcache() NeilBrown
2026-09-29  2:21 ` [PATCH v2 8/9] nfs: use d_alloc_trylock() in silly-rename NeilBrown
2026-09-29  2:21 ` [PATCH v2 9/9] nfs: use d_duplicate() NeilBrown
2026-09-29 21:24 ` [PATCH v2 0/9] nfs: prepare for VFS locking changes Anna Schumaker

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®