]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.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>
Thu, 17 Feb 2022 18:42:13 +0000 (19:42 +0100)
commit8266845e5821a4f209a17871ca45643334345da0
tree936055386bbfa47d12832ffb28f9573ca4ea4256
parentc401387dcc5977cc863b8ca52dd4462c3d1ed76d
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>
(cherry picked from commit 4bc0f61d23299724fad2d8e6f2858734f1db6e5a)
src/os/bluestore/BlueFS.cc
src/os/bluestore/BlueFS.h