summaryrefslogtreecommitdiff
path: root/fs/afs/cell.c
diff options
context:
space:
mode:
authorDavid Howells <dhowells@redhat.com>2023-11-07 20:59:33 +0300
committerDavid Howells <dhowells@redhat.com>2024-01-01 19:37:27 +0300
commit32222f09782f1894fcfc37f6505ca676a6f4d1d6 (patch)
tree1248a3f6afb42e60625076444eac20e6eb9d1aeb /fs/afs/cell.c
parentdfa0a44946e29bd38c054df04ca7a3f8143dafe7 (diff)
downloadlinux-32222f09782f1894fcfc37f6505ca676a6f4d1d6.tar.xz
afs: Apply server breaks to mmap'd files in the call processor
Apply server breaks to mmap'd files that are being used from that server from the call processor work function rather than punting it off to a workqueue. The work item, afs_server_init_callback(), then bumps each individual inode off to its own work item introducing a potentially lengthy delay. This reduces that delay at the cost of extending the amount of time we delay replying to the CB.InitCallBack3 notification RPC from the server. 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.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/fs/afs/cell.c b/fs/afs/cell.c
index 55ee194e31ff..e4b6a80763d7 100644
--- a/fs/afs/cell.c
+++ b/fs/afs/cell.c
@@ -161,7 +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);
+ init_rwsem(&cell->vs_lock);
cell->volumes = RB_ROOT;
INIT_HLIST_HEAD(&cell->proc_volumes);
seqlock_init(&cell->volume_lock);