diff --git a/lib/bdev/aio/bdev_aio.c b/lib/bdev/aio/bdev_aio.c index 6ba02c1fd..2674de07d 100644 --- a/lib/bdev/aio/bdev_aio.c +++ b/lib/bdev/aio/bdev_aio.c @@ -398,7 +398,10 @@ static void bdev_aio_get_buf_cb(struct spdk_io_channel *ch, struct spdk_bdev_io *bdev_io, bool success) { - assert(success == true); + if (!success) { + spdk_bdev_io_complete(bdev_io, SPDK_BDEV_IO_STATUS_FAILED); + return; + } switch (bdev_io->type) { case SPDK_BDEV_IO_TYPE_READ: diff --git a/lib/bdev/bdev.c b/lib/bdev/bdev.c index d650386fa..4cbeb1a48 100644 --- a/lib/bdev/bdev.c +++ b/lib/bdev/bdev.c @@ -1657,7 +1657,10 @@ static void _spdk_bdev_io_split_get_buf_cb(struct spdk_io_channel *ch, struct spdk_bdev_io *bdev_io, bool success) { - assert(success == true); + if (!success) { + spdk_bdev_io_complete(bdev_io, SPDK_BDEV_IO_STATUS_FAILED); + return; + } _spdk_bdev_io_split(ch, bdev_io); } diff --git a/lib/bdev/crypto/vbdev_crypto.c b/lib/bdev/crypto/vbdev_crypto.c index ca574986c..87737347e 100644 --- a/lib/bdev/crypto/vbdev_crypto.c +++ b/lib/bdev/crypto/vbdev_crypto.c @@ -913,7 +913,10 @@ crypto_read_get_buf_cb(struct spdk_io_channel *ch, struct spdk_bdev_io *bdev_io, struct crypto_io_channel *crypto_ch = spdk_io_channel_get_ctx(ch); int rc; - assert(success == true); + if (!success) { + spdk_bdev_io_complete(bdev_io, SPDK_BDEV_IO_STATUS_FAILED); + return; + } rc = spdk_bdev_readv_blocks(crypto_bdev->base_desc, crypto_ch->base_ch, bdev_io->u.bdev.iovs, bdev_io->u.bdev.iovcnt, bdev_io->u.bdev.offset_blocks, diff --git a/lib/bdev/ftl/bdev_ftl.c b/lib/bdev/ftl/bdev_ftl.c index 28af6e2d9..992b27ad7 100644 --- a/lib/bdev/ftl/bdev_ftl.c +++ b/lib/bdev/ftl/bdev_ftl.c @@ -315,7 +315,11 @@ static void bdev_ftl_get_buf_cb(struct spdk_io_channel *ch, struct spdk_bdev_io *bdev_io, bool success) { - assert(success == true); + if (!success) { + bdev_ftl_complete_io((struct ftl_bdev_io *)bdev_io->driver_ctx, + SPDK_BDEV_IO_STATUS_FAILED); + return; + } int rc = bdev_ftl_readv((struct ftl_bdev *)bdev_io->bdev->ctxt, ch, (struct ftl_bdev_io *)bdev_io->driver_ctx); diff --git a/lib/bdev/iscsi/bdev_iscsi.c b/lib/bdev/iscsi/bdev_iscsi.c index 658f3ef38..0d36ab32e 100644 --- a/lib/bdev/iscsi/bdev_iscsi.c +++ b/lib/bdev/iscsi/bdev_iscsi.c @@ -400,7 +400,10 @@ static void bdev_iscsi_get_buf_cb(struct spdk_io_channel *ch, struct spdk_bdev_io *bdev_io, bool success) { - assert(success == true); + if (!success) { + spdk_bdev_io_complete(bdev_io, SPDK_BDEV_IO_STATUS_FAILED); + return; + } bdev_iscsi_readv((struct bdev_iscsi_lun *)bdev_io->bdev->ctxt, (struct bdev_iscsi_io *)bdev_io->driver_ctx, diff --git a/lib/bdev/lvol/vbdev_lvol.c b/lib/bdev/lvol/vbdev_lvol.c index f2565b517..e8a0fa8e3 100644 --- a/lib/bdev/lvol/vbdev_lvol.c +++ b/lib/bdev/lvol/vbdev_lvol.c @@ -843,7 +843,10 @@ lvol_reset(struct spdk_bdev_io *bdev_io) static void lvol_get_buf_cb(struct spdk_io_channel *ch, struct spdk_bdev_io *bdev_io, bool success) { - assert(success == true); + if (!success) { + spdk_bdev_io_complete(bdev_io, SPDK_BDEV_IO_STATUS_FAILED); + return; + } lvol_read(ch, bdev_io); } diff --git a/lib/bdev/nvme/bdev_nvme.c b/lib/bdev/nvme/bdev_nvme.c index f7b48ac05..6bdc7a73e 100644 --- a/lib/bdev/nvme/bdev_nvme.c +++ b/lib/bdev/nvme/bdev_nvme.c @@ -379,7 +379,10 @@ bdev_nvme_get_buf_cb(struct spdk_io_channel *ch, struct spdk_bdev_io *bdev_io, { int ret; - assert(success == true); + if (!success) { + spdk_bdev_io_complete(bdev_io, SPDK_BDEV_IO_STATUS_FAILED); + return; + } ret = bdev_nvme_readv((struct nvme_bdev *)bdev_io->bdev->ctxt, ch, diff --git a/lib/bdev/ocf/vbdev_ocf.c b/lib/bdev/ocf/vbdev_ocf.c index 341d93e20..380b21398 100644 --- a/lib/bdev/ocf/vbdev_ocf.c +++ b/lib/bdev/ocf/vbdev_ocf.c @@ -296,7 +296,7 @@ static void io_handle(struct spdk_io_channel *ch, struct spdk_bdev_io *bdev_io) { struct vbdev_ocf *vbdev = bdev_io->bdev->ctxt; - struct ocf_io *io; + struct ocf_io *io = NULL; struct bdev_ocf_data *data = NULL; struct vbdev_ocf_qcxt *qctx = spdk_io_channel_get_ctx(ch); int err; @@ -345,7 +345,10 @@ static void vbdev_ocf_get_buf_cb(struct spdk_io_channel *ch, struct spdk_bdev_io *bdev_io, bool success) { - assert(success == true); + if (!success) { + spdk_bdev_io_complete(bdev_io, SPDK_BDEV_IO_STATUS_FAILED); + return; + } io_handle(ch, bdev_io); } diff --git a/lib/bdev/passthru/vbdev_passthru.c b/lib/bdev/passthru/vbdev_passthru.c index 43981b8f2..f97810d49 100644 --- a/lib/bdev/passthru/vbdev_passthru.c +++ b/lib/bdev/passthru/vbdev_passthru.c @@ -217,7 +217,10 @@ pt_read_get_buf_cb(struct spdk_io_channel *ch, struct spdk_bdev_io *bdev_io, boo pt_bdev); struct pt_io_channel *pt_ch = spdk_io_channel_get_ctx(ch); - assert(success == true); + if (!success) { + spdk_bdev_io_complete(bdev_io, SPDK_BDEV_IO_STATUS_FAILED); + return; + } spdk_bdev_readv_blocks(pt_node->base_desc, pt_ch->base_ch, bdev_io->u.bdev.iovs, bdev_io->u.bdev.iovcnt, bdev_io->u.bdev.offset_blocks, diff --git a/lib/bdev/pmem/bdev_pmem.c b/lib/bdev/pmem/bdev_pmem.c index 87aa5d6a7..b1b94ae87 100644 --- a/lib/bdev/pmem/bdev_pmem.c +++ b/lib/bdev/pmem/bdev_pmem.c @@ -187,7 +187,10 @@ static void bdev_pmem_io_get_buf_cb(struct spdk_io_channel *channel, struct spdk_bdev_io *bdev_io, bool success) { - assert(success == true); + if (!success) { + spdk_bdev_io_complete(bdev_io, SPDK_BDEV_IO_STATUS_FAILED); + return; + } bdev_pmem_submit_io(bdev_io, bdev_io->bdev->ctxt, diff --git a/lib/bdev/raid/bdev_raid.c b/lib/bdev/raid/bdev_raid.c index 4842bf09b..687dd1d59 100644 --- a/lib/bdev/raid/bdev_raid.c +++ b/lib/bdev/raid/bdev_raid.c @@ -607,7 +607,10 @@ static void raid_bdev_get_buf_cb(struct spdk_io_channel *ch, struct spdk_bdev_io *bdev_io, bool success) { - assert(success == true); + if (!success) { + spdk_bdev_io_complete(bdev_io, SPDK_BDEV_IO_STATUS_FAILED); + return; + } raid_bdev_start_rw_request(ch, bdev_io); } diff --git a/lib/bdev/rbd/bdev_rbd.c b/lib/bdev/rbd/bdev_rbd.c index 07185a1db..3d4ba330d 100644 --- a/lib/bdev/rbd/bdev_rbd.c +++ b/lib/bdev/rbd/bdev_rbd.c @@ -379,7 +379,10 @@ bdev_rbd_get_buf_cb(struct spdk_io_channel *ch, struct spdk_bdev_io *bdev_io, { int ret; - assert(success == true); + if (!success) { + spdk_bdev_io_complete(bdev_io, SPDK_BDEV_IO_STATUS_FAILED); + return; + } ret = bdev_rbd_rw(bdev_io->bdev->ctxt, ch, diff --git a/lib/bdev/virtio/bdev_virtio_blk.c b/lib/bdev/virtio/bdev_virtio_blk.c index 31e1e5e3a..b5ce6c7e8 100644 --- a/lib/bdev/virtio/bdev_virtio_blk.c +++ b/lib/bdev/virtio/bdev_virtio_blk.c @@ -187,7 +187,10 @@ static void bdev_virtio_get_buf_cb(struct spdk_io_channel *ch, struct spdk_bdev_io *bdev_io, bool success) { - assert(success == true); + if (!success) { + spdk_bdev_io_complete(bdev_io, SPDK_BDEV_IO_STATUS_FAILED); + return; + } bdev_virtio_command(ch, bdev_io); } diff --git a/lib/bdev/virtio/bdev_virtio_scsi.c b/lib/bdev/virtio/bdev_virtio_scsi.c index b39cd64f9..5b083b314 100644 --- a/lib/bdev/virtio/bdev_virtio_scsi.c +++ b/lib/bdev/virtio/bdev_virtio_scsi.c @@ -587,7 +587,10 @@ bdev_virtio_unmap(struct spdk_io_channel *ch, struct spdk_bdev_io *bdev_io, bool uint64_t offset_blocks, num_blocks; uint16_t cmd_len; - assert(success == true); + if (!success) { + spdk_bdev_io_complete(bdev_io, SPDK_BDEV_IO_STATUS_FAILED); + return; + } buf = bdev_io->u.bdev.iovs[0].iov_base; @@ -628,7 +631,10 @@ static void bdev_virtio_get_buf_cb(struct spdk_io_channel *ch, struct spdk_bdev_io *bdev_io, bool success) { - assert(success == true); + if (!success) { + spdk_bdev_io_complete(bdev_io, SPDK_BDEV_IO_STATUS_FAILED); + return; + } bdev_virtio_rw(ch, bdev_io); }