block: add missed block_acct_setup with new block device init procedure
commit62a6c300f18a9f6994baf6d767985425d48de427
authorDenis V. Lunev <den@openvz.org>
Wed, 24 Aug 2022 09:50:44 +0000 (24 11:50 +0200)
committerKevin Wolf <kwolf@redhat.com>
Fri, 30 Sep 2022 16:42:34 +0000 (30 18:42 +0200)
tree5fdcaf0db29e786be32154f6ed23b940c3faccef
parentb2aaf354773417f034fdc1a56cdb76ad79de6e19
block: add missed block_acct_setup with new block device init procedure

Commit 5f76a7aac156ca75680dad5df4a385fd0b58f6b1 is looking harmless from
the first glance, but it has changed things a lot. 'libvirt' uses it to
detect that it should follow new initialization way and this changes
things considerably. With this procedure followed, blockdev_init() is
not called anymore and thus block_acct_setup() helper is not called.

This means in particular that defaults for block accounting statistics
are changed and account_invalid/account_failed are actually initialized
as false instead of true originally.

This commit changes things to match original world. There are the following
constraints:
* new default value in block_acct_init() is set to true
* block_acct_setup() inside blockdev_init() is called before
  blkconf_apply_backend_options()
* thus newly created option in block device properties has precedence if
  specified

Signed-off-by: Denis V. Lunev <den@openvz.org>
Reviewed-by: Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>
CC: Peter Krempa <pkrempa@redhat.com>
CC: Markus Armbruster <armbru@redhat.com>
CC: John Snow <jsnow@redhat.com>
CC: Kevin Wolf <kwolf@redhat.com>
CC: Hanna Reitz <hreitz@redhat.com>
Message-Id: <20220824095044.166009-3-den@openvz.org>
Reviewed-by: Kevin Wolf <kwolf@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
block/accounting.c
hw/block/block.c
include/hw/block/block.h
tests/qemu-iotests/172.out
tests/qemu-iotests/227.out