snapshot information in snaptrace is only used by head inodes
Signed-off-by: Yan, Zheng <zyan@redhat.com>
//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) {