nbd: a BlockExport always has a BlockBackend
exp->common.blk cannot be NULL, nbd_export_delete() is only called (through a bottom half) from blk_exp_unref() and in turn that can only happen after blk_exp_add() has asserted exp->blk != NULL. Reviewed-by: Eric Blake <eblake@redhat.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
This commit is contained in:
parent
000eebcfe8
commit
dd5b6780f7
14
nbd/server.c
14
nbd/server.c
@ -1847,15 +1847,13 @@ static void nbd_export_delete(BlockExport *blk_exp)
|
||||
g_free(exp->description);
|
||||
exp->description = NULL;
|
||||
|
||||
if (exp->common.blk) {
|
||||
if (exp->eject_notifier_blk) {
|
||||
notifier_remove(&exp->eject_notifier);
|
||||
blk_unref(exp->eject_notifier_blk);
|
||||
}
|
||||
blk_remove_aio_context_notifier(exp->common.blk, blk_aio_attached,
|
||||
blk_aio_detach, exp);
|
||||
blk_set_disable_request_queuing(exp->common.blk, false);
|
||||
if (exp->eject_notifier_blk) {
|
||||
notifier_remove(&exp->eject_notifier);
|
||||
blk_unref(exp->eject_notifier_blk);
|
||||
}
|
||||
blk_remove_aio_context_notifier(exp->common.blk, blk_aio_attached,
|
||||
blk_aio_detach, exp);
|
||||
blk_set_disable_request_queuing(exp->common.blk, false);
|
||||
|
||||
for (i = 0; i < exp->nr_export_bitmaps; i++) {
|
||||
bdrv_dirty_bitmap_set_busy(exp->export_bitmaps[i], false);
|
||||
|
Loading…
Reference in New Issue
Block a user