aboutsummaryrefslogtreecommitdiffstats
path: root/fs/btrfs
diff options
context:
space:
mode:
authorJeff Mahoney <jeffm@suse.com>2016-06-09 17:27:55 -0400
committerDavid Sterba <dsterba@suse.com>2016-07-26 07:53:16 -0400
commitbc074524e123ded281cde25ebc5661910f9679e3 (patch)
treef8231fd35d5cf2838817c40df07c40a1b8f9f911 /fs/btrfs
parentcb001095ca705dcd95f57fe98867e38a4889916d (diff)
btrfs: prefix fsid to all trace events
When using trace events to debug a problem, it's impossible to determine which file system generated a particular event. This patch adds a macro to prefix standard information to the head of a trace event. The extent_state alloc/free events are all that's left without an fs_info available. Signed-off-by: Jeff Mahoney <jeffm@suse.com> Signed-off-by: David Sterba <dsterba@suse.com>
Diffstat (limited to 'fs/btrfs')
-rw-r--r--fs/btrfs/delayed-ref.c9
-rw-r--r--fs/btrfs/extent-tree.c10
-rw-r--r--fs/btrfs/qgroup.c19
-rw-r--r--fs/btrfs/qgroup.h9
-rw-r--r--fs/btrfs/super.c2
5 files changed, 27 insertions, 22 deletions
diff --git a/fs/btrfs/delayed-ref.c b/fs/btrfs/delayed-ref.c
index 08e452599249..b6d210e7a993 100644
--- a/fs/btrfs/delayed-ref.c
+++ b/fs/btrfs/delayed-ref.c
@@ -606,7 +606,8 @@ add_delayed_ref_head(struct btrfs_fs_info *fs_info,
606 qrecord->num_bytes = num_bytes; 606 qrecord->num_bytes = num_bytes;
607 qrecord->old_roots = NULL; 607 qrecord->old_roots = NULL;
608 608
609 qexisting = btrfs_qgroup_insert_dirty_extent(delayed_refs, 609 qexisting = btrfs_qgroup_insert_dirty_extent(fs_info,
610 delayed_refs,
610 qrecord); 611 qrecord);
611 if (qexisting) 612 if (qexisting)
612 kfree(qrecord); 613 kfree(qrecord);
@@ -615,7 +616,7 @@ add_delayed_ref_head(struct btrfs_fs_info *fs_info,
615 spin_lock_init(&head_ref->lock); 616 spin_lock_init(&head_ref->lock);
616 mutex_init(&head_ref->mutex); 617 mutex_init(&head_ref->mutex);
617 618
618 trace_add_delayed_ref_head(ref, head_ref, action); 619 trace_add_delayed_ref_head(fs_info, ref, head_ref, action);
619 620
620 existing = htree_insert(&delayed_refs->href_root, 621 existing = htree_insert(&delayed_refs->href_root,
621 &head_ref->href_node); 622 &head_ref->href_node);
@@ -682,7 +683,7 @@ add_delayed_tree_ref(struct btrfs_fs_info *fs_info,
682 ref->type = BTRFS_TREE_BLOCK_REF_KEY; 683 ref->type = BTRFS_TREE_BLOCK_REF_KEY;
683 full_ref->level = level; 684 full_ref->level = level;
684 685
685 trace_add_delayed_tree_ref(ref, full_ref, action); 686 trace_add_delayed_tree_ref(fs_info, ref, full_ref, action);
686 687
687 ret = add_delayed_ref_tail_merge(trans, delayed_refs, head_ref, ref); 688 ret = add_delayed_ref_tail_merge(trans, delayed_refs, head_ref, ref);
688 689
@@ -739,7 +740,7 @@ add_delayed_data_ref(struct btrfs_fs_info *fs_info,
739 full_ref->objectid = owner; 740 full_ref->objectid = owner;
740 full_ref->offset = offset; 741 full_ref->offset = offset;
741 742
742 trace_add_delayed_data_ref(ref, full_ref, action); 743 trace_add_delayed_data_ref(fs_info, ref, full_ref, action);
743 744
744 ret = add_delayed_ref_tail_merge(trans, delayed_refs, head_ref, ref); 745 ret = add_delayed_ref_tail_merge(trans, delayed_refs, head_ref, ref);
745 746
diff --git a/fs/btrfs/extent-tree.c b/fs/btrfs/extent-tree.c
index 81d83300c99b..73f6dd2cf3cb 100644
--- a/fs/btrfs/extent-tree.c
+++ b/fs/btrfs/extent-tree.c
@@ -2204,7 +2204,7 @@ static int run_delayed_data_ref(struct btrfs_trans_handle *trans,
2204 ins.type = BTRFS_EXTENT_ITEM_KEY; 2204 ins.type = BTRFS_EXTENT_ITEM_KEY;
2205 2205
2206 ref = btrfs_delayed_node_to_data_ref(node); 2206 ref = btrfs_delayed_node_to_data_ref(node);
2207 trace_run_delayed_data_ref(node, ref, node->action); 2207 trace_run_delayed_data_ref(root->fs_info, node, ref, node->action);
2208 2208
2209 if (node->type == BTRFS_SHARED_DATA_REF_KEY) 2209 if (node->type == BTRFS_SHARED_DATA_REF_KEY)
2210 parent = ref->parent; 2210 parent = ref->parent;
@@ -2359,7 +2359,7 @@ static int run_delayed_tree_ref(struct btrfs_trans_handle *trans,
2359 SKINNY_METADATA); 2359 SKINNY_METADATA);
2360 2360
2361 ref = btrfs_delayed_node_to_tree_ref(node); 2361 ref = btrfs_delayed_node_to_tree_ref(node);
2362 trace_run_delayed_tree_ref(node, ref, node->action); 2362 trace_run_delayed_tree_ref(root->fs_info, node, ref, node->action);
2363 2363
2364 if (node->type == BTRFS_SHARED_BLOCK_REF_KEY) 2364 if (node->type == BTRFS_SHARED_BLOCK_REF_KEY)
2365 parent = ref->parent; 2365 parent = ref->parent;
@@ -2423,7 +2423,8 @@ static int run_one_delayed_ref(struct btrfs_trans_handle *trans,
2423 */ 2423 */
2424 BUG_ON(extent_op); 2424 BUG_ON(extent_op);
2425 head = btrfs_delayed_node_to_head(node); 2425 head = btrfs_delayed_node_to_head(node);
2426 trace_run_delayed_ref_head(node, head, node->action); 2426 trace_run_delayed_ref_head(root->fs_info, node, head,
2427 node->action);
2427 2428
2428 if (insert_reserved) { 2429 if (insert_reserved) {
2429 btrfs_pin_extent(root, node->bytenr, 2430 btrfs_pin_extent(root, node->bytenr,
@@ -8542,7 +8543,8 @@ static int record_one_subtree_extent(struct btrfs_trans_handle *trans,
8542 8543
8543 delayed_refs = &trans->transaction->delayed_refs; 8544 delayed_refs = &trans->transaction->delayed_refs;
8544 spin_lock(&delayed_refs->lock); 8545 spin_lock(&delayed_refs->lock);
8545 if (btrfs_qgroup_insert_dirty_extent(delayed_refs, qrecord)) 8546 if (btrfs_qgroup_insert_dirty_extent(trans->root->fs_info,
8547 delayed_refs, qrecord))
8546 kfree(qrecord); 8548 kfree(qrecord);
8547 spin_unlock(&delayed_refs->lock); 8549 spin_unlock(&delayed_refs->lock);
8548 8550
diff --git a/fs/btrfs/qgroup.c b/fs/btrfs/qgroup.c
index 9d4c05b14f6e..13e28d8a7d42 100644
--- a/fs/btrfs/qgroup.c
+++ b/fs/btrfs/qgroup.c
@@ -1453,9 +1453,10 @@ int btrfs_qgroup_prepare_account_extents(struct btrfs_trans_handle *trans,
1453 return ret; 1453 return ret;
1454} 1454}
1455 1455
1456struct btrfs_qgroup_extent_record 1456struct btrfs_qgroup_extent_record *
1457*btrfs_qgroup_insert_dirty_extent(struct btrfs_delayed_ref_root *delayed_refs, 1457btrfs_qgroup_insert_dirty_extent(struct btrfs_fs_info *fs_info,
1458 struct btrfs_qgroup_extent_record *record) 1458 struct btrfs_delayed_ref_root *delayed_refs,
1459 struct btrfs_qgroup_extent_record *record)
1459{ 1460{
1460 struct rb_node **p = &delayed_refs->dirty_extent_root.rb_node; 1461 struct rb_node **p = &delayed_refs->dirty_extent_root.rb_node;
1461 struct rb_node *parent_node = NULL; 1462 struct rb_node *parent_node = NULL;
@@ -1463,7 +1464,7 @@ struct btrfs_qgroup_extent_record
1463 u64 bytenr = record->bytenr; 1464 u64 bytenr = record->bytenr;
1464 1465
1465 assert_spin_locked(&delayed_refs->lock); 1466 assert_spin_locked(&delayed_refs->lock);
1466 trace_btrfs_qgroup_insert_dirty_extent(record); 1467 trace_btrfs_qgroup_insert_dirty_extent(fs_info, record);
1467 1468
1468 while (*p) { 1469 while (*p) {
1469 parent_node = *p; 1470 parent_node = *p;
@@ -1595,8 +1596,8 @@ static int qgroup_update_counters(struct btrfs_fs_info *fs_info,
1595 cur_old_count = btrfs_qgroup_get_old_refcnt(qg, seq); 1596 cur_old_count = btrfs_qgroup_get_old_refcnt(qg, seq);
1596 cur_new_count = btrfs_qgroup_get_new_refcnt(qg, seq); 1597 cur_new_count = btrfs_qgroup_get_new_refcnt(qg, seq);
1597 1598
1598 trace_qgroup_update_counters(qg->qgroupid, cur_old_count, 1599 trace_qgroup_update_counters(fs_info, qg->qgroupid,
1599 cur_new_count); 1600 cur_old_count, cur_new_count);
1600 1601
1601 /* Rfer update part */ 1602 /* Rfer update part */
1602 if (cur_old_count == 0 && cur_new_count > 0) { 1603 if (cur_old_count == 0 && cur_new_count > 0) {
@@ -1687,8 +1688,8 @@ btrfs_qgroup_account_extent(struct btrfs_trans_handle *trans,
1687 goto out_free; 1688 goto out_free;
1688 BUG_ON(!fs_info->quota_root); 1689 BUG_ON(!fs_info->quota_root);
1689 1690
1690 trace_btrfs_qgroup_account_extent(bytenr, num_bytes, nr_old_roots, 1691 trace_btrfs_qgroup_account_extent(fs_info, bytenr, num_bytes,
1691 nr_new_roots); 1692 nr_old_roots, nr_new_roots);
1692 1693
1693 qgroups = ulist_alloc(GFP_NOFS); 1694 qgroups = ulist_alloc(GFP_NOFS);
1694 if (!qgroups) { 1695 if (!qgroups) {
@@ -1759,7 +1760,7 @@ int btrfs_qgroup_account_extents(struct btrfs_trans_handle *trans,
1759 record = rb_entry(node, struct btrfs_qgroup_extent_record, 1760 record = rb_entry(node, struct btrfs_qgroup_extent_record,
1760 node); 1761 node);
1761 1762
1762 trace_btrfs_qgroup_account_extents(record); 1763 trace_btrfs_qgroup_account_extents(fs_info, record);
1763 1764
1764 if (!ret) { 1765 if (!ret) {
1765 /* 1766 /*
diff --git a/fs/btrfs/qgroup.h b/fs/btrfs/qgroup.h
index ecb2c143ef75..710887c06aaf 100644
--- a/fs/btrfs/qgroup.h
+++ b/fs/btrfs/qgroup.h
@@ -63,9 +63,10 @@ void btrfs_free_qgroup_config(struct btrfs_fs_info *fs_info);
63struct btrfs_delayed_extent_op; 63struct btrfs_delayed_extent_op;
64int btrfs_qgroup_prepare_account_extents(struct btrfs_trans_handle *trans, 64int btrfs_qgroup_prepare_account_extents(struct btrfs_trans_handle *trans,
65 struct btrfs_fs_info *fs_info); 65 struct btrfs_fs_info *fs_info);
66struct btrfs_qgroup_extent_record 66struct btrfs_qgroup_extent_record *
67*btrfs_qgroup_insert_dirty_extent(struct btrfs_delayed_ref_root *delayed_refs, 67btrfs_qgroup_insert_dirty_extent(struct btrfs_fs_info *fs_info,
68 struct btrfs_qgroup_extent_record *record); 68 struct btrfs_delayed_ref_root *delayed_refs,
69 struct btrfs_qgroup_extent_record *record);
69int 70int
70btrfs_qgroup_account_extent(struct btrfs_trans_handle *trans, 71btrfs_qgroup_account_extent(struct btrfs_trans_handle *trans,
71 struct btrfs_fs_info *fs_info, 72 struct btrfs_fs_info *fs_info,
@@ -88,7 +89,7 @@ static inline void btrfs_qgroup_free_delayed_ref(struct btrfs_fs_info *fs_info,
88 u64 ref_root, u64 num_bytes) 89 u64 ref_root, u64 num_bytes)
89{ 90{
90 btrfs_qgroup_free_refroot(fs_info, ref_root, num_bytes); 91 btrfs_qgroup_free_refroot(fs_info, ref_root, num_bytes);
91 trace_btrfs_qgroup_free_delayed_ref(ref_root, num_bytes); 92 trace_btrfs_qgroup_free_delayed_ref(fs_info, ref_root, num_bytes);
92} 93}
93void assert_qgroups_uptodate(struct btrfs_trans_handle *trans); 94void assert_qgroups_uptodate(struct btrfs_trans_handle *trans);
94 95
diff --git a/fs/btrfs/super.c b/fs/btrfs/super.c
index 208b15e7a171..d965abbcac8e 100644
--- a/fs/btrfs/super.c
+++ b/fs/btrfs/super.c
@@ -1171,7 +1171,7 @@ int btrfs_sync_fs(struct super_block *sb, int wait)
1171 struct btrfs_fs_info *fs_info = btrfs_sb(sb); 1171 struct btrfs_fs_info *fs_info = btrfs_sb(sb);
1172 struct btrfs_root *root = fs_info->tree_root; 1172 struct btrfs_root *root = fs_info->tree_root;
1173 1173
1174 trace_btrfs_sync_fs(wait); 1174 trace_btrfs_sync_fs(fs_info, wait);
1175 1175
1176 if (!wait) { 1176 if (!wait) {
1177 filemap_flush(fs_info->btree_inode->i_mapping); 1177 filemap_flush(fs_info->btree_inode->i_mapping);