linux/fs/afs
David Howells 989782dcdc afs: Overhaul cell database management
Overhaul the way that the in-kernel AFS client keeps track of cells in the
following manner:

 (1) Cells are now held in an rbtree to make walking them quicker and RCU
     managed (though this is probably overkill).

 (2) Cells now have a manager work item that:

     (A) Looks after fetching and refreshing the VL server list.

     (B) Manages cell record lifetime, including initialising and
     	 destruction.

     (B) Manages cell record caching whereby threads are kept around for a
     	 certain time after last use and then destroyed.

     (C) Manages the FS-Cache index cookie for a cell.  It is not permitted
     	 for a cookie to be in use twice, so we have to be careful to not
     	 allow a new cell record to exist at the same time as an old record
     	 of the same name.

 (3) Each AFS network namespace is given a manager work item that manages
     the cells within it, maintaining a single timer to prod cells into
     updating their DNS records.

     This uses the reduce_timer() facility to make the timer expire at the
     soonest timed event that needs happening.

 (4) When a module is being unloaded, cells and cell managers are now
     counted out using dec_after_work() to make sure the module text is
     pinned until after the data structures have been cleaned up.

 (5) Each cell's VL server list is now protected by a seqlock rather than a
     semaphore.

Signed-off-by: David Howells <dhowells@redhat.com>
2017-11-13 15:38:18 +00:00
..
afs_cm.h afs: support the CB.ProbeUuid RPC op 2008-04-29 08:06:26 -07:00
afs_fs.h afs: Overhaul the callback handling 2017-11-13 15:38:18 +00:00
afs_vl.h afs: Add some protocol defs 2017-11-13 15:38:17 +00:00
afs.h afs: Overhaul permit caching 2017-11-13 15:38:18 +00:00
cache.c afs: Update the cache index structure 2017-11-13 15:38:17 +00:00
callback.c afs: Overhaul the callback handling 2017-11-13 15:38:18 +00:00
cell.c afs: Overhaul cell database management 2017-11-13 15:38:18 +00:00
cmservice.c afs: Overhaul the callback handling 2017-11-13 15:38:18 +00:00
dir.c afs: Overhaul the callback handling 2017-11-13 15:38:18 +00:00
file.c afs: Condense afs_call's reply{,2,3,4} into an array 2017-11-13 15:38:17 +00:00
flock.c afs: Overhaul permit caching 2017-11-13 15:38:18 +00:00
fsclient.c afs: Overhaul permit caching 2017-11-13 15:38:18 +00:00
inode.c afs: Overhaul permit caching 2017-11-13 15:38:18 +00:00
internal.h afs: Overhaul cell database management 2017-11-13 15:38:18 +00:00
Kconfig fs/afs: remove depends on CONFIG_EXPERIMENTAL 2013-01-21 14:39:04 -08:00
main.c afs: Overhaul cell database management 2017-11-13 15:38:18 +00:00
Makefile License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
misc.c afs: Consolidate abort_to_error translators 2017-11-13 15:38:17 +00:00
mntpt.c afs: Add metadata xattrs 2017-07-09 14:40:12 -07: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: Overhaul cell database management 2017-11-13 15:38:18 +00:00
rxrpc.c afs: Rename struct afs_call server member to cm_server 2017-11-13 15:38:18 +00:00
security.c afs: Overhaul permit caching 2017-11-13 15:38:18 +00:00
server.c afs: Overhaul the callback handling 2017-11-13 15:38:18 +00:00
super.c afs: Overhaul cell database management 2017-11-13 15:38:18 +00:00
vlclient.c afs: Condense afs_call's reply{,2,3,4} into an array 2017-11-13 15:38:17 +00:00
vlocation.c afs: Keep and pass sockaddr_rxrpc addresses rather than in_addr 2017-11-13 15:38:17 +00:00
vnode.c afs: Overhaul permit caching 2017-11-13 15:38:18 +00:00
volume.c afs: Overhaul the callback handling 2017-11-13 15:38:18 +00:00
write.c fs: convert a pile of fsync routines to errseq_t based reporting 2017-08-01 08:39:29 -04:00
xattr.c afs: Overhaul cell database management 2017-11-13 15:38:18 +00:00