On Wed, 2018-07-25 at 04:44 +0000, Szwed, Maciej wrote:
I was examining possibility of removing bs_dev layer from blobstore. As this
would simplify code for basic blob/lvol usage, in case of snapshots and clones
it would require whole new approach. Currently bs_dev layer is a basic
mechanism for snapshots and clones interactions. I was thinking about some
other ways we could build that relations w/o bs_dev, but I couldn’t find any
good mechanism which would be simpler (or at least less complicated) than the
current one. Therefore I don’t think that removing bs_dev is a good idea. If
somebody have different thoughts on that or some ideas please let me know.
If removing the bs_dev from the clone/snapshot path doesn't result in a major
simplification, then it isn't worth doing. I thought that it might, since
blob_bs_dev.c could be removed entirely. But you still do need some abstraction
for handling what to do when a blob is thin provisioned and needs to return
zeroes, so maybe that negates any other simplifications. We can leave it low
priority and think about it for awhile.