numam-spdk/lib
Tomasz Zawadzki 0f5157377f lib/blob: merge EP of a clone when deleting a snapshot
In general it is not possible to delete snapshot when
there are clones on top of it.
There is special case when there is just a single clone
on top that snapshot.

In such case the clone is 'merged' with snapshot.
Unallocated clusters in clone, are filled with the ones
in snapshot (if allocated there).

Similar behavior should have occurred for extent pages.

This patch adds the implementation for moving EP from
snapshot to clone along with UT.

The UT exposes the issue by allowing delete_blob
to proceed beyond just unrecoverable snapshot blob.

Fixes #1291

Signed-off-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com>
Change-Id: Ib2824c5737021f8e8d9b533a4cd245c12e6fe9fa
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/1163
Reviewed-by: Jim Harris <james.r.harris@intel.com>
Reviewed-by: Ben Walker <benjamin.walker@intel.com>
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
2020-03-23 09:37:27 +00:00
..
accel make: rev SO versions individually for libraries. 2020-03-18 08:02:30 +00:00
bdev make: rev SO versions individually for libraries. 2020-03-18 08:02:30 +00:00
blob lib/blob: merge EP of a clone when deleting a snapshot 2020-03-23 09:37:27 +00:00
blobfs make: rev SO versions individually for libraries. 2020-03-18 08:02:30 +00:00
conf make: rev SO versions individually for libraries. 2020-03-18 08:02:30 +00:00
env_dpdk memory.h: move to public headers 2020-03-19 08:50:45 +00:00
env_ocf lib/bdev/ocf: update of ocf library to version 19.06 2019-10-22 17:22:41 +00:00
event make: rev SO versions individually for libraries. 2020-03-18 08:02:30 +00:00
ftl make: rev SO versions individually for libraries. 2020-03-18 08:02:30 +00:00
ioat memory.h: move to public headers 2020-03-19 08:50:45 +00:00
iscsi lib/iscsi: Use spdk_sn32_lt/gt() to compare two sequence numbers 2020-03-19 08:51:31 +00:00
json make: rev SO versions individually for libraries. 2020-03-18 08:02:30 +00:00
jsonrpc make: rev SO versions individually for libraries. 2020-03-18 08:02:30 +00:00
log make: rev SO versions individually for libraries. 2020-03-18 08:02:30 +00:00
log_rpc make: rev SO versions individually for libraries. 2020-03-18 08:02:30 +00:00
lvol make: rev SO versions individually for libraries. 2020-03-18 08:02:30 +00:00
nbd make: rev SO versions individually for libraries. 2020-03-18 08:02:30 +00:00
net make: rev SO versions individually for libraries. 2020-03-18 08:02:30 +00:00
notify make: rev SO versions individually for libraries. 2020-03-18 08:02:30 +00:00
nvme nvme/rdma: Move post WRs on send/recv queue after poll CQ 2020-03-20 08:39:53 +00:00
nvmf nvmf/rpc: remove NULL checks for spdk_jsonrpc_begin_result() 2020-03-19 08:51:27 +00:00
reduce make: rev SO versions individually for libraries. 2020-03-18 08:02:30 +00:00
rocksdb global: rename copy to accel 2020-02-18 08:05:34 +00:00
rpc make: rev SO versions individually for libraries. 2020-03-18 08:02:30 +00:00
rte_vhost make: rev SO versions individually for libraries. 2020-03-18 08:02:30 +00:00
scsi make: rev SO versions individually for libraries. 2020-03-18 08:02:30 +00:00
sock make: rev SO versions individually for libraries. 2020-03-18 08:02:30 +00:00
thread lib/thread: Factor out main loops of spdk_thread_poll() into a helper function 2020-03-19 08:52:15 +00:00
trace make: rev SO versions individually for libraries. 2020-03-18 08:02:30 +00:00
ut_mock make: rev SO versions individually for libraries. 2020-03-18 08:02:30 +00:00
util make: rev SO versions individually for libraries. 2020-03-18 08:02:30 +00:00
vhost memory.h: move to public headers 2020-03-19 08:50:45 +00:00
virtio memory.h: move to public headers 2020-03-19 08:50:45 +00:00
vmd make: rev SO versions individually for libraries. 2020-03-18 08:02:30 +00:00
Makefile global: rename copy to accel 2020-02-18 08:05:34 +00:00