linux/fs/afs
David Howells a4ff7401fb afs: Keep track of invalid-before version for dentry coherency
Each afs dentry is tagged with the version that the parent directory was at
last time it was validated and, currently, if this differs, the directory
is scanned and the dentry is refreshed.

However, this leads to an excessive amount of revalidation on directories
that get modified on the client without conflict with another client.  We
know there's no conflict because the parent directory's data version number
got incremented by exactly 1 on any create, mkdir, unlink, etc., therefore
we can trust the current state of the unaffected dentries when we perform a
local directory modification.

Optimise by keeping track of the last version of the parent directory that
was changed outside of the client in the parent directory's vnode and using
that to validate the dentries rather than the current version.

Signed-off-by: David Howells <dhowells@redhat.com>
2018-04-09 21:53:59 +01:00
..
addr_list.c afs: Fix checker warnings 2018-04-09 21:12:31 +01:00
afs_cm.h afs: support the CB.ProbeUuid RPC op 2008-04-29 08:06:26 -07:00
afs_fs.h afs: Prospectively look up extra files when doing a single lookup 2018-04-09 21:12:31 +01:00
afs_vl.h afs: Make use of the YFS service upgrade to fully support IPv6 2017-11-13 15:38:19 +00:00
afs.h afs: Rearrange status mapping 2018-04-09 21:53:59 +01:00
cache.c fscache: Pass object size in rather than calling back for it 2018-04-06 14:05:14 +01:00
callback.c afs: Prospectively look up extra files when doing a single lookup 2018-04-09 21:12:31 +01:00
cell.c afs: Implement @cell substitution handling 2018-04-09 21:18:58 +01:00
cmservice.c afs: Prospectively look up extra files when doing a single lookup 2018-04-09 21:12:31 +01:00
dir.c afs: Keep track of invalid-before version for dentry coherency 2018-04-09 21:53:59 +01:00
file.c fscache: Pass object size in rather than calling back for it 2018-04-06 14:05:14 +01:00
flock.c afs: Make it possible to get the data version in readpage 2018-04-09 21:53:56 +01:00
fsclient.c afs: Keep track of invalid-before version for dentry coherency 2018-04-09 21:53:59 +01:00
inode.c afs: Keep track of invalid-before version for dentry coherency 2018-04-09 21:53:59 +01:00
internal.h afs: Keep track of invalid-before version for dentry coherency 2018-04-09 21:53:59 +01:00
Kconfig fs/afs: remove depends on CONFIG_EXPERIMENTAL 2013-01-21 14:39:04 -08:00
main.c afs: Implement @sys substitution handling 2018-04-09 21:12:31 +01:00
Makefile afs: Overhaul volume and server record caching and fileserver rotation 2017-11-13 15:38:19 +00:00
misc.c afs: Consolidate abort_to_error translators 2017-11-13 15:38:17 +00:00
mntpt.c afs: Support the AFS dynamic root 2018-02-06 14:43:37 +00:00
netdevices.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
proc.c afs: Introduce a statistics proc file 2018-04-09 21:53:54 +01:00
rotate.c afs: Fix checker warnings 2018-04-09 21:12:31 +01:00
rxrpc.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next 2018-04-03 14:04:18 -07:00
security.c afs: Make it possible to get the data version in readpage 2018-04-09 21:53:56 +01:00
server_list.c afs: Fix server list handling 2018-02-06 14:36:54 +00:00
server.c afs: Fix checker warnings 2018-04-09 21:12:31 +01:00
super.c afs: Support the AFS dynamic root 2018-02-06 14:43:37 +00:00
vlclient.c afs: Fix checker warnings 2018-04-09 21:12:31 +01:00
volume.c fscache: Pass object size in rather than calling back for it 2018-04-06 14:05:14 +01:00
write.c afs: Fix missing error handling in afs_write_end() 2018-01-02 10:02:19 +00:00
xattr.c afs: Overhaul volume and server record caching and fileserver rotation 2017-11-13 15:38:19 +00:00
xdr_fs.h afs: Rearrange status mapping 2018-04-09 21:53:59 +01:00