From: Sage Weil Date: Thu, 23 Jun 2016 15:23:46 +0000 (-0400) Subject: os/bluestore/BlueFS: use existing IOContext for _write_super X-Git-Tag: ses5-milestone5~545^2~5 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=ff668f2cf968d1e463c00f874b9732d280f1e461;p=ceph.git os/bluestore/BlueFS: use existing IOContext for _write_super We need to be careful with IOContext destruction racing with the bdev io completion thread. Signed-off-by: Sage Weil --- diff --git a/src/os/bluestore/BlueFS.cc b/src/os/bluestore/BlueFS.cc index aff880416607..5afc5d260f7c 100644 --- a/src/os/bluestore/BlueFS.cc +++ b/src/os/bluestore/BlueFS.cc @@ -406,10 +406,9 @@ int BlueFS::_write_super() assert(bl.length() <= get_super_length()); bl.append_zero(get_super_length() - bl.length()); - IOContext ioc(NULL); - bdev[BDEV_DB]->aio_write(get_super_offset(), bl, &ioc, false); - bdev[BDEV_DB]->aio_submit(&ioc); - ioc.aio_wait(); + bdev[BDEV_DB]->aio_write(get_super_offset(), bl, ioc[BDEV_DB], false); + bdev[BDEV_DB]->aio_submit(ioc[BDEV_DB]); + ioc[BDEV_DB]->aio_wait(); dout(20) << __func__ << " v " << super.version << " crc 0x" << std::hex << crc << " offset 0x" << get_super_offset() << std::dec