summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--xlators/debug/trace/src/trace.c18
1 files changed, 16 insertions, 2 deletions
diff --git a/xlators/debug/trace/src/trace.c b/xlators/debug/trace/src/trace.c
index 03e92184dcd..555147aec47 100644
--- a/xlators/debug/trace/src/trace.c
+++ b/xlators/debug/trace/src/trace.c
@@ -294,14 +294,17 @@ trace_readdirp_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
int32_t op_ret, int32_t op_errno, gf_dirent_t *buf,
dict_t *xdata)
{
- trace_conf_t *conf = NULL;
+ int count = 0;
+ char statstr[4096] = {0,};
+ char string[4096] = {0,};
+ trace_conf_t *conf = NULL;
+ gf_dirent_t *entry = NULL;
conf = this->private;
if (!conf->log_file && !conf->log_history)
goto out;
if (trace_fop_names[GF_FOP_READDIRP].enabled) {
- char string[4096] = {0,};
snprintf (string, sizeof (string),
"%"PRId64" : gfid=%s op_ret=%d, op_errno=%d",
frame->root->unique, uuid_utoa (frame->local),
@@ -309,6 +312,17 @@ trace_readdirp_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
LOG_ELEMENT (conf, string);
}
+ if (op_ret < 0)
+ goto out;
+
+ list_for_each_entry (entry, &buf->list, list) {
+ count++;
+ TRACE_STAT_TO_STR (&entry->d_stat, statstr);
+ snprintf (string, sizeof (string), "entry no. %d, pargfid=%s, "
+ "bname=%s *buf {%s}", count, uuid_utoa (frame->local),
+ entry->d_name, statstr);
+ LOG_ELEMENT (conf, string);
+ }
out:
TRACE_STACK_UNWIND (readdirp, frame, op_ret, op_errno, buf, xdata);