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@xxxxxxxxxx> --- fs/afs/internal.h | 3 ++- fs/afs/server_list.c | 3 +++ 2 files changed, 5 insertions(+), 1 deletion(-) 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))