mirror of
git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-09-18 22:14:16 +00: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
...
|
||
|---|---|---|
| .. | ||
| caching | ||
| ext4 | ||
| nfs | ||
| smb | ||
| spufs | ||
| xfs | ||
| 9p.rst | ||
| adfs.rst | ||
| affs.rst | ||
| afs.rst | ||
| api-summary.rst | ||
| autofs-mount-control.rst | ||
| autofs.rst | ||
| automount-support.rst | ||
| befs.rst | ||
| bfs.rst | ||
| btrfs.rst | ||
| ceph.rst | ||
| coda.rst | ||
| configfs.rst | ||
| cramfs.rst | ||
| dax.rst | ||
| debugfs.rst | ||
| devpts.rst | ||
| directory-locking.rst | ||
| dlmfs.rst | ||
| dnotify.rst | ||
| ecryptfs.rst | ||
| efivarfs.rst | ||
| erofs.rst | ||
| ext2.rst | ||
| ext3.rst | ||
| f2fs.rst | ||
| fiemap.rst | ||
| files.rst | ||
| fscrypt.rst | ||
| fsverity.rst | ||
| fuse-io.rst | ||
| fuse.rst | ||
| gfs2-glocks.rst | ||
| gfs2-uevents.rst | ||
| gfs2.rst | ||
| hfs.rst | ||
| hfsplus.rst | ||
| hpfs.rst | ||
| idmappings.rst | ||
| index.rst | ||
| inotify.rst | ||
| isofs.rst | ||
| journalling.rst | ||
| locking.rst | ||
| locks.rst | ||
| mount_api.rst | ||
| netfs_library.rst | ||
| nilfs2.rst | ||
| ntfs.rst | ||
| ntfs3.rst | ||
| ocfs2-online-filecheck.rst | ||
| ocfs2.rst | ||
| omfs.rst | ||
| orangefs.rst | ||
| overlayfs.rst | ||
| path-lookup.rst | ||
| path-lookup.txt | ||
| porting.rst | ||
| proc.rst | ||
| qnx6.rst | ||
| quota.rst | ||
| ramfs-rootfs-initramfs.rst | ||
| relay.rst | ||
| romfs.rst | ||
| seq_file.rst | ||
| sharedsubtree.rst | ||
| splice.rst | ||
| squashfs.rst | ||
| sysfs.rst | ||
| sysv-fs.rst | ||
| tmpfs.rst | ||
| ubifs-authentication.rst | ||
| ubifs.rst | ||
| udf.rst | ||
| vfat.rst | ||
| vfs.rst | ||
| virtiofs.rst | ||
| zonefs.rst | ||