if (inode_map.count(vino)) in = inode_map[vino];
if (!in) {
dout(5) << "handle_caps don't have vino " << vino << dendl;
- delete m;
+ m->put();
return;
}
if (in->caps.count(mds) == 0) {
dout(5) << "handle_caps don't have " << *in << " cap on mds" << mds << dendl;
- delete m;
+ m->put();
return;
}
case CEPH_CAP_OP_GRANT: return handle_cap_grant(in, mds, cap, m);
case CEPH_CAP_OP_FLUSH_ACK: return handle_cap_flush_ack(in, mds, cap, m);
default:
- delete m;
+ m->put();
}
}
<< ", keeping exporting_issued " << ccap_string(in->exporting_issued)
<< " mseq " << in->exporting_mseq << " by mds" << in->exporting_mds << dendl;
}
- delete m;
+ m->put();
}
void Client::handle_cap_export(Inode *in, MClientCaps *m)
remove_cap(in, mds);
- delete m;
+ m->put();
}
void Client::handle_cap_trunc(Inode *in, MClientCaps *m)
}
in->reported_size = in->size = m->get_size();
- delete m;
+ m->put();
}
void Client::handle_cap_flush_ack(Inode *in, int mds, InodeCap *cap, MClientCaps *m)
}
}
- delete m;
+ m->put();
}
// we may not have it if we send multiple FLUSHSNAP requests and (got multiple FLUSHEDSNAPs back)
}
- delete m;
+ m->put();
}
if (new_caps)
signal_cond_list(in->waitfor_caps);
- delete m;
+ m->put();
}
CInode *head_in = mdcache->get_inode(m->get_ino());
if (!head_in) {
dout(7) << "handle_client_caps on unknown ino " << m->get_ino() << ", dropping" << dendl;
- delete m;
+ m->put();
return;
}
cap = in->get_client_cap(client);
if (!cap) {
dout(7) << "handle_client_caps no cap for client" << client << " on " << *in << dendl;
- delete m;
+ m->put();
return;
}
assert(cap);
if (ceph_seq_cmp(m->get_mseq(), cap->get_mseq()) < 0) {
dout(7) << "handle_client_caps mseq " << m->get_mseq() << " < " << cap->get_mseq()
<< ", dropping" << dendl;
- delete m;
+ m->put();
return;
}
}
out:
- delete m;
+ m->put();
}
void Locker::process_cap_update(MDRequest *mdr, client_t client,