Il 07/09/2012 18:11, Kevin Wolf ha scritto:
> I was planning to review it in more detail next week, but I just had a
> quick look. I'm not sure if automatically shutting down the NBD server
> when the guest stops using it is always right (for removable media it
> could even be an eject from the guest),

Yes, the removable media case could be a bit too eager.  Note however
that a guest-triggered eject doesn't do bdrv_close, only a
user-triggered eject does, and that's blocked by bdrv_in_use.

Luckily removable media are usually not too interesting, so a slightly
suboptimal behavior is okay as long as it does not break the important
use cases---mostly migration without shared storage, where also
uninteresting images have to be mirrored or exposed via NBD.  Those
should be covered by bdrv_in_use.

> but introducing a notifier list
> doesn't look too bad. We can probably use it for other things that are
> currently hardcoded in bdrv_close() with some if statements, like
> disabling I/O throttling, cancelling a block job, etc.

Yes, though a lot of these could be moved to "filters" and use whatever
filter-specific method is there (e.g. a filter bdrv_close).  This
circles back to the question of whether bdrv_close kills filters or only
the base image...

Paolo

Reply via email to