diff --git a/lib/nbd/nbd.c b/lib/nbd/nbd.c index f640600b5..9ed5df01f 100644 --- a/lib/nbd/nbd.c +++ b/lib/nbd/nbd.c @@ -228,12 +228,6 @@ _nbd_stop(struct spdk_nbd_disk *nbd) spdk_bdev_close(nbd->bdev_desc); } - if (nbd->dev_fd >= 0) { - ioctl(nbd->dev_fd, NBD_CLEAR_QUE); - ioctl(nbd->dev_fd, NBD_CLEAR_SOCK); - close(nbd->dev_fd); - } - if (nbd->nbd_path) { free(nbd->nbd_path); } @@ -246,6 +240,12 @@ _nbd_stop(struct spdk_nbd_disk *nbd) close(nbd->kernel_sp_fd); } + if (nbd->dev_fd >= 0) { + ioctl(nbd->dev_fd, NBD_CLEAR_QUE); + ioctl(nbd->dev_fd, NBD_CLEAR_SOCK); + close(nbd->dev_fd); + } + if (nbd->nbd_poller) { spdk_poller_unregister(&nbd->nbd_poller); }