linux/fs/afs
David Howells d5c32c89b2 afs: Fix cell DNS lookup
Currently, once configured, AFS cells are looked up in the DNS at regular
intervals - which is a waste of resources if those cells aren't being
used.  It also leads to a problem where cells preloaded, but not
configured, before the network is brought up end up effectively statically
configured with no VL servers and are unable to get any.

Fix this by not doing the DNS lookup until the first time a cell is
touched.  It is waited for if we don't have any cached records yet,
otherwise the DNS lookup to maintain the record is done in the background.

This has the downside that the first time you touch a cell, you now have to
wait for the upcall to do the required DNS lookups rather than them already
being cached.

Further, the record is not replaced if the old record has at least one
server in it and the new record doesn't have any.

Fixes: 0a5143f2f8 ("afs: Implement VL server rotation")
Signed-off-by: David Howells <dhowells@redhat.com>
2019-05-16 12:58:23 +01:00
..
addr_list.c dns_resolver: Allow used keys to be invalidated 2019-05-15 17:35:54 +01:00
afs_cm.h afs: support the CB.ProbeUuid RPC op 2008-04-29 08:06:26 -07:00
afs_fs.h afs: implement acl setting 2019-05-07 16:48:44 +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: Expand data structure fields to support YFS 2018-10-24 00:41:08 +01:00
cache.c afs: Increase to 64-bit volume ID and 96-bit vnode ID for YFS 2018-10-24 00:41:08 +01:00
callback.c afs: Fix in-progess ops to ignore server-level callback invalidation 2019-04-13 08:37:37 +01:00
cell.c afs: Fix cell DNS lookup 2019-05-16 12:58:23 +01:00
cmservice.c Wimplicit-fallthrough patches for 5.2-rc1 2019-05-07 12:48:10 -07:00
dir_edit.c afs: Locally edit directory data for mkdir/create/unlink/... 2018-04-09 21:54:48 +01:00
dir_silly.c afs: Implement sillyrename for unlink and rename 2019-04-25 14:26:51 +01:00
dir.c afs: Log more information for "kAFS: AFS vnode with undefined type\n" 2019-05-07 16:48:44 +01:00
dynroot.c dns_resolver: Allow used keys to be invalidated 2019-05-15 17:35:54 +01:00
file.c afs: Fix key leak in afs_release() and afs_evict_inode() 2019-05-15 12:32:34 +01:00
flock.c AFS Development 2019-05-07 20:51:58 -07:00
fs_probe.c afs: Split wait from afs_make_call() 2019-04-25 14:26:50 +01:00
fsclient.c AFS Development 2019-05-07 20:51:58 -07:00
inode.c afs: Fix key leak in afs_release() and afs_evict_inode() 2019-05-15 12:32:34 +01:00
internal.h afs: Fix cell DNS lookup 2019-05-16 12:58:23 +01:00
Kconfig afs: Allow dumping of server cursor on operation failure 2018-10-24 00:41:09 +01:00
main.c afs: Fix cell proc list 2018-10-12 13:18:57 +02:00
Makefile afs: Implement sillyrename for unlink and rename 2019-04-25 14:26:51 +01:00
misc.c afs: Mark expected switch fall-throughs 2019-04-08 18:35:56 -05:00
mntpt.c afs: Use fs_context to pass parameters over automount 2019-02-28 03:29:39 -05:00
netdevices.c afs: Implement network namespacing 2018-05-23 12:01:15 +01:00
proc.c afs: Fix afs_cell records to always have a VL server list record 2019-05-15 17:35:53 +01:00
protocol_yfs.h afs: Get YFS ACLs and information through xattrs 2019-05-07 16:48:44 +01:00
rotate.c afs: Fix missing net error handling 2018-11-29 21:08:14 -05:00
rxrpc.c AFS Development 2019-05-07 20:51:58 -07:00
security.c afs: Fix callback handling 2018-10-24 00:41:09 +01:00
server_list.c afs: Use struct_size() in kzalloc() 2019-01-10 17:12:05 +00:00
server.c afs: Fix in-progess ops to ignore server-level callback invalidation 2019-04-13 08:37:37 +01:00
super.c AFS Development 2019-05-07 20:51:58 -07:00
vl_list.c afs: Fix afs_cell records to always have a VL server list record 2019-05-15 17:35:53 +01:00
vl_probe.c afs: Split wait from afs_make_call() 2019-04-25 14:26:50 +01:00
vl_rotate.c afs: Fix cell DNS lookup 2019-05-16 12:58:23 +01:00
vlclient.c AFS Development 2019-05-07 20:51:58 -07:00
volume.c afs: Add fs_context support 2019-02-28 03:29:38 -05:00
write.c afs: Unlock pages for __pagevec_release() 2019-04-13 08:37:37 +01:00
xattr.c afs: Fix afs_xattr_get_yfs() to not try freeing an error value 2019-05-15 17:35:53 +01:00
xdr_fs.h afs: Adjust the directory XDR structures 2018-04-09 21:54:48 +01:00
yfsclient.c afs: Fix afs_xattr_get_yfs() to not try freeing an error value 2019-05-15 17:35:53 +01:00