diff options
author | David Howells <dhowells@redhat.com> | 2023-11-02 16:08:43 +0000 |
---|---|---|
committer | David Howells <dhowells@redhat.com> | 2024-01-01 16:37:27 +0000 |
commit | ca0e79a46097d54e4af46c67c852479d97af35bb (patch) | |
tree | 4d6df831634dd37fca6dc83e3c85cbeb3d98ddf6 /fs/afs/cell.c | |
parent | 21c1f410d20295dbeee4178f7fdde5e167e20b43 (diff) | |
download | linux-ca0e79a46097d54e4af46c67c852479d97af35bb.tar.gz linux-ca0e79a46097d54e4af46c67c852479d97af35bb.tar.bz2 linux-ca0e79a46097d54e4af46c67c852479d97af35bb.zip |
afs: Make it possible to find the volumes that are using a server
Make it possible to find the afs_volume structs that are using an
afs_server struct to aid in breaking volume callbacks.
The way this is done is that each afs_volume already has an array of
afs_server_entry records that point to the servers where that volume might
be found. An afs_volume backpointer and a list node is added to each entry
and each entry is then added to an RCU-traversable list on the afs_server
to which it points.
Signed-off-by: David Howells <dhowells@redhat.com>
cc: Marc Dionne <marc.dionne@auristor.com>
cc: linux-afs@lists.infradead.org
Diffstat (limited to 'fs/afs/cell.c')
-rw-r--r-- | fs/afs/cell.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/fs/afs/cell.c b/fs/afs/cell.c index 926cb1188eba..7c0dce8eecad 100644 --- a/fs/afs/cell.c +++ b/fs/afs/cell.c @@ -161,6 +161,7 @@ static struct afs_cell *afs_alloc_cell(struct afs_net *net, refcount_set(&cell->ref, 1); atomic_set(&cell->active, 0); INIT_WORK(&cell->manager, afs_manage_cell_work); + spin_lock_init(&cell->vs_lock); cell->volumes = RB_ROOT; INIT_HLIST_HEAD(&cell->proc_volumes); seqlock_init(&cell->volume_lock); |