On 13.06.19 17:28, Vladimir Sementsov-Ogievskiy wrote: > 13.06.2019 1:09, Max Reitz wrote: >> Hi, >> >> When we introduced filters, we did it a bit casually. Sure, we talked a >> lot about them before, but that was mostly discussion about where >> implicit filters should be added to the graph (note that we currently >> only have two implicit filters, those being mirror and commit). But in >> the end, we really just designated some drivers filters (Quorum, >> blkdebug, etc.) and added some specifically (throttle, COR), without >> really looking through the block layer to see where issues might occur. >> >> It turns out vast areas of the block layer just don’t know about filters >> and cannot really handle them. Many cases will work in practice, in >> others, well, too bad, you cannot use some feature because some part >> deep inside the block layer looks at your filters and thinks they are >> format nodes. >> >> This is one reason why this series is needed. Over time (since v1), a >> second reason has made its way in: >> >> bs->file is not necessarily the place where a node’s data is stored. >> qcow2 now has external data files, and currently there is no way for the >> general block layer to know that the data is not stored in bs->file. >> Right now, I do not think that has any real consequences (all functions >> that need access to the actual data storage file should only do so as a >> fallback if the driver does not provide some functionality, but qcow2 >> should provide it all), but it still shows that we need some way to let >> the general block layer know about such data files. (Also, I will need >> this for v1 of my “Inquire images’ rotational info” series.) >> >> I won’t go on and on about this series now, I think the patches pretty >> much speak for themselves now. If the cover letter gets too long, >> nobody reads it anyway (see previous versions). >> >> >> *** This series depends on some others. *** >> >> Dependencies: >> - [PATCH 0/4] block: Keep track of parent quiescing >> - [PATCH 0/2] vl: Drain before (block) job cancel when quitting >> - [PATCH v2 0/2] blockdev: Overlays are not snapshots >> >> Based-on: <20190605161118.14544-1-mreitz@redhat.com> >> Based-on: <20190612220839.1374-1-mreitz@redhat.com> >> Based-on: <20190603202236.1342-1-mreitz@redhat.com> > > Could you please export a branch? Sure: https://git.xanclic.moe/XanClic/qemu child-access-functions-v5 Or: https://github.com/XanClic/qemu child-access-functions-v5 (And the base branch is: https://git.xanclic.moe/XanClic/qemu child-access-functions-base https://github.com/XanClic/qemu child-access-functions-base ) >> v5: >> - Split the huge patches 2 and 3 from the previous version into many >> smaller patches to maintain the potential reviewers’ sanity [Vladimir] > > Thank you! In spite of frightening amount of patches, reviewing became a lot > simpler. I had hoped making it exactly 42 patches would make it a bit more welcoming. Again, thanks a lot for reviewing! Max