]> git.baikalelectronics.ru Git - kernel.git/commit
afs: Implement VL server rotation
authorDavid Howells <dhowells@redhat.com>
Fri, 19 Oct 2018 23:57:57 +0000 (00:57 +0100)
committerDavid Howells <dhowells@redhat.com>
Tue, 23 Oct 2018 23:41:07 +0000 (00:41 +0100)
commita0580bb664fc0dcc5bd0ca0b47ba32fbf2ca262c
tree249b578b9fd7a79f7b52d4534a0e9ba4cc5b8cc9
parent35d18f1e4f5d705c68d57d19cd70c9f96ec7ebea
afs: Implement VL server rotation

Track VL servers as independent entities rather than lumping all their
addresses together into one set and implement server-level rotation by:

 (1) Add the concept of a VL server list, where each server has its own
     separate address list.  This code is similar to the FS server list.

 (2) Use the DNS resolver to retrieve a set of servers and their associated
     addresses, ports, preference and weight ratings.

 (3) In the case of a legacy DNS resolver or an address list given directly
     through /proc/net/afs/cells, create a list containing just a dummy
     server record and attach all the addresses to that.

 (4) Implement a simple rotation policy, for the moment ignoring the
     priorities and weights assigned to the servers.

 (5) Show the address list through /proc/net/afs/<cell>/vlservers.  This
     also displays the source and status of the data as indicated by the
     upcall.

Signed-off-by: David Howells <dhowells@redhat.com>
fs/afs/Makefile
fs/afs/addr_list.c
fs/afs/cell.c
fs/afs/dynroot.c
fs/afs/internal.h
fs/afs/proc.c
fs/afs/server.c
fs/afs/vl_list.c [new file with mode: 0644]
fs/afs/vl_rotate.c [new file with mode: 0644]
fs/afs/vlclient.c
fs/afs/volume.c