From: Sage Weil Date: Fri, 26 May 2017 20:24:57 +0000 (-0400) Subject: os/bluestore: fix fsck deferred_replay X-Git-Tag: v12.1.0~87^2~1^2~8 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=811c38ed6bd7d11e196c848e19d6a46cc383d45d;p=ceph.git os/bluestore: fix fsck deferred_replay _deferred_replay needs the kv_sync_thread to complete IOs; start them just for that, but then shut them down again. (We might revisit that later if/when fsck does any sort of repair.) Signed-off-by: Sage Weil --- diff --git a/src/os/bluestore/BlueStore.cc b/src/os/bluestore/BlueStore.cc index 087b5c37897e..bbff5d607f29 100644 --- a/src/os/bluestore/BlueStore.cc +++ b/src/os/bluestore/BlueStore.cc @@ -5216,7 +5216,17 @@ int BlueStore::fsck(bool deep) mempool_thread.init(); + // we need finishrs and kv_sync_thread *just* for replay. + for (auto f : finishers) { + f->start(); + } + kv_sync_thread.create("bstore_kv_sync"); r = _deferred_replay(); + _kv_stop(); + for (auto f : finishers) { + f->wait_for_empty(); + f->stop(); + } if (r < 0) goto out_scan;