Spdk/test
Jim Harris 037c8b01a1 blob: remove short-circuiting path for blob_freeze
If blob_freeze_io() is called twice in a row,
and the second time occurs before the for_each_channel
for the first completes, the second caller will
receive its callback too soon.

Instead just simplify the whole process, always do
the for_each_channel and don't try to optimize it
at all.  These are infrequent operations - correctness
and simplicity are in order.

A few additional changes:

1) Make same changes for unfreeze path.
2) Add blob_verify_md_op() calls, just to be sure
   these are only called from md_thread.  This was
   already checked in calling functions, but as these
   functions get called from new code paths (i.e.
   esnap clones) it can't hurt to add additional
   checks.
3) Add unit test that failed with original code, but
   passes with this patch.

Fixes issue #2935.

Signed-off-by: Jim Harris <james.r.harris@intel.com>
Change-Id: Ibefba554547ddf3e26aaabfa4288c8073d3c04ff
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/17148
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>
Reviewed-by: Mike Gerdts <mgerdts@nvidia.com>
Community-CI: Mellanox Build Bot
2023-03-15 09:27:17 +00:00
..
accel examples/accel/perf: add support for xor 2023-02-21 08:33:18 +00:00
app llvm_vfio_fuzz: detach io ctrlr in new thread 2023-02-17 12:52:59 +00:00
bdev test/blockdev: add extra crypto bdev for crypto_sw 2023-03-13 21:02:27 +00:00
blobfs add (c) and SPDX header to bash files as needed 2022-11-29 08:27:51 +00:00
blobstore add (c) and SPDX header to bash files as needed 2022-11-29 08:27:51 +00:00
common test/common: use vhost's at_app_exit() during cleanup 2023-03-14 07:11:07 +00:00
compress bdev/compress: Port to use accel_fw instead of compressdev 2023-01-20 10:26:21 +00:00
cpp_headers update Intel copyright notices 2022-11-10 08:28:53 +00:00
dd add (c) and SPDX header to bash files as needed 2022-11-29 08:27:51 +00:00
dma test/dma: call spdk_thread_exit() 2022-11-23 08:22:04 +00:00
dpdk_memory_utility add (c) and SPDX header to bash files as needed 2022-11-29 08:27:51 +00:00
env add (c) and SPDX header to bash files as needed 2022-11-29 08:27:51 +00:00
event autotest: unify style for test/ and ./test/ 2023-02-14 09:07:09 +00:00
external_code tests: Run make clean only when SPDK was configured 2023-02-02 09:05:56 +00:00
ftl test/ftl: add cases line to cover RPC bdev_ftl_unload 2023-01-17 20:32:58 +00:00
fuzz test/fuzz: Don't gather coverage under short-fuzz job 2023-01-19 14:41:54 +00:00
interrupt Add SPDX header to various files 2022-11-29 08:27:51 +00:00
ioat add (c) and SPDX header to bash files as needed 2022-11-29 08:27:51 +00:00
iscsi_tgt bdev/pmem: Removing bdev pmem - updated tests 2023-03-09 09:21:23 +00:00
json_config bdev/pmem: Removing bdev pmem - updated tests 2023-03-09 09:21:23 +00:00
lvol autotest: unify style for test/ and ./test/ 2023-02-14 09:07:09 +00:00
make autotest: unify style for test/ and ./test/ 2023-02-14 09:07:09 +00:00
nvme test/nvme/cuse: Use common.sh to restore nvme devices with proper data 2023-03-01 08:55:26 +00:00
nvmf test/nvmf: Fix trap 2023-03-14 07:11:07 +00:00
ocf Add SPDX header to various files 2022-11-29 08:27:51 +00:00
openstack add (c) and SPDX header to bash files as needed 2022-11-29 08:27:51 +00:00
packaging test/packaging: Don't install DPDK RPMs from the remote by default 2023-03-13 07:27:43 +00:00
rpc lib/trace: add trace_get_info RPC 2022-12-05 09:50:38 +00:00
rpc_client add (c) and SPDX header to bash files as needed 2022-11-29 08:27:51 +00:00
rpc_plugins autotest: Use rpc_cmd() for rpc plugin-based tests 2021-04-02 08:22:42 +00:00
scheduler test/scheduler: fix bugs in set_cpufreq 2023-03-02 08:35:55 +00:00
setup test/setup: Use hw_sector_size to convert size to sectors 2023-02-17 10:16:35 +00:00
sma test/sma: limit number of vhost-blk devices to 2 2023-03-13 21:02:27 +00:00
spdkcli vhost_rpc:add sessions information for vhost_get_controllers 2023-03-13 07:59:08 +00:00
thread thread: test SPDK spinlocks in an application 2022-12-06 21:20:17 +00:00
ublk test/ublk: add parameter for num devices 2023-01-25 10:52:36 +00:00
unit blob: remove short-circuiting path for blob_freeze 2023-03-15 09:27:17 +00:00
vfio_user test/vfio_user: use 2048MiB static memory size for bdevperf 2023-01-16 08:22:08 +00:00
vhost test/common: use vhost's at_app_exit() during cleanup 2023-03-14 07:11:07 +00:00
vmd add (c) and SPDX header to bash files as needed 2022-11-29 08:27:51 +00:00
Makefile update Intel copyright notices 2022-11-10 08:28:53 +00:00
spdk_cunit.h update Intel copyright notices 2022-11-10 08:28:53 +00:00