Commit 194d28cf authored by David Howells's avatar David Howells

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: default avatarDavid Howells <dhowells@redhat.com>
parent 3120c170
...@@ -546,7 +546,7 @@ struct afs_cb_interest { ...@@ -546,7 +546,7 @@ struct afs_cb_interest {
}; };
/* /*
* Replaceable server list. * Replaceable volume server list.
*/ */
struct afs_server_entry { struct afs_server_entry {
struct afs_server *server; struct afs_server *server;
...@@ -554,6 +554,7 @@ struct afs_server_entry { ...@@ -554,6 +554,7 @@ struct afs_server_entry {
}; };
struct afs_server_list { struct afs_server_list {
afs_volid_t vids[AFS_MAXTYPES]; /* Volume IDs */
refcount_t usage; refcount_t usage;
unsigned char nr_servers; unsigned char nr_servers;
unsigned char preferred; /* Preferred server */ unsigned char preferred; /* Preferred server */
......
...@@ -46,6 +46,9 @@ struct afs_server_list *afs_alloc_server_list(struct afs_cell *cell, ...@@ -46,6 +46,9 @@ struct afs_server_list *afs_alloc_server_list(struct afs_cell *cell,
refcount_set(&slist->usage, 1); refcount_set(&slist->usage, 1);
rwlock_init(&slist->lock); 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. */ /* Make sure a records exists for each server in the list. */
for (i = 0; i < vldb->nr_servers; i++) { for (i = 0; i < vldb->nr_servers; i++) {
if (!(vldb->fs_mask[i] & type_mask)) if (!(vldb->fs_mask[i] & type_mask))
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment