]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
uclient: fix reply trace
authorSage Weil <sage@newdream.net>
Fri, 3 Apr 2009 20:27:01 +0000 (13:27 -0700)
committerSage Weil <sage@newdream.net>
Fri, 3 Apr 2009 20:27:01 +0000 (13:27 -0700)
src/client/Client.cc
src/messages/MClientReply.h

index 7f64685f5aa1a10527445efdb1a160eb2292bb20..fd840a4fd4db9c50f0947acbd10142c02ccac2a8 100644 (file)
@@ -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];
index 90cb9ce13202820164f9bdb30bce981b8a411efb..68cb707eaf6e636d857c493a8e3f3e32033a024a 100644 (file)
@@ -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 << ")";
   }