This can happen if we write a journal but no events.
Reported-by: Somnath Roy <somnath.roy@sandisk.com>
Reported-by: Ma, Jianpeng <jianpeng.ma@intel.com>
Signed-off-by: Sage Weil <sage@redhat.com>
(cherry picked from commit
57778e2c577c1e1bbf9525232720a2994fa36abc)
assert(aio_lock.is_locked());
dout(20) << "check_aio_completion" << dendl;
- bool completed_something = false;
+ bool completed_something = false, signal = false;
uint64_t new_journaled_seq = 0;
list<aio_info>::iterator p = aio_queue.begin();
aio_num--;
aio_bytes -= p->len;
aio_queue.erase(p++);
+ signal = true;
}
if (completed_something) {
queue_completions_thru(journaled_seq);
}
}
-
+ }
+ if (signal) {
// maybe write queue was waiting for aio count to drop?
aio_cond.Signal();
}