Merge git://git.kernel.org/pub/scm/linux/kernel/git/steve/gfs2-2.6-fixes
[pandora-kernel.git] / fs / gfs2 / lops.c
index de97632..bf33f82 100644 (file)
@@ -54,6 +54,7 @@ static void gfs2_pin(struct gfs2_sbd *sdp, struct buffer_head *bh)
        if (bd->bd_ail)
                list_move(&bd->bd_ail_st_list, &bd->bd_ail->ai_ail2_list);
        get_bh(bh);
+       atomic_inc(&sdp->sd_log_pinned);
        trace_gfs2_pin(bd, 1);
 }
 
@@ -94,6 +95,7 @@ static void gfs2_unpin(struct gfs2_sbd *sdp, struct buffer_head *bh,
        trace_gfs2_pin(bd, 0);
        gfs2_log_unlock(sdp);
        unlock_buffer(bh);
+       atomic_dec(&sdp->sd_log_pinned);
 }
 
 
@@ -528,9 +530,9 @@ static void databuf_lo_add(struct gfs2_sbd *sdp, struct gfs2_log_element *le)
                gfs2_pin(sdp, bd->bd_bh);
                tr->tr_num_databuf_new++;
                sdp->sd_log_num_databuf++;
-               list_add(&le->le_list, &sdp->sd_log_le_databuf);
+               list_add_tail(&le->le_list, &sdp->sd_log_le_databuf);
        } else {
-               list_add(&le->le_list, &sdp->sd_log_le_ordered);
+               list_add_tail(&le->le_list, &sdp->sd_log_le_ordered);
        }
 out:
        gfs2_log_unlock(sdp);