From: Igor Fedotov Date: Wed, 16 Mar 2022 09:44:33 +0000 (+0300) Subject: os/bluestore: fix improper bluefs log size tracking in volume selector X-Git-Tag: v16.2.11~103^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=b8c099cf65ea972192d79afe95e339bc100cdb81;p=ceph.git os/bluestore: fix improper bluefs log size tracking in volume selector Fixes: https://tracker.ceph.com/issues/54554 Signed-off-by: Igor Fedotov --- diff --git a/src/os/bluestore/BlueFS.cc b/src/os/bluestore/BlueFS.cc index e9c5d7af835e..f44347aa4c97 100644 --- a/src/os/bluestore/BlueFS.cc +++ b/src/os/bluestore/BlueFS.cc @@ -2409,6 +2409,9 @@ void BlueFS::_compact_log_async(std::unique_lock& l) dout(10) << __func__ << " remove 0x" << std::hex << old_log_jump_to << std::dec << " of " << log_file->fnode.extents << dendl; + + vselector->sub_usage(log_file->vselector_hint, log_file->fnode); + uint64_t discarded = 0; mempool::bluefs::vector old_extents; while (discarded < old_log_jump_to) { @@ -2437,8 +2440,6 @@ void BlueFS::_compact_log_async(std::unique_lock& l) ++from; } - vselector->sub_usage(log_file->vselector_hint, log_file->fnode); - // clear the extents from old log file, they are added to new log log_file->fnode.clear_extents(); // swap the log files. New log file is the log file now.