diff options
author | David Sterba <dsterba@suse.com> | 2018-04-03 15:45:57 -0400 |
---|---|---|
committer | David Sterba <dsterba@suse.com> | 2018-05-28 12:07:17 -0400 |
commit | f46b24c9457143a367c6707eac82d546e2bcf280 (patch) | |
tree | cb09021515f8ed1eb2af36f764c39ac9e5e3f6fb | |
parent | 0e08eb9b1c1701f1fda8e8d7f4d2b93e7e54941f (diff) |
btrfs: use fs_info for btrfs_handle_em_exist tracepoint
We really want to know to which filesystem the extent map events belong,
but as it cannot be reached from the extent_map pointers, we need to
pass it down the callchain.
Reviewed-by: Nikolay Borisov <nborisov@suse.com>
Signed-off-by: David Sterba <dsterba@suse.com>
-rw-r--r-- | fs/btrfs/extent_map.c | 6 | ||||
-rw-r--r-- | fs/btrfs/extent_map.h | 3 | ||||
-rw-r--r-- | fs/btrfs/inode.c | 2 | ||||
-rw-r--r-- | fs/btrfs/tests/extent-map-tests.c | 8 | ||||
-rw-r--r-- | include/trace/events/btrfs.h | 12 |
5 files changed, 18 insertions, 13 deletions
diff --git a/fs/btrfs/extent_map.c b/fs/btrfs/extent_map.c index 1b8a078f92eb..6648d55e5339 100644 --- a/fs/btrfs/extent_map.c +++ b/fs/btrfs/extent_map.c | |||
@@ -518,6 +518,7 @@ static noinline int merge_extent_mapping(struct extent_map_tree *em_tree, | |||
518 | 518 | ||
519 | /** | 519 | /** |
520 | * btrfs_add_extent_mapping - add extent mapping into em_tree | 520 | * btrfs_add_extent_mapping - add extent mapping into em_tree |
521 | * @fs_info - used for tracepoint | ||
521 | * @em_tree - the extent tree into which we want to insert the extent mapping | 522 | * @em_tree - the extent tree into which we want to insert the extent mapping |
522 | * @em_in - extent we are inserting | 523 | * @em_in - extent we are inserting |
523 | * @start - start of the logical range btrfs_get_extent() is requesting | 524 | * @start - start of the logical range btrfs_get_extent() is requesting |
@@ -535,7 +536,8 @@ static noinline int merge_extent_mapping(struct extent_map_tree *em_tree, | |||
535 | * Return 0 on success, otherwise -EEXIST. | 536 | * Return 0 on success, otherwise -EEXIST. |
536 | * | 537 | * |
537 | */ | 538 | */ |
538 | int btrfs_add_extent_mapping(struct extent_map_tree *em_tree, | 539 | int btrfs_add_extent_mapping(struct btrfs_fs_info *fs_info, |
540 | struct extent_map_tree *em_tree, | ||
539 | struct extent_map **em_in, u64 start, u64 len) | 541 | struct extent_map **em_in, u64 start, u64 len) |
540 | { | 542 | { |
541 | int ret; | 543 | int ret; |
@@ -553,7 +555,7 @@ int btrfs_add_extent_mapping(struct extent_map_tree *em_tree, | |||
553 | 555 | ||
554 | existing = search_extent_mapping(em_tree, start, len); | 556 | existing = search_extent_mapping(em_tree, start, len); |
555 | 557 | ||
556 | trace_btrfs_handle_em_exist(existing, em, start, len); | 558 | trace_btrfs_handle_em_exist(fs_info, existing, em, start, len); |
557 | 559 | ||
558 | /* | 560 | /* |
559 | * existing will always be non-NULL, since there must be | 561 | * existing will always be non-NULL, since there must be |
diff --git a/fs/btrfs/extent_map.h b/fs/btrfs/extent_map.h index 5fcb80a6ce37..25d985e7532a 100644 --- a/fs/btrfs/extent_map.h +++ b/fs/btrfs/extent_map.h | |||
@@ -92,7 +92,8 @@ int unpin_extent_cache(struct extent_map_tree *tree, u64 start, u64 len, u64 gen | |||
92 | void clear_em_logging(struct extent_map_tree *tree, struct extent_map *em); | 92 | void clear_em_logging(struct extent_map_tree *tree, struct extent_map *em); |
93 | struct extent_map *search_extent_mapping(struct extent_map_tree *tree, | 93 | struct extent_map *search_extent_mapping(struct extent_map_tree *tree, |
94 | u64 start, u64 len); | 94 | u64 start, u64 len); |
95 | int btrfs_add_extent_mapping(struct extent_map_tree *em_tree, | 95 | int btrfs_add_extent_mapping(struct btrfs_fs_info *fs_info, |
96 | struct extent_map_tree *em_tree, | ||
96 | struct extent_map **em_in, u64 start, u64 len); | 97 | struct extent_map **em_in, u64 start, u64 len); |
97 | 98 | ||
98 | #endif | 99 | #endif |
diff --git a/fs/btrfs/inode.c b/fs/btrfs/inode.c index be17cfdcbcf5..f4447986263a 100644 --- a/fs/btrfs/inode.c +++ b/fs/btrfs/inode.c | |||
@@ -7083,7 +7083,7 @@ insert: | |||
7083 | 7083 | ||
7084 | err = 0; | 7084 | err = 0; |
7085 | write_lock(&em_tree->lock); | 7085 | write_lock(&em_tree->lock); |
7086 | err = btrfs_add_extent_mapping(em_tree, &em, start, len); | 7086 | err = btrfs_add_extent_mapping(fs_info, em_tree, &em, start, len); |
7087 | write_unlock(&em_tree->lock); | 7087 | write_unlock(&em_tree->lock); |
7088 | out: | 7088 | out: |
7089 | 7089 | ||
diff --git a/fs/btrfs/tests/extent-map-tests.c b/fs/btrfs/tests/extent-map-tests.c index 8a39de4453e4..9c051c4a3315 100644 --- a/fs/btrfs/tests/extent-map-tests.c +++ b/fs/btrfs/tests/extent-map-tests.c | |||
@@ -91,7 +91,7 @@ static void test_case_1(struct btrfs_fs_info *fs_info, | |||
91 | em->len = len; | 91 | em->len = len; |
92 | em->block_start = start; | 92 | em->block_start = start; |
93 | em->block_len = len; | 93 | em->block_len = len; |
94 | ret = btrfs_add_extent_mapping(em_tree, &em, em->start, em->len); | 94 | ret = btrfs_add_extent_mapping(fs_info, em_tree, &em, em->start, em->len); |
95 | if (ret) | 95 | if (ret) |
96 | test_msg("case1 [%llu %llu]: ret %d\n", start, start + len, ret); | 96 | test_msg("case1 [%llu %llu]: ret %d\n", start, start + len, ret); |
97 | if (em && | 97 | if (em && |
@@ -155,7 +155,7 @@ static void test_case_2(struct btrfs_fs_info *fs_info, | |||
155 | em->len = SZ_1K; | 155 | em->len = SZ_1K; |
156 | em->block_start = EXTENT_MAP_INLINE; | 156 | em->block_start = EXTENT_MAP_INLINE; |
157 | em->block_len = (u64)-1; | 157 | em->block_len = (u64)-1; |
158 | ret = btrfs_add_extent_mapping(em_tree, &em, em->start, em->len); | 158 | ret = btrfs_add_extent_mapping(fs_info, em_tree, &em, em->start, em->len); |
159 | if (ret) | 159 | if (ret) |
160 | test_msg("case2 [0 1K]: ret %d\n", ret); | 160 | test_msg("case2 [0 1K]: ret %d\n", ret); |
161 | if (em && | 161 | if (em && |
@@ -201,7 +201,7 @@ static void __test_case_3(struct btrfs_fs_info *fs_info, | |||
201 | em->len = SZ_16K; | 201 | em->len = SZ_16K; |
202 | em->block_start = 0; | 202 | em->block_start = 0; |
203 | em->block_len = SZ_16K; | 203 | em->block_len = SZ_16K; |
204 | ret = btrfs_add_extent_mapping(em_tree, &em, start, len); | 204 | ret = btrfs_add_extent_mapping(fs_info, em_tree, &em, start, len); |
205 | if (ret) | 205 | if (ret) |
206 | test_msg("case3 [0x%llx 0x%llx): ret %d\n", | 206 | test_msg("case3 [0x%llx 0x%llx): ret %d\n", |
207 | start, start + len, ret); | 207 | start, start + len, ret); |
@@ -288,7 +288,7 @@ static void __test_case_4(struct btrfs_fs_info *fs_info, | |||
288 | em->len = SZ_32K; | 288 | em->len = SZ_32K; |
289 | em->block_start = 0; | 289 | em->block_start = 0; |
290 | em->block_len = SZ_32K; | 290 | em->block_len = SZ_32K; |
291 | ret = btrfs_add_extent_mapping(em_tree, &em, start, len); | 291 | ret = btrfs_add_extent_mapping(fs_info, em_tree, &em, start, len); |
292 | if (ret) | 292 | if (ret) |
293 | test_msg("case4 [0x%llx 0x%llx): ret %d\n", | 293 | test_msg("case4 [0x%llx 0x%llx): ret %d\n", |
294 | start, len, ret); | 294 | start, len, ret); |
diff --git a/include/trace/events/btrfs.h b/include/trace/events/btrfs.h index 9be469706d30..d78d8ab4bc86 100644 --- a/include/trace/events/btrfs.h +++ b/include/trace/events/btrfs.h | |||
@@ -256,11 +256,13 @@ TRACE_EVENT_CONDITION(btrfs_get_extent, | |||
256 | 256 | ||
257 | TRACE_EVENT(btrfs_handle_em_exist, | 257 | TRACE_EVENT(btrfs_handle_em_exist, |
258 | 258 | ||
259 | TP_PROTO(const struct extent_map *existing, const struct extent_map *map, u64 start, u64 len), | 259 | TP_PROTO(struct btrfs_fs_info *fs_info, |
260 | const struct extent_map *existing, const struct extent_map *map, | ||
261 | u64 start, u64 len), | ||
260 | 262 | ||
261 | TP_ARGS(existing, map, start, len), | 263 | TP_ARGS(fs_info, existing, map, start, len), |
262 | 264 | ||
263 | TP_STRUCT__entry( | 265 | TP_STRUCT__entry_btrfs( |
264 | __field( u64, e_start ) | 266 | __field( u64, e_start ) |
265 | __field( u64, e_len ) | 267 | __field( u64, e_len ) |
266 | __field( u64, map_start ) | 268 | __field( u64, map_start ) |
@@ -269,7 +271,7 @@ TRACE_EVENT(btrfs_handle_em_exist, | |||
269 | __field( u64, len ) | 271 | __field( u64, len ) |
270 | ), | 272 | ), |
271 | 273 | ||
272 | TP_fast_assign( | 274 | TP_fast_assign_btrfs(fs_info, |
273 | __entry->e_start = existing->start; | 275 | __entry->e_start = existing->start; |
274 | __entry->e_len = existing->len; | 276 | __entry->e_len = existing->len; |
275 | __entry->map_start = map->start; | 277 | __entry->map_start = map->start; |
@@ -278,7 +280,7 @@ TRACE_EVENT(btrfs_handle_em_exist, | |||
278 | __entry->len = len; | 280 | __entry->len = len; |
279 | ), | 281 | ), |
280 | 282 | ||
281 | TP_printk("start=%llu len=%llu " | 283 | TP_printk_btrfs("start=%llu len=%llu " |
282 | "existing(start=%llu len=%llu) " | 284 | "existing(start=%llu len=%llu) " |
283 | "em(start=%llu len=%llu)", | 285 | "em(start=%llu len=%llu)", |
284 | __entry->start, | 286 | __entry->start, |