numam-spdk/lib/blob
Jim Harris c5d80a8bc3 blob: avoid recursion when split IO immmediately complete
In some scenarios, a split IO can immediately complete.  For
example, a very large unmap operation to a newly thin-provisioned
blob has no operations to perform, so the batch for its operation
immediately completes.

But if it immediately completes, we can't recursively submit
the next split IO.  So use variables in the context structure
to detect when an operation immediately completes, to allow
it to unwind and submit the next operation without recursing.

Fixes issue #2347.

Signed-off-by: Jim Harris <james.r.harris@intel.com>
Change-Id: I8e4c121190c7d08152aa8de20cf6abc55b5edc46
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/11388
Community-CI: Broadcom CI <spdk-ci.pdl@broadcom.com>
Community-CI: Mellanox Build Bot
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Ben Walker <benjamin.walker@intel.com>
Reviewed-by: Konrad Sztyber <konrad.sztyber@intel.com>
2022-02-07 17:40:07 +00:00
..
blob_bs_dev.c blob: use uint64_t for unmap and write_zeroes lba count 2021-10-14 08:17:16 +00:00
blobstore.c blob: avoid recursion when split IO immmediately complete 2022-02-07 17:40:07 +00:00
blobstore.h blob: fix spelling, white space, grammar 2022-02-02 08:25:02 +00:00
Makefile so_ver: increase all major versions 2022-01-31 15:29:56 +00:00
request.c blob: use uint64_t for unmap and write_zeroes lba count 2021-10-14 08:17:16 +00:00
request.h blob: use uint64_t for unmap and write_zeroes lba count 2021-10-14 08:17:16 +00:00
spdk_blob.map lib/blob: add a map file. 2020-04-15 22:10:08 +00:00
zeroes.c blob: use uint64_t for unmap and write_zeroes lba count 2021-10-14 08:17:16 +00:00