This is important when you have:
* sub-op A finishes and resumes parent
* parent kills all sub-ops (including sub-op A)
Signed-off-by: Patrick Donnelly <pdonnell@redhat.com>
{
dout(15) << "request_cleanup " << *mdr << dendl;
+ mdr->dead = true;
+
if (mdr->has_more()) {
if (mdr->more()->is_ambiguous_auth)
mdr->clear_ambiguous_auth();
void MDCache::request_kill(const MDRequestRef& mdr)
{
- if (mdr->killed) {
+ if (mdr->killed || mdr->dead) {
/* ignore duplicate kills */
return;
}
bool committing = false;
bool aborted = false;
bool killed = false;
+ bool dead = false;
// for applying projected inode changes
std::set<MDSCacheObject*> projected_nodes;