Signed-off-by: Yan, Zheng <zheng.z.yan@intel.com>
dout(7) << "request_finish " << *mdr << dendl;
// slave finisher?
- if (mdr->more()->slave_commit) {
+ if (mdr->has_more() && mdr->more()->slave_commit) {
Context *fin = mdr->more()->slave_commit;
mdr->more()->slave_commit = 0;
fin->complete(0); // this must re-call request_finish.
void MDCache::request_drop_foreign_locks(MDRequest *mdr)
{
+ if (!mdr->has_more())
+ return;
+
// clean up slaves
// (will implicitly drop remote dn pins)
for (set<int>::iterator p = mdr->more()->slaves.begin();