Function gfs2_write_revokes was incrementing and decrementing the number
of log blocks free, but there was never a log_blocks trace point for it.
Thus, the free blocks from a log_blocks trace would jump around
mysteriously.

This patch adds the missing trace points so the trace makes more sense.

Signed-off-by: Bob Peterson <rpete...@redhat.com>
---
 fs/gfs2/log.c | 12 ++++++++++--
 1 file changed, 10 insertions(+), 2 deletions(-)

diff --git a/fs/gfs2/log.c b/fs/gfs2/log.c
index a58333e3980d..01a645652a7d 100644
--- a/fs/gfs2/log.c
+++ b/fs/gfs2/log.c
@@ -716,16 +716,24 @@ void gfs2_write_revokes(struct gfs2_sbd *sdp)
                atomic_dec(&sdp->sd_log_blks_free);
                /* If no blocks have been reserved, we need to also
                 * reserve a block for the header */
-               if (!sdp->sd_log_blks_reserved)
+               if (!sdp->sd_log_blks_reserved) {
                        atomic_dec(&sdp->sd_log_blks_free);
+                       trace_gfs2_log_blocks(sdp, -2);
+               } else {
+                       trace_gfs2_log_blocks(sdp, -1);
+               }
        }
        gfs2_ail1_empty(sdp, max_revokes);
        gfs2_log_unlock(sdp);
 
        if (!sdp->sd_log_num_revoke) {
                atomic_inc(&sdp->sd_log_blks_free);
-               if (!sdp->sd_log_blks_reserved)
+               if (!sdp->sd_log_blks_reserved) {
                        atomic_inc(&sdp->sd_log_blks_free);
+                       trace_gfs2_log_blocks(sdp, 2);
+               } else {
+                       trace_gfs2_log_blocks(sdp, 1);
+               }
        }
 }
 
-- 
2.26.2

Reply via email to