scoutfs: add item deletion tracing

Add some traces for item deletion functions with their return values.

Signed-off-by: Zach Brown <zab@versity.com>
This commit is contained in:
Zach Brown
2018-03-27 12:46:22 -07:00
committed by Mark Swan
parent 62e26c5d96
commit 5001631dd9
2 changed files with 27 additions and 10 deletions

View File

@@ -1343,7 +1343,7 @@ int scoutfs_item_delete(struct super_block *sb, struct scoutfs_key *key,
(ret = scoutfs_manifest_read_items(sb, key, &lock->start,
&lock->end)) == 0);
trace_scoutfs_item_delete_ret(sb, ret);
trace_scoutfs_item_delete(sb, key, ret);
return ret;
}
@@ -1404,12 +1404,16 @@ int scoutfs_item_delete_save(struct super_block *sb,
bool was_dirty;
int ret;
if (WARN_ON_ONCE(!lock_coverage(lock, key, DLM_LOCK_EX)))
return -EINVAL;
if (WARN_ON_ONCE(!lock_coverage(lock, key, DLM_LOCK_EX))) {
ret = -EINVAL;
goto out;
}
del = alloc_item(sb, key, NULL);
if (!del)
return -ENOMEM;
if (!del) {
ret = -ENOMEM;
goto out;
}
do {
spin_lock_irqsave(&cac->lock, flags);
@@ -1440,7 +1444,8 @@ int scoutfs_item_delete_save(struct super_block *sb,
&lock->end)) == 0);
free_item(sb, del);
out:
trace_scoutfs_item_delete_save(sb, key, ret);
return ret;
}

View File

@@ -227,22 +227,34 @@ TRACE_EVENT(scoutfs_dec_end_io,
__entry->args, __entry->in_flight, __entry->err)
);
TRACE_EVENT(scoutfs_item_delete_ret,
TP_PROTO(struct super_block *sb, int ret),
DECLARE_EVENT_CLASS(scoutfs_key_ret_class,
TP_PROTO(struct super_block *sb, struct scoutfs_key *key, int ret),
TP_ARGS(sb, ret),
TP_ARGS(sb, key, ret),
TP_STRUCT__entry(
__field(__u64, fsid)
__field_struct(struct scoutfs_key, key)
__field(int, ret)
),
TP_fast_assign(
__entry->fsid = FSID_ARG(sb);
__entry->key = *key;
__entry->ret = ret;
),
TP_printk(FSID_FMT" ret %d", __entry->fsid, __entry->ret)
TP_printk("fsid "FSID_FMT" key "SK_FMT" ret %d",
__entry->fsid, SK_ARG(&__entry->key), __entry->ret)
);
DEFINE_EVENT(scoutfs_key_ret_class, scoutfs_item_delete,
TP_PROTO(struct super_block *sb, struct scoutfs_key *key, int ret),
TP_ARGS(sb, key, ret)
);
DEFINE_EVENT(scoutfs_key_ret_class, scoutfs_item_delete_save,
TP_PROTO(struct super_block *sb, struct scoutfs_key *key, int ret),
TP_ARGS(sb, key, ret)
);
TRACE_EVENT(scoutfs_item_dirty_ret,