diff options
| author | Andreas Gruenbacher <agruenba@redhat.com> | 2025-06-24 20:41:37 +0200 |
|---|---|---|
| committer | Andreas Gruenbacher <agruenba@redhat.com> | 2025-07-15 04:20:40 +0200 |
| commit | 92cef39bb3c1734a9b55693047720198c90f8a4f (patch) | |
| tree | 8abe4caab930bb5295c640c18ee9c493040a05aa /fs | |
| parent | gfs2: sanitize the gdlm_ast -> finish_xmote interface (diff) | |
| download | linux-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>
Diffstat (limited to 'fs')
| -rw-r--r-- | fs/gfs2/glock.c | 8 |
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 */ |
