gfs2: Clean up ail2_empty
Clean up the logic in ail2_empty (no functional change). Signed-off-by: Andreas Gruenbacher <agruenba@redhat.com>
This commit is contained in:
parent
e7501bf88c
commit
6e80674af0
|
@ -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);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue