// we're done, clean up
if (request->got_unsafe) {
request->unsafe_item.remove_myself();
+ request->unsafe_dir_item.remove_myself();
+ signal_cond_list(request->waitfor_safe);
}
request->item.remove_myself();
- mds_requests.erase(tid);
- put_request(request);
+ unregister_request(request);
}
if (unmounting)
mount_cond.Signal();
if (req->got_unsafe) {
lderr(cct) << "kick_requests_closed removing unsafe request " << req->get_tid() << dendl;
req->unsafe_item.remove_myself();
- mds_requests.erase(req->get_tid());
- put_request(req);
+ req->unsafe_dir_item.remove_myself();
+ signal_cond_list(req->waitfor_safe);
+ unregister_request(req);
}
}
}