Commit 6e80674a authored by Andreas Gruenbacher's avatar Andreas Gruenbacher

gfs2: Clean up ail2_empty

Clean up the logic in ail2_empty (no functional change).
Signed-off-by: default avatarAndreas Gruenbacher <agruenba@redhat.com>
parent e7501bf8
...@@ -367,29 +367,33 @@ static void gfs2_ail_empty_tr(struct gfs2_sbd *sdp, struct gfs2_trans *tr, ...@@ -367,29 +367,33 @@ static void gfs2_ail_empty_tr(struct gfs2_sbd *sdp, struct gfs2_trans *tr,
} }
} }
static void __ail2_empty(struct gfs2_sbd *sdp, struct gfs2_trans *tr)
{
gfs2_ail_empty_tr(sdp, tr, &tr->tr_ail2_list);
list_del(&tr->tr_list);
gfs2_assert_warn(sdp, list_empty(&tr->tr_ail1_list));
gfs2_assert_warn(sdp, list_empty(&tr->tr_ail2_list));
gfs2_trans_free(sdp, tr);
}
static void ail2_empty(struct gfs2_sbd *sdp, unsigned int new_tail) static void ail2_empty(struct gfs2_sbd *sdp, unsigned int new_tail)
{ {
struct gfs2_trans *tr, *safe; struct list_head *ail2_list = &sdp->sd_ail2_list;
unsigned int old_tail = sdp->sd_log_tail; unsigned int old_tail = sdp->sd_log_tail;
int wrap = (new_tail < old_tail); struct gfs2_trans *tr, *safe;
int a, b, rm;
spin_lock(&sdp->sd_ail_lock); spin_lock(&sdp->sd_ail_lock);
if (old_tail <= new_tail) {
list_for_each_entry_safe(tr, safe, &sdp->sd_ail2_list, tr_list) { list_for_each_entry_safe(tr, safe, ail2_list, tr_list) {
a = (old_tail <= tr->tr_first); if (old_tail <= tr->tr_first && tr->tr_first < new_tail)
b = (tr->tr_first < new_tail); __ail2_empty(sdp, tr);
rm = (wrap) ? (a || b) : (a && b); }
if (!rm) } else {
continue; list_for_each_entry_safe(tr, safe, ail2_list, tr_list) {
if (old_tail <= tr->tr_first || tr->tr_first < new_tail)
gfs2_ail_empty_tr(sdp, tr, &tr->tr_ail2_list); __ail2_empty(sdp, tr);
list_del(&tr->tr_list); }
gfs2_assert_warn(sdp, list_empty(&tr->tr_ail1_list));
gfs2_assert_warn(sdp, list_empty(&tr->tr_ail2_list));
gfs2_trans_free(sdp, tr);
} }
spin_unlock(&sdp->sd_ail_lock); spin_unlock(&sdp->sd_ail_lock);
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment