mirror of
https://github.com/torvalds/linux.git
synced 2026-06-05 21:15:53 +02:00
change of locking rules for __dentry_kill(), regularized refcounting
rules in that area, assorted cleanups and removal of weird corner
cases (e.g. now ->d_iput() on child is always called before the parent
might hit __dentry_kill(), etc.)
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
-----BEGIN PGP SIGNATURE-----
iHUEABYIAB0WIQQqUNBr3gm4hGXdBJlZ7Krx/gZQ6wUCZZ+sQQAKCRBZ7Krx/gZQ
6ybjAQDM5jiS93IUzfHjCWq0nVBX5YGbDAkZOeqxbmIdQb+2UAEA6elP5r0fBBcA
seo3bry4DirQMDaA/Cjh4+8r71YSOQs=
=7+Hk
-----END PGP SIGNATURE-----
Merge tag 'pull-dcache' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs
Pull dcache updates from Al Viro:
"Change of locking rules for __dentry_kill(), regularized refcounting
rules in that area, assorted cleanups and removal of weird corner
cases (e.g. now ->d_iput() on child is always called before the parent
might hit __dentry_kill(), etc)"
* tag 'pull-dcache' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs: (40 commits)
dcache: remove unnecessary NULL check in dget_dlock()
kill DCACHE_MAY_FREE
__d_unalias() doesn't use inode argument
d_alloc_parallel(): in-lookup hash insertion doesn't need an RCU variant
get rid of DCACHE_GENOCIDE
d_genocide(): move the extern into fs/internal.h
simple_fill_super(): don't bother with d_genocide() on failure
nsfs: use d_make_root()
d_alloc_pseudo(): move setting ->d_op there from the (sole) caller
kill d_instantate_anon(), fold __d_instantiate_anon() into remaining caller
retain_dentry(): introduce a trimmed-down lockless variant
__dentry_kill(): new locking scheme
d_prune_aliases(): use a shrink list
switch select_collect{,2}() to use of to_shrink_list()
to_shrink_list(): call only if refcount is 0
fold dentry_kill() into dput()
don't try to cut corners in shrink_lock_dentry()
fold the call of retain_dentry() into fast_dput()
Call retain_dentry() with refcount 0
dentry_kill(): don't bother with retain_dentry() on slow path
...
|
||
|---|---|---|
| .. | ||
| acl.h | ||
| auth.c | ||
| auth.h | ||
| blocklayout.c | ||
| blocklayoutxdr.c | ||
| blocklayoutxdr.h | ||
| cache.h | ||
| current_stateid.h | ||
| export.c | ||
| export.h | ||
| filecache.c | ||
| filecache.h | ||
| flexfilelayout.c | ||
| flexfilelayoutxdr.c | ||
| flexfilelayoutxdr.h | ||
| idmap.h | ||
| Kconfig | ||
| lockd.c | ||
| Makefile | ||
| netlink.c | ||
| netlink.h | ||
| netns.h | ||
| nfs2acl.c | ||
| nfs3acl.c | ||
| nfs3proc.c | ||
| nfs3xdr.c | ||
| nfs4acl.c | ||
| nfs4callback.c | ||
| nfs4idmap.c | ||
| nfs4layouts.c | ||
| nfs4proc.c | ||
| nfs4recover.c | ||
| nfs4state.c | ||
| nfs4xdr.c | ||
| nfscache.c | ||
| nfsctl.c | ||
| nfsd.h | ||
| nfsfh.c | ||
| nfsfh.h | ||
| nfsproc.c | ||
| nfssvc.c | ||
| nfsxdr.c | ||
| pnfs.h | ||
| state.h | ||
| stats.c | ||
| stats.h | ||
| trace.c | ||
| trace.h | ||
| vfs.c | ||
| vfs.h | ||
| xdr.h | ||
| xdr3.h | ||
| xdr4.h | ||
| xdr4cb.h | ||