if (cap->is_new())
in->remove_client_cap(q->first);
}
+ in->put(CInode::PIN_IMPORTINGCAPS);
}
for (map<client_t,entity_inst_t>::iterator p = stat.client_map.begin();
p != stat.client_map.end();
q->second.mseq - 1, it->second.peer, CEPH_CAP_FLAG_AUTH);
}
p->second.clear();
+ in->replica_caps_wanted = 0;
}
for (map<client_t,entity_inst_t>::iterator p = it->second.client_map.begin();
p != it->second.client_map.end();
// re-eval imported caps
for (map<CInode*, map<client_t,Capability::Export> >::iterator p = peer_exports.begin();
p != peer_exports.end();
- ++p)
+ ++p) {
if (p->first->is_auth())
mds->locker->eval(p->first, CEPH_CAP_LOCKS, true);
+ p->first->put(CInode::PIN_IMPORTINGCAPS);
+ }
// send pending import_maps?
mds->mdcache->maybe_send_pending_resolves();
}
}
- in->replica_caps_wanted = 0;
- in->put(CInode::PIN_IMPORTINGCAPS);
+ if (peer >= 0) {
+ in->replica_caps_wanted = 0;
+ in->put(CInode::PIN_IMPORTINGCAPS);
+ }
}
int Migrator::decode_import_dir(bufferlist::iterator& blp,