diff --git a/fs/f2fs/segment.c b/fs/f2fs/segment.c index b7b40bad080ab1af85306d74846dcd422ff8a93a..5e7e311758f8dd4d03c7ea12a9fdf1373c49c6a4 100644 --- a/fs/f2fs/segment.c +++ b/fs/f2fs/segment.c @@ -692,6 +692,7 @@ static int f2fs_issue_discard_zone(struct f2fs_sb_info *sbi, case BLK_ZONE_TYPE_SEQWRITE_REQ: case BLK_ZONE_TYPE_SEQWRITE_PREF: + trace_f2fs_issue_reset_zone(sbi->sb, blkstart); return blkdev_reset_zones(bdev, sector, nr_sects, GFP_NOFS); default: diff --git a/include/trace/events/f2fs.h b/include/trace/events/f2fs.h index 903a09165bb1072277f2582af3c4264e0b76184a..a2193e35bc58640d5e8f6253c19e630c03b3f983 100644 --- a/include/trace/events/f2fs.h +++ b/include/trace/events/f2fs.h @@ -1113,6 +1113,27 @@ TRACE_EVENT(f2fs_issue_discard, (unsigned long long)__entry->blklen) ); +TRACE_EVENT(f2fs_issue_reset_zone, + + TP_PROTO(struct super_block *sb, block_t blkstart), + + TP_ARGS(sb, blkstart), + + TP_STRUCT__entry( + __field(dev_t, dev) + __field(block_t, blkstart) + ), + + TP_fast_assign( + __entry->dev = sb->s_dev; + __entry->blkstart = blkstart; + ), + + TP_printk("dev = (%d,%d), reset zone at block = 0x%llx", + show_dev(__entry), + (unsigned long long)__entry->blkstart) +); + TRACE_EVENT(f2fs_issue_flush, TP_PROTO(struct super_block *sb, unsigned int nobarrier,