OSDN Git Service

block: Make filter drivers use child_of_bds
authorMax Reitz <mreitz@redhat.com>
Wed, 13 May 2020 11:05:36 +0000 (13:05 +0200)
committerKevin Wolf <kwolf@redhat.com>
Mon, 18 May 2020 17:05:25 +0000 (19:05 +0200)
commitb3af2af43b2bf85191cf40fa84b33df1268a08fd
tree764c8dd694aaaafb665d09bf32722dd5bb652286
parent8b1869daad17f313bf9a68fd3275448df0ecb7fb
block: Make filter drivers use child_of_bds

Note that some filters have secondary children, namely blkverify (the
image to be verified) and blklogwrites (the log).  This patch does not
touch those children.

Note that for blkverify, the filtered child should not be format-probed.
While there is nothing enforcing this here, in practice, it will not be:
blkverify implements .bdrv_file_open.  The block layer ensures (and in
fact, asserts) that BDRV_O_PROTOCOL is set for every BDS whose driver
implements .bdrv_file_open.  This flag will then be bequeathed to
blkverify's children, and they will thus (by default) not be probed
either.

("By default" refers to the fact that blkverify's other child (the
non-filtered one) will have BDRV_O_PROTOCOL force-unset, because that is
what happens for all non-filtered children of non-format drivers.)

Signed-off-by: Max Reitz <mreitz@redhat.com>
Message-Id: <20200513110544.176672-27-mreitz@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
block/blkdebug.c
block/blklogwrites.c
block/blkreplay.c
block/blkverify.c
block/copy-on-read.c
block/filter-compress.c
block/replication.c
block/throttle.c