On Mon, Jan 11, 2010 at 03:11:52PM +0100, Kevin Wolf wrote: > More or less the same hack, just in cleaner? Or trying to fundamentally > change things? I think you haven't answered yet to what I said in the > thread of my original hack. I'm quoting it here for convenience:
Well, not dealing with the format list in raw, but rather in block.c > > Ok, if you start talking about layering, we can have a fundamental > > discussion on this topic and why the layering is broken anyway. > > Logically, we have image formats like qcow2, VMDK and raw, and they are > > stored in files, on CD-ROMs or general block devices. From a layering > > perspective, it is wrong to include the latter in the raw format driver > > in the first place. > > Actually, I think the differentiation between raw files and host_* is at > the same level as protocols are. Probably they should be implemented > very similarly. > > Do you think it's possible/worth the effort to try putting things > straight here? So what you want is basically: - hdev_* and file as protocols in addition to nbd/ftp/http/.. - a raw image format that can be used ontop of any protocol instead of an image format That would indeed be a much better, not to say actually logical layering. The raw image format would be more or less a no-op just stacking ontop of the protocol. If we can find a way to implement this efficiently it might be the way to go.