From ff668f2cf968d1e463c00f874b9732d280f1e461 Mon Sep 17 00:00:00 2001 From: Sage Weil Date: Thu, 23 Jun 2016 11:23:46 -0400 Subject: [PATCH] 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 --- src/os/bluestore/BlueFS.cc | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) 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 -- 2.47.3