]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
os/bluestore/BlueFS: Before reap ioct, it should wait io complete. 8178/head
authorJianpeng Ma <jianpeng.ma@intel.com>
Thu, 17 Mar 2016 16:18:48 +0000 (00:18 +0800)
committerJianpeng Ma <jianpeng.ma@intel.com>
Thu, 17 Mar 2016 16:18:48 +0000 (00:18 +0800)
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>
src/os/bluestore/BlueFS.cc

index 0fbc8c97d0cb1bb21028789823908912e05a5a97..8a9118fc478273ab50fdb799aa5878fa39c64a73 100644 (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();