|
From: | Manos Pitsidianakis |
Subject: | Re: [Qemu-block] [Qemu-devel] [PATCH v4 0/4] block: Block driver callbacks fixes |
Date: | Wed, 12 Jul 2017 11:10:22 +0300 |
User-agent: | NeoMutt/20170609-57-1e93be (1.8.3) |
On Wed, Jul 12, 2017 at 09:49:20AM +0200, Markus Armbruster wrote:
Manos Pitsidianakis <address@hidden> writes:This series makes implementing some of the bdrv_* callbacks easier for block filters by passing requests to bs->file if bs->drv doesn't implement it instead of failing, and adding default bdrv_co_get_block_status() implementations. This is based against Kevin Wolf's block branch, commit da4bd74d2450ab72a7c26bbabb10c6a287dd043eHaven't seen BlockDriver member is_filter before. Interesting. It's documentation /* set to true if the BlockDriver is a block filter */ bool is_filter; is seriously lacking. What does it *mean* to be a block filter? Which block layer facilities are affected, and how?
Currently it is only used in bdrv_recurse_is_first_non_filter.
Observation: driver "raw" is filter-like in the sense that all it does is pass along method arguments and results. Can't say whether that makes it a filter in the sense of is_filter, because "the sense of is_filter" is nebulous to me :)
I'm not very acquainted with raw, so I can't really comment. But the drivers I'm working on, throttle and before write notifier have that exact semantic, ie they do something when IO is intercepted and pass everything to the BDSes below. There was a mini discussion about raw and filters in the previous version's thread.
I might add documentation to block_int.h in the future. When I first read it it felt nebulous to me too.
signature.asc
Description: PGP signature
[Prev in Thread] | Current Thread | [Next in Thread] |