summaryrefslogtreecommitdiffstats
path: root/fs/gfs2/log.c
diff options
context:
space:
mode:
authorAndreas Gruenbacher <agruenba@redhat.com>2024-03-15 16:45:39 +0100
committerAndreas Gruenbacher <agruenba@redhat.com>2024-04-09 18:35:57 +0200
commitee2be7d7c7f32783f60ee5fe59b91548a4571f10 (patch)
tree33b3e88becb4b2bfe7bad319602d44549ad1c7fc /fs/gfs2/log.c
parentf80d882edcf242d0256d9e51b09d5fb7a3a0d3b4 (diff)
downloadlinux-ee2be7d7c7f32783f60ee5fe59b91548a4571f10.tar.gz
linux-ee2be7d7c7f32783f60ee5fe59b91548a4571f10.tar.bz2
linux-ee2be7d7c7f32783f60ee5fe59b91548a4571f10.zip
gfs2: Replace gfs2_glock_queue_put with gfs2_glock_put_async
Function gfs2_glock_queue_put() puts a glock reference by enqueuing glock work instead of putting the reference directly. This ensures that the operation won't sleep, but it is costly and really only necessary when putting the final glock reference. Replace it with a new gfs2_glock_put_async() function that only queues glock work when putting the last glock reference. Signed-off-by: Andreas Gruenbacher <agruenba@redhat.com>
Diffstat (limited to 'fs/gfs2/log.c')
-rw-r--r--fs/gfs2/log.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/fs/gfs2/log.c b/fs/gfs2/log.c
index a6dd68b458ce..6ee6013fb825 100644
--- a/fs/gfs2/log.c
+++ b/fs/gfs2/log.c
@@ -786,7 +786,7 @@ void gfs2_glock_remove_revoke(struct gfs2_glock *gl)
{
if (atomic_dec_return(&gl->gl_revokes) == 0) {
clear_bit(GLF_LFLUSH, &gl->gl_flags);
- gfs2_glock_queue_put(gl);
+ gfs2_glock_put_async(gl);
}
}