diff options
Diffstat (limited to 'fs/gfs2/log.c')
-rw-r--r-- | fs/gfs2/log.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/fs/gfs2/log.c b/fs/gfs2/log.c index f2e449c595b4..13c6237c5f67 100644 --- a/fs/gfs2/log.c +++ b/fs/gfs2/log.c | |||
@@ -28,6 +28,7 @@ | |||
28 | #include "meta_io.h" | 28 | #include "meta_io.h" |
29 | #include "util.h" | 29 | #include "util.h" |
30 | #include "dir.h" | 30 | #include "dir.h" |
31 | #include "trace_gfs2.h" | ||
31 | 32 | ||
32 | #define PULL 1 | 33 | #define PULL 1 |
33 | 34 | ||
@@ -313,6 +314,7 @@ int gfs2_log_reserve(struct gfs2_sbd *sdp, unsigned int blks) | |||
313 | gfs2_log_lock(sdp); | 314 | gfs2_log_lock(sdp); |
314 | } | 315 | } |
315 | atomic_sub(blks, &sdp->sd_log_blks_free); | 316 | atomic_sub(blks, &sdp->sd_log_blks_free); |
317 | trace_gfs2_log_blocks(sdp, -blks); | ||
316 | gfs2_log_unlock(sdp); | 318 | gfs2_log_unlock(sdp); |
317 | mutex_unlock(&sdp->sd_log_reserve_mutex); | 319 | mutex_unlock(&sdp->sd_log_reserve_mutex); |
318 | 320 | ||
@@ -333,6 +335,7 @@ void gfs2_log_release(struct gfs2_sbd *sdp, unsigned int blks) | |||
333 | 335 | ||
334 | gfs2_log_lock(sdp); | 336 | gfs2_log_lock(sdp); |
335 | atomic_add(blks, &sdp->sd_log_blks_free); | 337 | atomic_add(blks, &sdp->sd_log_blks_free); |
338 | trace_gfs2_log_blocks(sdp, blks); | ||
336 | gfs2_assert_withdraw(sdp, | 339 | gfs2_assert_withdraw(sdp, |
337 | atomic_read(&sdp->sd_log_blks_free) <= sdp->sd_jdesc->jd_blocks); | 340 | atomic_read(&sdp->sd_log_blks_free) <= sdp->sd_jdesc->jd_blocks); |
338 | gfs2_log_unlock(sdp); | 341 | gfs2_log_unlock(sdp); |
@@ -558,6 +561,7 @@ static void log_pull_tail(struct gfs2_sbd *sdp, unsigned int new_tail) | |||
558 | 561 | ||
559 | gfs2_log_lock(sdp); | 562 | gfs2_log_lock(sdp); |
560 | atomic_add(dist, &sdp->sd_log_blks_free); | 563 | atomic_add(dist, &sdp->sd_log_blks_free); |
564 | trace_gfs2_log_blocks(sdp, dist); | ||
561 | gfs2_assert_withdraw(sdp, atomic_read(&sdp->sd_log_blks_free) <= sdp->sd_jdesc->jd_blocks); | 565 | gfs2_assert_withdraw(sdp, atomic_read(&sdp->sd_log_blks_free) <= sdp->sd_jdesc->jd_blocks); |
562 | gfs2_log_unlock(sdp); | 566 | gfs2_log_unlock(sdp); |
563 | 567 | ||
@@ -715,6 +719,7 @@ void __gfs2_log_flush(struct gfs2_sbd *sdp, struct gfs2_glock *gl) | |||
715 | up_write(&sdp->sd_log_flush_lock); | 719 | up_write(&sdp->sd_log_flush_lock); |
716 | return; | 720 | return; |
717 | } | 721 | } |
722 | trace_gfs2_log_flush(sdp, 1); | ||
718 | 723 | ||
719 | ai = kzalloc(sizeof(struct gfs2_ail), GFP_NOFS | __GFP_NOFAIL); | 724 | ai = kzalloc(sizeof(struct gfs2_ail), GFP_NOFS | __GFP_NOFAIL); |
720 | INIT_LIST_HEAD(&ai->ai_ail1_list); | 725 | INIT_LIST_HEAD(&ai->ai_ail1_list); |
@@ -746,6 +751,7 @@ void __gfs2_log_flush(struct gfs2_sbd *sdp, struct gfs2_glock *gl) | |||
746 | else if (sdp->sd_log_tail != current_tail(sdp) && !sdp->sd_log_idle){ | 751 | else if (sdp->sd_log_tail != current_tail(sdp) && !sdp->sd_log_idle){ |
747 | gfs2_log_lock(sdp); | 752 | gfs2_log_lock(sdp); |
748 | atomic_dec(&sdp->sd_log_blks_free); /* Adjust for unreserved buffer */ | 753 | atomic_dec(&sdp->sd_log_blks_free); /* Adjust for unreserved buffer */ |
754 | trace_gfs2_log_blocks(sdp, -1); | ||
749 | gfs2_log_unlock(sdp); | 755 | gfs2_log_unlock(sdp); |
750 | log_write_header(sdp, 0, PULL); | 756 | log_write_header(sdp, 0, PULL); |
751 | } | 757 | } |
@@ -763,7 +769,7 @@ void __gfs2_log_flush(struct gfs2_sbd *sdp, struct gfs2_glock *gl) | |||
763 | ai = NULL; | 769 | ai = NULL; |
764 | } | 770 | } |
765 | gfs2_log_unlock(sdp); | 771 | gfs2_log_unlock(sdp); |
766 | 772 | trace_gfs2_log_flush(sdp, 0); | |
767 | up_write(&sdp->sd_log_flush_lock); | 773 | up_write(&sdp->sd_log_flush_lock); |
768 | 774 | ||
769 | kfree(ai); | 775 | kfree(ai); |
@@ -787,6 +793,7 @@ static void log_refund(struct gfs2_sbd *sdp, struct gfs2_trans *tr) | |||
787 | gfs2_assert_withdraw(sdp, sdp->sd_log_blks_reserved + tr->tr_reserved >= reserved); | 793 | gfs2_assert_withdraw(sdp, sdp->sd_log_blks_reserved + tr->tr_reserved >= reserved); |
788 | unused = sdp->sd_log_blks_reserved - reserved + tr->tr_reserved; | 794 | unused = sdp->sd_log_blks_reserved - reserved + tr->tr_reserved; |
789 | atomic_add(unused, &sdp->sd_log_blks_free); | 795 | atomic_add(unused, &sdp->sd_log_blks_free); |
796 | trace_gfs2_log_blocks(sdp, unused); | ||
790 | gfs2_assert_withdraw(sdp, atomic_read(&sdp->sd_log_blks_free) <= | 797 | gfs2_assert_withdraw(sdp, atomic_read(&sdp->sd_log_blks_free) <= |
791 | sdp->sd_jdesc->jd_blocks); | 798 | sdp->sd_jdesc->jd_blocks); |
792 | sdp->sd_log_blks_reserved = reserved; | 799 | sdp->sd_log_blks_reserved = reserved; |