diff options
author | David Howells <dhowells@redhat.com> | 2020-04-27 13:42:53 +0100 |
---|---|---|
committer | David Howells <dhowells@redhat.com> | 2020-06-04 15:37:57 +0100 |
commit | 194d28cf197ca982556be58dcf687b43fd85e9cc (patch) | |
tree | 6b19b3888311d99610666089fd08a49004fa6ed3 /fs/afs | |
parent | 3120c170ef35c1a9be137535e44c7e237e33b78e (diff) |
afs: Retain more of the VLDB record for alias detection
Save more bits from the volume location database record obtained for a
server so that we can use this information in cell alias detection.
Signed-off-by: David Howells <dhowells@redhat.com>
Diffstat (limited to 'fs/afs')
-rw-r--r-- | fs/afs/internal.h | 3 | ||||
-rw-r--r-- | fs/afs/server_list.c | 3 |
2 files changed, 5 insertions, 1 deletions
diff --git a/fs/afs/internal.h b/fs/afs/internal.h index 9f024c1bd650..dce03e068cab 100644 --- a/fs/afs/internal.h +++ b/fs/afs/internal.h @@ -546,7 +546,7 @@ struct afs_cb_interest { }; /* - * Replaceable server list. + * Replaceable volume server list. */ struct afs_server_entry { struct afs_server *server; @@ -554,6 +554,7 @@ struct afs_server_entry { }; struct afs_server_list { + afs_volid_t vids[AFS_MAXTYPES]; /* Volume IDs */ refcount_t usage; unsigned char nr_servers; unsigned char preferred; /* Preferred server */ diff --git a/fs/afs/server_list.c b/fs/afs/server_list.c index b77e50f62459..a35f6951a74a 100644 --- a/fs/afs/server_list.c +++ b/fs/afs/server_list.c @@ -46,6 +46,9 @@ struct afs_server_list *afs_alloc_server_list(struct afs_cell *cell, refcount_set(&slist->usage, 1); rwlock_init(&slist->lock); + for (i = 0; i < AFS_MAXTYPES; i++) + slist->vids[i] = vldb->vid[i]; + /* Make sure a records exists for each server in the list. */ for (i = 0; i < vldb->nr_servers; i++) { if (!(vldb->fs_mask[i] & type_mask)) |