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

Now that the requirement for this are upstream this could go via the NFS
tree or the VFS tree.

Thanks,
NeilBrown


This v4 fixes the problems with patch 1 which Jonathan Flynn helped me
to understand.  And *actually* adds Anna's Acked-by.

Before this v3 fixed three bugs found by Sashiko - all
error-path related.

1/ patch 5 - make sure d_drop() gets called in all error cases
2/ patch 8 - dput() sdentry on all error paths
3/ patch 9 - check error return from d_duplicate() correctly.

Original intro:
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.


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

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

end of thread, other threads:[~2026-10-28 17:22 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-10-28  4:06 [PATCH v4 0/9] nfs: prepare for locking changes NeilBrown
2026-10-28  4:06 ` [PATCH v4 1/9] nfs: fix open-blocking with d_fsdata NeilBrown
2026-10-28  4:06 ` [PATCH v4 2/9] nfs: fix nfs_call_unlink() NeilBrown
2026-10-28  4:06 ` [PATCH v4 3/9] nfs: remove d_drop()/d_alloc_parallel() from nfs_atomic_open() NeilBrown
2026-10-28  4:06 ` [PATCH v4 4/9] nfs: use d_splice_alias() in nfs_link() NeilBrown
2026-10-28  4:06 ` [PATCH v4 5/9] nfs: don't d_drop() before d_splice_alias() NeilBrown
2026-10-28  4:06 ` [PATCH v4 6/9] nfs: don't d_drop() before d_splice_alias() in atomic_create NeilBrown
2026-10-28  4:06 ` [PATCH v4 7/9] nfs: Use d_alloc_trylock() in nfs_prime_dcache() NeilBrown
2026-10-28  4:06 ` [PATCH v4 8/9] nfs: use d_alloc_trylock() in silly-rename NeilBrown
2026-10-28  4:06 ` [PATCH v4 9/9] nfs: use d_duplicate() NeilBrown
2026-10-28 17:21 ` [PATCH v4 0/9] nfs: prepare for 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®