> >> Filters would be implemented as BlockDrivers, i.e. you could > >> implement > >> .bdrv_co_write() in a filter to intercept all writes to an image. > > > > I am quite unsure if that make things easier. > > At least it would make for a much cleaner design compared to putting code > for every feature you can think of into bdrv_co_do_readv/writev().
So if you want to add a filter, you simply modify bs->drv to point to the filter?