diff --git a/src/os/bluestore/BlueFS.cc b/src/os/bluestore/BlueFS.cc index 7add76833705f0..dd9a265cf1f33a 100644 --- a/src/os/bluestore/BlueFS.cc +++ b/src/os/bluestore/BlueFS.cc @@ -2437,16 +2437,16 @@ void BlueFS::_compact_log_async_LD_NF_D() //also locks FW for new_writer new_log_writer = _create_writer(new_log); new_log_writer->append(bl); - new_log->lock.lock(); new_log_writer->lock.lock(); + new_log->lock.lock(); // 3. flush r = _flush_special(new_log_writer); ceph_assert(r == 0); // 4. wait _flush_bdev(new_log_writer); - new_log_writer->lock.unlock(); new_log->lock.unlock(); + new_log_writer->lock.unlock(); // 5. update our log fnode // discard first old_log_jump_to extents diff --git a/src/os/bluestore/BlueFS.h b/src/os/bluestore/BlueFS.h index 085b131d0dcc26..b0c4bd5106c1e1 100644 --- a/src/os/bluestore/BlueFS.h +++ b/src/os/bluestore/BlueFS.h @@ -703,13 +703,13 @@ class FitToFastVolumeSelector : public OriginalVolumeSelector { * Column represents last lock taken. * Row represents next lock taken. * - * < | L | D | N | F | W + * > | W | L | D | N | F * -------------|---|---|---|---|--- - * log L | < < - * dirty D | - * nodes N | < - * File F | - * FileWriter W | < < < + * FileWriter W | | > | > | | > + * log L | | > | > | > + * dirty D | | | > + * nodes N | | > + * File F | * * Claim: Deadlock is possible IFF graph contains cycles. */