]> 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)
commita73b49eaac3b3d14a0a8fdaa52511c5fa70b6412
tree856d5540f898c041c51f8868e53381f37d2ff0b7
parent47c9b8fd2422717008855c64a72a6be06983ec4f
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: 0b7fbfe5a511 ("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