Once we're done with our IO, clear the aio list so that the pinned buffers
are unpinned. This ensures we release memory quickly, even if the
TransContext sticks around for a while (e.g., in the osr q).
Signed-off-by: Sage Weil <sage@redhat.com>
std::lock_guard<std::mutex> l(osr->qlock);
txc->state = TransContext::STATE_IO_DONE;
+ // release aio contexts (including pinned buffers).
+ txc->ioc.running_aios.clear();
+
OpSequencer::q_list_t::iterator p = osr->q.iterator_to(*txc);
while (p != osr->q.begin()) {
--p;