From: Yan, Zheng Date: Tue, 23 Dec 2014 07:09:38 +0000 (+0800) Subject: mds: avoid sending snaptrace for snapshot inodes X-Git-Tag: v0.93~87^2~19 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=d8e3ce8a1fc0a79273a61104d7b38025a3448abd;p=ceph.git mds: avoid sending snaptrace for snapshot inodes snapshot information in snaptrace is only used by head inodes Signed-off-by: Yan, Zheng --- diff --git a/src/mds/Server.cc b/src/mds/Server.cc index 3af913259ad8..c36e40029068 100644 --- a/src/mds/Server.cc +++ b/src/mds/Server.cc @@ -1152,13 +1152,15 @@ void Server::set_trace_dist(Session *session, MClientReply *reply, //assert((bool)dn == (bool)dentry_wanted); // not true for snapshot lookups // realm - SnapRealm *realm = 0; - if (in) - realm = in->find_snaprealm(); - else - realm = dn->get_dir()->get_inode()->find_snaprealm(); - reply->snapbl = realm->get_snap_trace(); - dout(10) << "set_trace_dist snaprealm " << *realm << " len=" << reply->snapbl.length() << dendl; + if (snapid == CEPH_NOSNAP) { + SnapRealm *realm; + if (in) + realm = in->find_snaprealm(); + else + realm = dn->get_dir()->get_inode()->find_snaprealm(); + reply->snapbl = realm->get_snap_trace(); + dout(10) << "set_trace_dist snaprealm " << *realm << " len=" << reply->snapbl.length() << dendl; + } // dir + dentry? if (dn) {