summaryrefslogtreecommitdiffstats
path: root/fs/dlm/member.c
diff options
context:
space:
mode:
authorAlexander Aring <aahringo@redhat.com>2024-04-02 21:18:07 +0200
committerDavid Teigland <teigland@redhat.com>2024-04-09 18:44:49 +0200
commitd52c9b8fefa3ed4f1893eea8c5f38748a83356fc (patch)
tree0e27a57edffd8c6549a4992e38ddb66a3031a197 /fs/dlm/member.c
parentdlm: avoid blocking receive at the end of recovery (diff)
downloadlinux-d52c9b8fefa3ed4f1893eea8c5f38748a83356fc.tar.xz
linux-d52c9b8fefa3ed4f1893eea8c5f38748a83356fc.zip
dlm: convert ls_recv_active from rw_semaphore to rwlock
Convert ls_recv_active rw_semaphore to an rwlock to avoid sleeping, in preparation for softirq message processing. Signed-off-by: Alexander Aring <aahringo@redhat.com> Signed-off-by: David Teigland <teigland@redhat.com>
Diffstat (limited to 'fs/dlm/member.c')
-rw-r--r--fs/dlm/member.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/fs/dlm/member.c b/fs/dlm/member.c
index 707cebcdc533..ac1b555af9d6 100644
--- a/fs/dlm/member.c
+++ b/fs/dlm/member.c
@@ -630,7 +630,7 @@ int dlm_ls_stop(struct dlm_ls *ls)
* message to the requestqueue without races.
*/
- down_write(&ls->ls_recv_active);
+ write_lock(&ls->ls_recv_active);
/*
* Abort any recovery that's in progress (see RECOVER_STOP,
@@ -654,7 +654,7 @@ int dlm_ls_stop(struct dlm_ls *ls)
* requestqueue for later.
*/
- up_write(&ls->ls_recv_active);
+ write_unlock(&ls->ls_recv_active);
/*
* This in_recovery lock does two things: