summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndreas Gruenbacher <agruenba@redhat.com>2025-06-24 20:41:37 +0200
committerAndreas Gruenbacher <agruenba@redhat.com>2025-07-15 04:20:40 +0200
commit92cef39bb3c1734a9b55693047720198c90f8a4f (patch)
tree8abe4caab930bb5295c640c18ee9c493040a05aa
parentgfs2: sanitize the gdlm_ast -> finish_xmote interface (diff)
downloadlinux-92cef39bb3c1734a9b55693047720198c90f8a4f.tar.gz
linux-92cef39bb3c1734a9b55693047720198c90f8a4f.zip
gfs2: simplify finish_xmote
As a follow-up to commit a431d49243a0 ("gfs2: Fix request cancelation bug"), it turns out that any call to finish_xmote() is always followed by a call to run_queue(), either * directly when glock_work_func() calls finish_xmote() before calling run_queue(), or * indirectly when do_xmote() calls finish_xmote() before calling gfs2_glock_queue_work(), which queues a call to glock_work_func() in work queue context, so remove the code in finish_xmote() that duplicates the functionality of run_queue(). In addition, the code this commit removes is missing a check for the GLF_DEMOTE flag which indicates that no further promotes should be performed, so if that code didn't get removed, that check would have to be added. Signed-off-by: Andreas Gruenbacher <agruenba@redhat.com> Reviewed-by: Andrew Price <anprice@redhat.com>
-rw-r--r--fs/gfs2/glock.c8
1 files changed, 0 insertions, 8 deletions
diff --git a/fs/gfs2/glock.c b/fs/gfs2/glock.c
index a3a5edc28a51..053449a42b49 100644
--- a/fs/gfs2/glock.c
+++ b/fs/gfs2/glock.c
@@ -616,14 +616,6 @@ static void finish_xmote(struct gfs2_glock *gl, unsigned int ret)
list_del_init(&gh->gh_list);
trace_gfs2_glock_queue(gh, 0);
gl->gl_target = gl->gl_state;
- gh = find_first_waiter(gl);
- if (gh) {
- gl->gl_target = gh->gh_state;
- if (do_promote(gl))
- goto out;
- do_xmote(gl, gh, gl->gl_target);
- return;
- }
goto out;
}
/* Some error or failed "try lock" - report it */