]> git.baikalelectronics.ru Git - kernel.git/commit
afs: Fix cell DNS lookup
authorDavid Howells <dhowells@redhat.com>
Tue, 7 May 2019 14:06:36 +0000 (15:06 +0100)
committerDavid Howells <dhowells@redhat.com>
Thu, 16 May 2019 11:58:23 +0000 (12:58 +0100)
commit3c66ce998740f7abb71462257384fd1459e2810d
tree856d5540f898c041c51f8868e53381f37d2ff0b7
parentde4d52750c17537e593c49f3a2e161cee5690370
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: a0580bb664fc ("afs: Implement VL server rotation")
Signed-off-by: David Howells <dhowells@redhat.com>
fs/afs/cell.c
fs/afs/internal.h
fs/afs/vl_rotate.c