diff --git a/lib/nvme/nvme_internal.h b/lib/nvme/nvme_internal.h index ccbc11bc4..56c0f0d5d 100644 --- a/lib/nvme/nvme_internal.h +++ b/lib/nvme/nvme_internal.h @@ -169,7 +169,7 @@ struct nvme_request { * Number of children requests still outstanding for this * request which was split into multiple child requests. */ - uint8_t num_children; + uint16_t num_children; uint32_t payload_size; /** diff --git a/lib/nvme/nvme_ns_cmd.c b/lib/nvme/nvme_ns_cmd.c index ed02ca7ba..7f39a71f0 100644 --- a/lib/nvme/nvme_ns_cmd.c +++ b/lib/nvme/nvme_ns_cmd.c @@ -62,6 +62,8 @@ nvme_cb_complete_child(void *child_arg, const struct spdk_nvme_cpl *cpl) static void nvme_request_add_child(struct nvme_request *parent, struct nvme_request *child) { + assert(parent->num_children != UINT16_MAX); + if (parent->num_children == 0) { /* * Defer initialization of the children TAILQ since it falls