]> git.apps.os.sepia.ceph.com Git - ceph-ci.git/commit
os/bluestore/bluefs: Fix improper vselector tracking in _flush_special()
authorAdam Kupczyk <akupczyk@redhat.com>
Wed, 9 Feb 2022 15:19:56 +0000 (16:19 +0100)
committerAdam Kupczyk <akupczyk@redhat.com>
Mon, 14 Feb 2022 15:59:03 +0000 (16:59 +0100)
commit4bc0f61d23299724fad2d8e6f2858734f1db6e5a
tree44bfb2b06d4e5f6d803c48affc8f8ee81c9f2398
parente883dc3b8274f8cc02cc3a46224cdbf14dd00c74
os/bluestore/bluefs: Fix improper vselector tracking in _flush_special()

Moves vselector size tracking outside _flush_special().
Function _compact_log_async...() updated sizes twice.
Problem could not be solved by making second modification of size just update,
as it will possibly disrupt vselector consistency check (_vselector_check()).
Feature to track vselector consistency relies on the fact that either log.lock or nodes.lock
are taken when the check is performed. Which is not true for _compact_log_async...().

Now _flush_special does not update vselector sizes by itself but leaves the update to
the caller.

Fixes: https://tracker.ceph.com/issues/54248
Signed-off-by: Adam Kupczyk <akupczyk@redhat.com>
src/os/bluestore/BlueFS.cc
src/os/bluestore/BlueFS.h