os/bluestore/BlueFS: Before reap ioct, it should wait io complete.

When change write mode of FileWrite(in _flush_range) from buffer to
direct. osd met segment fault.
This because call _close_writer don't check related ios whether
complete.

Signed-off-by: Jianpeng Ma <jianpeng.ma@intel.com>
This commit is contained in:
Jianpeng Ma 2016-03-18 00:18:48 +08:00
parent 599d4eaaaf
commit 30e0f92074

View File

@ -1307,6 +1307,7 @@ void BlueFS::_close_writer(FileWriter *h)
{
dout(10) << __func__ << " " << h << dendl;
for (unsigned i=0; i<bdev.size(); ++i) {
h->iocv[i]->aio_wait();
bdev[i]->queue_reap_ioc(h->iocv[i]);
}
h->iocv.clear();