diff options
-rw-r--r-- | fs/ocfs2/alloc.c | 7 | ||||
-rw-r--r-- | fs/ocfs2/ocfs2_trace.h | 25 |
2 files changed, 32 insertions, 0 deletions
diff --git a/fs/ocfs2/alloc.c b/fs/ocfs2/alloc.c index ae3ea783dad7..ed553c60de82 100644 --- a/fs/ocfs2/alloc.c +++ b/fs/ocfs2/alloc.c | |||
@@ -7196,6 +7196,8 @@ static int ocfs2_trim_extent(struct super_block *sb, | |||
7196 | discard = le64_to_cpu(gd->bg_blkno) + | 7196 | discard = le64_to_cpu(gd->bg_blkno) + |
7197 | ocfs2_clusters_to_blocks(sb, start); | 7197 | ocfs2_clusters_to_blocks(sb, start); |
7198 | 7198 | ||
7199 | trace_ocfs2_trim_extent(sb, (unsigned long long)discard, bcount); | ||
7200 | |||
7199 | return sb_issue_discard(sb, discard, bcount, GFP_NOFS, 0); | 7201 | return sb_issue_discard(sb, discard, bcount, GFP_NOFS, 0); |
7200 | } | 7202 | } |
7201 | 7203 | ||
@@ -7209,6 +7211,9 @@ static int ocfs2_trim_group(struct super_block *sb, | |||
7209 | if (le16_to_cpu(gd->bg_free_bits_count) < minbits) | 7211 | if (le16_to_cpu(gd->bg_free_bits_count) < minbits) |
7210 | return 0; | 7212 | return 0; |
7211 | 7213 | ||
7214 | trace_ocfs2_trim_group((unsigned long long)le64_to_cpu(gd->bg_blkno), | ||
7215 | start, max, minbits); | ||
7216 | |||
7212 | while (start < max) { | 7217 | while (start < max) { |
7213 | start = ocfs2_find_next_zero_bit(bitmap, max, start); | 7218 | start = ocfs2_find_next_zero_bit(bitmap, max, start); |
7214 | if (start >= max) | 7219 | if (start >= max) |
@@ -7292,6 +7297,8 @@ int ocfs2_trim_fs(struct super_block *sb, struct fstrim_range *range) | |||
7292 | if (start + len > le32_to_cpu(main_bm->i_clusters)) | 7297 | if (start + len > le32_to_cpu(main_bm->i_clusters)) |
7293 | len = le32_to_cpu(main_bm->i_clusters) - start; | 7298 | len = le32_to_cpu(main_bm->i_clusters) - start; |
7294 | 7299 | ||
7300 | trace_ocfs2_trim_fs(start, len, minlen); | ||
7301 | |||
7295 | /* Determine first and last group to examine based on start and len */ | 7302 | /* Determine first and last group to examine based on start and len */ |
7296 | first_group = ocfs2_which_cluster_group(main_bm_inode, start); | 7303 | first_group = ocfs2_which_cluster_group(main_bm_inode, start); |
7297 | if (first_group == osb->first_cluster_group_blkno) | 7304 | if (first_group == osb->first_cluster_group_blkno) |
diff --git a/fs/ocfs2/ocfs2_trace.h b/fs/ocfs2/ocfs2_trace.h index a1dae5bb54ac..3b481f490633 100644 --- a/fs/ocfs2/ocfs2_trace.h +++ b/fs/ocfs2/ocfs2_trace.h | |||
@@ -688,6 +688,31 @@ TRACE_EVENT(ocfs2_cache_block_dealloc, | |||
688 | __entry->blkno, __entry->bit) | 688 | __entry->blkno, __entry->bit) |
689 | ); | 689 | ); |
690 | 690 | ||
691 | TRACE_EVENT(ocfs2_trim_extent, | ||
692 | TP_PROTO(struct super_block *sb, unsigned long long blk, | ||
693 | unsigned long long count), | ||
694 | TP_ARGS(sb, blk, count), | ||
695 | TP_STRUCT__entry( | ||
696 | __field(int, dev_major) | ||
697 | __field(int, dev_minor) | ||
698 | __field(unsigned long long, blk) | ||
699 | __field(__u64, count) | ||
700 | ), | ||
701 | TP_fast_assign( | ||
702 | __entry->dev_major = MAJOR(sb->s_dev); | ||
703 | __entry->dev_minor = MINOR(sb->s_dev); | ||
704 | __entry->blk = blk; | ||
705 | __entry->count = count; | ||
706 | ), | ||
707 | TP_printk("%d %d %llu %llu", | ||
708 | __entry->dev_major, __entry->dev_minor, | ||
709 | __entry->blk, __entry->count) | ||
710 | ); | ||
711 | |||
712 | DEFINE_OCFS2_ULL_UINT_UINT_UINT_EVENT(ocfs2_trim_group); | ||
713 | |||
714 | DEFINE_OCFS2_ULL_ULL_ULL_EVENT(ocfs2_trim_fs); | ||
715 | |||
691 | /* End of trace events for fs/ocfs2/alloc.c. */ | 716 | /* End of trace events for fs/ocfs2/alloc.c. */ |
692 | 717 | ||
693 | /* Trace events for fs/ocfs2/localalloc.c. */ | 718 | /* Trace events for fs/ocfs2/localalloc.c. */ |