diff options
| author | Zhang Yi <yi.zhang@huawei.com> | 2025-10-13 09:51:28 +0800 |
|---|---|---|
| committer | Theodore Ts'o <tytso@mit.edu> | 2025-11-06 10:44:39 -0500 |
| commit | 9dbf945320b11c5865d2f550f8e972566d04d181 (patch) | |
| tree | c09f37d752a51f1800fce5e494adf0dc9c03f7c7 /fs/ext4/move_extent.c | |
| parent | 65097262f5ee786e649224ead2c08b7552376269 (diff) | |
ext4: add two trace points for moving extents
To facilitate tracking the length, type, and outcome of the move extent,
add a trace point at both the entry and exit of mext_move_extent().
Signed-off-by: Zhang Yi <yi.zhang@huawei.com>
Reviewed-by: Jan Kara <jack@suse.cz>
Message-ID: <20251013015128.499308-13-yi.zhang@huaweicloud.com>
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
Diffstat (limited to 'fs/ext4/move_extent.c')
| -rw-r--r-- | fs/ext4/move_extent.c | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/fs/ext4/move_extent.c b/fs/ext4/move_extent.c index f04755c2165a..0550fd30fd10 100644 --- a/fs/ext4/move_extent.c +++ b/fs/ext4/move_extent.c @@ -13,6 +13,8 @@ #include "ext4.h" #include "ext4_extents.h" +#include <trace/events/ext4.h> + struct mext_data { struct inode *orig_inode; /* Origin file inode */ struct inode *donor_inode; /* Donor file inode */ @@ -311,10 +313,14 @@ static int mext_move_extent(struct mext_data *mext, u64 *m_len) int ret, ret2; *m_len = 0; + trace_ext4_move_extent_enter(orig_inode, orig_map, donor_inode, + mext->donor_lblk); credits = ext4_chunk_trans_extent(orig_inode, 0) * 2; handle = ext4_journal_start(orig_inode, EXT4_HT_MOVE_EXTENTS, credits); - if (IS_ERR(handle)) - return PTR_ERR(handle); + if (IS_ERR(handle)) { + ret = PTR_ERR(handle); + goto out; + } ret = mext_move_begin(mext, folio, &move_type); if (ret) @@ -379,6 +385,10 @@ unlock: mext_folio_double_unlock(folio); stop_handle: ext4_journal_stop(handle); +out: + trace_ext4_move_extent_exit(orig_inode, orig_map->m_lblk, donor_inode, + mext->donor_lblk, orig_map->m_len, *m_len, + move_type, ret); return ret; repair_branches: |