From c1934a534ea927f5b53612180c15f99ec72e13f9 Mon Sep 17 00:00:00 2001 From: Sage Weil Date: Fri, 3 Apr 2009 13:27:01 -0700 Subject: [PATCH] uclient: fix reply trace --- src/client/Client.cc | 23 +++++++++++++---------- src/messages/MClientReply.h | 10 ++++++---- 2 files changed, 19 insertions(+), 14 deletions(-) diff --git a/src/client/Client.cc b/src/client/Client.cc index 7f64685f5aa1a..fd840a4fd4db9 100644 --- a/src/client/Client.cc +++ b/src/client/Client.cc @@ -555,6 +555,19 @@ Inode* Client::insert_trace(MClientReply *reply, utime_t from, int mds) if (reply->snapbl.length()) update_snap_trace(reply->snapbl); + InodeStat dirst; + DirStat dst; + string dname; + LeaseStat dlease; + InodeStat ist; + + if (reply->head.is_dentry) { + dirst.decode(p); + dst.decode(p); + ::decode(dname, p); + ::decode(dlease, p); + } + Inode *in = 0; if (reply->head.is_target) { InodeStat ist; @@ -563,16 +576,6 @@ Inode* Client::insert_trace(MClientReply *reply, utime_t from, int mds) } if (reply->head.is_dentry) { - InodeStat dirst; - DirStat dst; - string dname; - LeaseStat dlease; - - dirst.decode(p); - dst.decode(p); - ::decode(dname, p); - ::decode(dlease, p); - vinodeno_t vino = dirst.vino; assert(inode_map.count(vino)); Inode *diri = inode_map[vino]; diff --git a/src/messages/MClientReply.h b/src/messages/MClientReply.h index 90cb9ce132028..68cb707eaf6e6 100644 --- a/src/messages/MClientReply.h +++ b/src/messages/MClientReply.h @@ -205,10 +205,12 @@ public: o << " = " << get_result(); if (get_result() <= 0) o << " " << strerror(-get_result()); - if (head.safe) - o << " safe"; - else - o << " unsafe"; + if (head.op & CEPH_MDS_OP_WRITE) { + if (head.safe) + o << " safe"; + else + o << " unsafe"; + } o << ")"; } -- 2.39.5