On Sat 17 Oct 2015 08:06:19 PM CEST, Max Reitz wrote: >> + if (blk_get_refcnt(blk) > 1 || >> + (bs && (bs->refcnt > 1 || !QLIST_EMPTY(&bs->parents)))) { >> + error_setg(errp, "Block device %s is being used", device); >> + goto out; >> + } > > I can't think of a way off the top of my head that a BB with a refcount > of one or a BDS with a refcount of one without any parents would not be > monitor-owned, but I don't quite like assuming it just from the refcount > and the parent list anyway.
I agree, I would also like to have a clearer way to do it. I'll try to go over all possible ways to create a BDS and see other cases that I might have missed. At the very list I would like to extend the iotest and make it as comprehensive as possible. > The two patches which are significant for this patch are: > - "blockdev: Keep track of monitor-owned BDS" from the first series > - "blockdev: Add list of monitor-owned BlockBackends" from the second > > Explaining what they do and why they are relevant to this patch doesn't > really seem necessary, but anyway: They add one list for the > monitor-owned BDSs and one for the monitor-owned BBs. Yeah, those would be handy indeed. > It's up to you. It probably works just how you implemented it, and > considering the pace of the "BB and media" series (and other series of > mine in the past year), getting those two series merged may be a > matter of decades. So it's probably best to do it like this for now > and I'll fix it up then... I think I'll first try to go over all possible cases and see what I find. Thanks, Berto