Skip to content

Commit

Permalink
gfs2: split glock instantiation off from do_promote
Browse files Browse the repository at this point in the history
Before this patch, function do_promote had a section of code that did
the actual instantiation.  This patch splits that off into its own
function, gfs2_instantiate, which prepares us for the next patch that
will use that function.

Signed-off-by: Bob Peterson <rpeterso@redhat.com>
Signed-off-by: Andreas Gruenbacher <agruenba@redhat.com>
  • Loading branch information
Bob Peterson authored and Andreas Gruenbacher committed Oct 25, 2021
1 parent 60d8bae commit e6f8560
Showing 1 changed file with 17 additions and 3 deletions.
20 changes: 17 additions & 3 deletions fs/gfs2/glock.c
Original file line number Diff line number Diff line change
Expand Up @@ -472,6 +472,21 @@ find_first_strong_holder(struct gfs2_glock *gl)
return NULL;
}

/*
* gfs2_instantiate - Call the glops instantiate function
* @gl: The glock
*
* Returns: 0 if instantiate was successful, 2 if type specific operation is
* underway, or error.
*/
static int gfs2_instantiate(struct gfs2_holder *gh)
{
struct gfs2_glock *gl = gh->gh_gl;
const struct gfs2_glock_operations *glops = gl->gl_ops;

return glops->go_instantiate(gh);
}

/**
* do_promote - promote as many requests as possible on the current queue
* @gl: The glock
Expand All @@ -484,7 +499,6 @@ static int do_promote(struct gfs2_glock *gl)
__releases(&gl->gl_lockref.lock)
__acquires(&gl->gl_lockref.lock)
{
const struct gfs2_glock_operations *glops = gl->gl_ops;
struct gfs2_holder *gh, *tmp, *first_gh;
bool incompat_holders_demoted = false;
bool lock_released;
Expand Down Expand Up @@ -513,10 +527,10 @@ __acquires(&gl->gl_lockref.lock)
first_gh = gh;
}
if (gh->gh_list.prev == &gl->gl_holders &&
!(gh->gh_flags & GL_SKIP) && glops->go_instantiate) {
!(gh->gh_flags & GL_SKIP) && gl->gl_ops->go_instantiate) {
lock_released = true;
spin_unlock(&gl->gl_lockref.lock);
ret = glops->go_instantiate(gh);
ret = gfs2_instantiate(gh);
spin_lock(&gl->gl_lockref.lock);
if (ret) {
if (ret == 1)
Expand Down

0 comments on commit e6f8560

Please sign in to comment.