Skip to content

Commit

Permalink
GFS2: Inline qd_trylock into gfs2_quota_unlock
Browse files Browse the repository at this point in the history
The function qd_trylock was not a trylock despite its name and
can be inlined into gfs2_quota_unlock in order to make the
code a bit clearer. There should be no functional change as a
result of this patch.

Signed-off-by: Steven Whitehouse <swhiteho@redhat.com>
Cc: Abhijith Das <adas@redhat.com>
  • Loading branch information
Steven Whitehouse committed Oct 4, 2013
1 parent 1bf59bf commit aabd7c7
Showing 1 changed file with 20 additions and 25 deletions.
45 changes: 20 additions & 25 deletions fs/gfs2/quota.c
Original file line number Diff line number Diff line change
Expand Up @@ -442,29 +442,6 @@ static int qd_fish(struct gfs2_sbd *sdp, struct gfs2_quota_data **qdp)
return 0;
}

static int qd_trylock(struct gfs2_quota_data *qd)
{
struct gfs2_sbd *sdp = qd->qd_gl->gl_sbd;
int found;

spin_lock(&qd_lru_lock);
found = qd_check_sync(sdp, qd, NULL);
spin_unlock(&qd_lru_lock);

if (!found)
return 0;

gfs2_assert_warn(sdp, qd->qd_change_sync);
if (bh_get(qd)) {
clear_bit(QDF_LOCKED, &qd->qd_flags);
slot_put(qd);
qd_put(qd);
return 0;
}

return 1;
}

static void qd_unlock(struct gfs2_quota_data *qd)
{
gfs2_assert_warn(qd->qd_gl->gl_sbd,
Expand Down Expand Up @@ -1015,9 +992,11 @@ static int need_sync(struct gfs2_quota_data *qd)

void gfs2_quota_unlock(struct gfs2_inode *ip)
{
struct gfs2_sbd *sdp = GFS2_SB(&ip->i_inode);
struct gfs2_quota_data *qda[4];
unsigned int count = 0;
unsigned int x;
int found;

if (!test_and_clear_bit(GIF_QD_LOCKED, &ip->i_flags))
goto out;
Expand All @@ -1030,9 +1009,25 @@ void gfs2_quota_unlock(struct gfs2_inode *ip)
sync = need_sync(qd);

gfs2_glock_dq_uninit(&ip->i_res->rs_qa_qd_ghs[x]);
if (!sync)
continue;

spin_lock(&qd_lru_lock);
found = qd_check_sync(sdp, qd, NULL);
spin_unlock(&qd_lru_lock);

if (!found)
continue;

gfs2_assert_warn(sdp, qd->qd_change_sync);
if (bh_get(qd)) {
clear_bit(QDF_LOCKED, &qd->qd_flags);
slot_put(qd);
qd_put(qd);
continue;
}

if (sync && qd_trylock(qd))
qda[count++] = qd;
qda[count++] = qd;
}

if (count) {
Expand Down

0 comments on commit aabd7c7

Please sign in to comment.