Spdk/test
Jim Harris ed7848f2df blob: handle overlapping open case
We only create one spdk_blob object for a given blob, and just
increase the ref_count if it is opened multiple times.  bs_open_blob
would do the lookup for existing opened blobs.

But if the blob is opened again, before the previous open operation
has completed, we would end up with two spdk_blob objects for the same
blob.

Solution is to do another lookup when the open operation completes.
If we find the blob, free the one we just finished opening and return
the existing one instead.

Also added unit test that failed on the existing code but passes now
with this patch.

Signed-off-by: Jim Harris <james.r.harris@intel.com>
Reported-by: Mike Cui
Change-Id: I00c3a913b413deddf06f0b63f7a669efb2b5658f

Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/3855
Reviewed-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com>
Reviewed-by: Shuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com>
Reviewed-by: Ben Walker <benjamin.walker@intel.com>
Community-CI: Mellanox Build Bot
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
2020-08-21 08:24:09 +00:00
..
app test/fuzz: remove AERs from example JSON. 2020-08-17 08:21:11 +00:00
bdev test/bdevperf: fix an int types for offset which can result in core dumped. 2020-08-18 15:41:04 +00:00
blobfs module/blobfs: fix segmentation fault when fuse mount fail 2020-08-21 08:22:25 +00:00
blobstore build: Example applications build to build/example 2020-06-15 15:27:16 +00:00
common test/common: use sudo to remove old temp files 2020-08-20 09:35:47 +00:00
compress module/compress: add new parm to RPC for create compress vol 2020-07-27 22:39:29 +00:00
config_converter test/config_converter: Declare $rootdir, $testdir paths 2020-02-20 09:54:15 +00:00
cpp_headers queue_extras: use SPDK_CONTAINEROF 2019-10-07 15:06:01 +00:00
dd test/dd: Lower the number of block size tests 2020-08-20 09:27:21 +00:00
dpdk_memory_utility build: Output executables from the app directory to build/bin 2020-06-15 15:27:16 +00:00
env env_dpdk/pci: remove driver->is_registered 2020-07-23 20:48:47 +00:00
event test/event: add app_repeat test case 2020-07-24 15:25:57 +00:00
external_code test/common: consolidate test params for running with external DPDK 2020-08-17 11:56:32 +00:00
ftl test/ftl: point to absolute path to setup.sh 2020-07-06 23:22:59 +00:00
fuzz test/iscsi: remove VPP tests 2020-08-17 08:19:46 +00:00
ioat build: Example applications build to build/example 2020-06-15 15:27:16 +00:00
iscsi_tgt test/iscsi: remove VPP tests 2020-08-17 08:19:46 +00:00
json_config sock: Save socket subsystem configuration in JSON format 2020-07-13 08:40:15 +00:00
lvol build: Output executables from the app directory to build/bin 2020-06-15 15:27:16 +00:00
make lib/nvme: make fabrics connect timeout configurable. 2020-08-19 07:29:19 +00:00
nvme test/opal: add a trap for opal_revert_and_init() 2020-08-19 07:30:04 +00:00
nvmf test/nvmf: Unify the ports in common file. 2020-08-17 08:20:58 +00:00
ocf bdev/ocf: add cache line size 2020-08-12 10:39:56 +00:00
openstack test/nvmf: Handle multiple arguments in nvmfappstart() 2020-05-13 07:46:04 +00:00
pmem build: Output executables from the app directory to build/bin 2020-06-15 15:27:16 +00:00
rpc build: Output executables from the app directory to build/bin 2020-06-15 15:27:16 +00:00
rpc_client lib/event: fix printing non-null-terminated strings 2020-04-06 07:48:37 +00:00
spdkcli lib/iscsi: Add MaxR2TPerConnection to iSCSI options 2020-08-18 07:27:45 +00:00
unit blob: handle overlapping open case 2020-08-21 08:24:09 +00:00
vhost test/vhost: add option for fio gtod_reduce 2020-07-24 15:41:46 +00:00
vmd build: Example applications build to build/example 2020-06-15 15:27:16 +00:00
Makefile build: add option to disable building unit tests 2020-03-10 09:12:21 +00:00
spdk_cunit.h test: remove leftover spdk_cunit declaration 2018-07-06 22:47:56 +00:00