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