History log of /spdk/lib/blob/blobstore.c (Results 1 – 25 of 414)
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
Revision tags: v25.01-rc1
# a2f5e1c2 08-Nov-2024 Jinlong Chen <chenjinlong.cjl@alibaba-inc.com>

blob: don't free bs when spdk_bs_destroy/spdk_bs_unload fails

Error handling of spdk_bs_destroy and spdk_bs_unload is confusing. They
may or may not free the spdk_blob_store structure on error, depe

blob: don't free bs when spdk_bs_destroy/spdk_bs_unload fails

Error handling of spdk_bs_destroy and spdk_bs_unload is confusing. They
may or may not free the spdk_blob_store structure on error, depending on
when the error happens. And users can not know if the structure has been
freed after the processes finished, thus unable to handle it correctly.

To fix this problem, we only free the structure when there are no errors
happended. In this way, users can be sure that the structure pointer is
still valid after the failed opertation. They can then retry the
operation or debug the failure.

Fixes #3560.

Change-Id: I4f7194ab8fce4f1a408ce3e6500514fd214427d4
Signed-off-by: Jinlong Chen <chenjinlong.cjl@alibaba-inc.com>
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/25472
Reviewed-by: Jim Harris <jim.harris@nvidia.com>
Reviewed-by: GangCao <gang.cao@intel.com>
Reviewed-by: Yankun Li <845245370@qq.com>
Community-CI: Community CI Samsung <spdk.community.ci.samsung@gmail.com>
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Ben Walker <ben@nvidia.com>
Community-CI: Mellanox Build Bot

show more ...


# 0f59982b 08-Nov-2024 Jinlong Chen <chenjinlong.cjl@alibaba-inc.com>

blob: don't use bs_load_ctx_fail in bs_write_used_* functions

bs_write_used_* functions are used both in blobstore loading and
unloading processes. However, the two processes actually need different

blob: don't use bs_load_ctx_fail in bs_write_used_* functions

bs_write_used_* functions are used both in blobstore loading and
unloading processes. However, the two processes actually need different
error handling logics.

Let the functions call their callbacks direclty instead of calling
bs_load_ctx_fail for error cases, so that we can use different error
handling logics for loading and unloading.

Change-Id: I4865eb91f1d8aa36e3ca64779c08a252433a7b34
Signed-off-by: Jinlong Chen <chenjinlong.cjl@alibaba-inc.com>
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/25471
Reviewed-by: Jim Harris <jim.harris@nvidia.com>
Community-CI: Community CI Samsung <spdk.community.ci.samsung@gmail.com>
Community-CI: Mellanox Build Bot
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Ben Walker <ben@nvidia.com>

show more ...


# 04524ea4 08-Nov-2024 Jinlong Chen <chenjinlong.cjl@alibaba-inc.com>

blob: fix possible memory leak in bs loading

If I/O errors happen during blobstore loading, the allocated memory for
spdk_bs_load_ctx->mask may be leaked.

Change-Id: I7e802dfb1b719b1ba23f70bdb216e7

blob: fix possible memory leak in bs loading

If I/O errors happen during blobstore loading, the allocated memory for
spdk_bs_load_ctx->mask may be leaked.

Change-Id: I7e802dfb1b719b1ba23f70bdb216e7f9cb35357e
Signed-off-by: Jinlong Chen <chenjinlong.cjl@alibaba-inc.com>
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/25470
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Ben Walker <ben@nvidia.com>
Community-CI: Mellanox Build Bot
Community-CI: Community CI Samsung <spdk.community.ci.samsung@gmail.com>
Reviewed-by: Jim Harris <jim.harris@nvidia.com>

show more ...


# 6c84c86e 15-Nov-2024 Yankun Li <yankun@staff.sina.com>

lib/blob: destroy spdk_bs_dev instance and call cb_fn

If the bs_opts_copy fails, release spdk_bs_dev and call the callback
function cb_fn.

Change-Id: Ibc473caaec873f53fb86df78543d5930855bba65
Signe

lib/blob: destroy spdk_bs_dev instance and call cb_fn

If the bs_opts_copy fails, release spdk_bs_dev and call the callback
function cb_fn.

Change-Id: Ibc473caaec873f53fb86df78543d5930855bba65
Signed-off-by: Yankun Li <yankun@staff.sina.com>
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/25440
Community-CI: Mellanox Build Bot
Community-CI: Community CI Samsung <spdk.community.ci.samsung@gmail.com>
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: GangCao <gang.cao@intel.com>
Reviewed-by: Shuhei Matsumoto <smatsumoto@nvidia.com>
Reviewed-by: Jim Harris <jim.harris@nvidia.com>
Reviewed-by: Ben Walker <ben@nvidia.com>

show more ...


# 9885e1d2 14-Nov-2024 Yankun Li <yankun@staff.sina.com>

lib/blob: cluster_sz must be a multiple of PAGE

Change-Id: I3e6fb061339e74f3f4f3a700e107213bde6c1689
Signed-off-by: Yankun Li <yankun@staff.sina.com>
Reviewed-on: https://review.spdk.io/gerrit/c/spd

lib/blob: cluster_sz must be a multiple of PAGE

Change-Id: I3e6fb061339e74f3f4f3a700e107213bde6c1689
Signed-off-by: Yankun Li <yankun@staff.sina.com>
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/25433
Community-CI: Community CI Samsung <spdk.community.ci.samsung@gmail.com>
Reviewed-by: GangCao <gang.cao@intel.com>
Reviewed-by: Konrad Sztyber <konrad.sztyber@intel.com>
Reviewed-by: Jim Harris <jim.harris@nvidia.com>
Community-CI: Broadcom CI <spdk-ci.pdl@broadcom.com>
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>

show more ...


# 2dc4a231 22-Oct-2024 Atul Malakar <a.malakar@samsung.com>

blob: Add support for variable metadata page size

Currently SPDK blobstore depends on 4KB atomicity of metadata.
So, Metadata page size will be made variable based on the physical
block size reporte

blob: Add support for variable metadata page size

Currently SPDK blobstore depends on 4KB atomicity of metadata.
So, Metadata page size will be made variable based on the physical
block size reported by the underlying device. This will enable
blobstore to store metadata in IU-sized chunks, not always 4KB.

blobstore.c uses SPDK_BS_PAGE_SIZE (4KB) hardcoded at many places.
To remove this make the metadata page size variable,
phys_blocklen is added to spdk_bs_dev struct and
md_page_size is added to spdk_bs_super_block struct.

Change-Id: I29d073eb4f4341a94a0675e70492b9186382f97f
Signed-off-by: Atul Malakar <a.malakar@samsung.com>
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/25130
Community-CI: Broadcom CI <spdk-ci.pdl@broadcom.com>
Community-CI: Mellanox Build Bot
Reviewed-by: Ben Walker <ben@nvidia.com>
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Community-CI: Community CI Samsung <spdk.community.ci.samsung@gmail.com>
Reviewed-by: Konrad Sztyber <konrad.sztyber@intel.com>
Reviewed-by: Jim Harris <jim.harris@nvidia.com>

show more ...


# 3299bf6d 23-Oct-2024 Jim Harris <jim.harris@samsung.com>

blob: remove all references to pages as io_units

When blobstore was first created, everything was in terms of 4KB
pages - this included metadata page size and the unit for I/O
operations.

A bit lat

blob: remove all references to pages as io_units

When blobstore was first created, everything was in terms of 4KB
pages - this included metadata page size and the unit for I/O
operations.

A bit later, we introduced concept of "io_unit". If a blobstore
was put on a bdev with 512 blocksize, then the io_unit could be
512 bytes.

But when this happened, we should have changed all of the blobstore
code such that remaining "page" references only referred to metadata
pages. Instead, we left a bunch of places where we would convert
various values to/from a number of 4KB pages, and then to the number
of io_units. This made the code quite confusing, since direct
conversion to/from io_units would have been much clearer.

This existing problem was exacerbated with the upcoming patch to support
variable metadata page sizes. We need things like spdk_bs_get_page_size()
to return the size of the metadata pages, which may not be 4KB.

So make all of the changes necessary such that all references to
"page" now means "metadata page". This includes removing the
spdk_blob_get_num_pages() function, which no longer makes sense.

Signed-off-by: Jim Harris <jim.harris@samsung.com>
Change-Id: I66e93e7a4325a3b032bb16edaf657ef12044e1fd
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/25368
Community-CI: Mellanox Build Bot
Community-CI: Broadcom CI <spdk-ci.pdl@broadcom.com>
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Ben Walker <ben@nvidia.com>
Community-CI: Community CI Samsung <spdk.community.ci.samsung@gmail.com>
Reviewed-by: Konrad Sztyber <konrad.sztyber@intel.com>

show more ...


# 671ee5e0 24-Oct-2024 Jim Harris <jim.harris@samsung.com>

blob: add bs_init_per_cluster_fields() helper function

This eliminates code that was duplicated in three different places.
It also prepares for adding fields for io_units_per_cluster in an
upcoming

blob: add bs_init_per_cluster_fields() helper function

This eliminates code that was duplicated in three different places.
It also prepares for adding fields for io_units_per_cluster in an
upcoming patch.

Signed-off-by: Jim Harris <jim.harris@samsung.com>
Change-Id: Id41ea51a0291a13a39caf0225597cd500d2a515c
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/25367
Community-CI: Community CI Samsung <spdk.community.ci.samsung@gmail.com>
Reviewed-by: Ben Walker <ben@nvidia.com>
Reviewed-by: Konrad Sztyber <konrad.sztyber@intel.com>
Community-CI: Mellanox Build Bot
Community-CI: Broadcom CI <spdk-ci.pdl@broadcom.com>
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>

show more ...


Revision tags: v24.09, v25.01-pre, v24.09-rc1
# 952532af 21-Aug-2024 Jinlong Chen <chenjinlong.cjl@alibaba-inc.com>

blob: use uint64_t for cluster start page index

When creating blobstore on devices with more than 16 TiB space, the
start page index of clusters can execeed UINT32_MAX and result in
overflow in uint

blob: use uint64_t for cluster start page index

When creating blobstore on devices with more than 16 TiB space, the
start page index of clusters can execeed UINT32_MAX and result in
overflow in uint32_t representation.

Use uint64_t instead of uint32_t to avoid the overflow.

Change-Id: I8e2586251b1b31ef7520b870af537c3f5792508e
Signed-off-by: Jinlong Chen <chenjinlong.cjl@alibaba-inc.com>
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/24619
Reviewed-by: Konrad Sztyber <konrad.sztyber@intel.com>
Community-CI: Broadcom CI <spdk-ci.pdl@broadcom.com>
Reviewed-by: Jim Harris <jim.harris@samsung.com>
Community-CI: Mellanox Build Bot
Reviewed-by: Changpeng Liu <changpeliu@tencent.com>
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: GangCao <gang.cao@intel.com>

show more ...


# 0eae0106 06-Sep-2024 Jim Harris <jim.harris@samsung.com>

trace: do not define fn in SPDK_TRACE_REGISTER_FN

Newer lcov try to detect issues with function definitions, and throw
warnings if function definitions have overlapping lines. Since
SPDK_TRACE_REGIS

trace: do not define fn in SPDK_TRACE_REGISTER_FN

Newer lcov try to detect issues with function definitions, and throw
warnings if function definitions have overlapping lines. Since
SPDK_TRACE_REGISTER_FN defines both the constructor function and
the trace function, it treats this as an overlap.

Note this is the only one of our REGISTER functions in SPDK that
effectively defines two functions in the same macro.

So change the macro so that the user actually defines the
trace function instead.

Signed-off-by: Jim Harris <jim.harris@samsung.com>
Change-Id: Ib9d0d1af7674c5ff9b65c12c1e4a5b05e6e110f5
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/24836
Reviewed-by: Michal Berger <michal.berger@intel.com>
Reviewed-by: Aleksey Marchuk <alexeymar@nvidia.com>
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Konrad Sztyber <konrad.sztyber@intel.com>
Community-CI: Mellanox Build Bot

show more ...


# 8d8e7cd0 20-Aug-2024 Hadi Moshayedi <hadi@ubicloud.com>

blob: add the blob_unref_back_bs_dev helper function.

This is used when a blob doesn't need its current bs_dev anymore. In
current patch we just simply destroy the bs_dev, but in the next commit
we'

blob: add the blob_unref_back_bs_dev helper function.

This is used when a blob doesn't need its current bs_dev anymore. In
current patch we just simply destroy the bs_dev, but in the next commit
we'll extend the logic to the case where there can be multiple refs to
the same bs_dev.

Change-Id: Ie959b681735373400db6d4c56dddf44f6facc316
Signed-off-by: Hadi Moshayedi <hadi@ubicloud.com>
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/24600
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Konrad Sztyber <konrad.sztyber@intel.com>
Community-CI: Mellanox Build Bot
Reviewed-by: Damiano Cipriani <damiano.cipriani@suse.com>
Reviewed-by: Mike Gerdts <mgerdts@nvidia.com>
Reviewed-by: Jim Harris <jim.harris@samsung.com>

show more ...


Revision tags: v24.05, v24.09-pre, v24.05-rc1
# d3594f84 15-Mar-2024 xupeng-mingtu <jingmamour@gmail.com>

lib/blob: fix data inconsistency when unmap a thin-provisioned blob that is backed

The issue may happen in this case:
1.create lvol A from snapshot B
2.write data to A_cluster1
3.unmap A_cluster1

lib/blob: fix data inconsistency when unmap a thin-provisioned blob that is backed

The issue may happen in this case:
1.create lvol A from snapshot B
2.write data to A_cluster1
3.unmap A_cluster1
4.read data from lba coverd by A_cluster1
the result of step 4 should be zero, but it’s actually the data in B_cluster1

Change-Id: If08bdf392d8d3dee737fcacca03bd9f04faa3933
Signed-off-by: xupeng-mingtu <jingmamour@gmail.com>
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/22325
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Jim Harris <jim.harris@samsung.com>
Reviewed-by: Tomasz Zawadzki <tomasz@tzawadzki.com>
Community-CI: Mellanox Build Bot
Reviewed-by: Mateusz Kozlowski <mateusz.kozlowski@solidigm.com>

show more ...


# 186b109d 20-Aug-2024 Jim Harris <jim.harris@samsung.com>

env: add SPDK_ENV_NUMA_ID_ANY and replace socket_id with numa_id

We will try to avoid further proliferation of "SOCKET_ID" to refer
to a NUMA socket ID moving forward, and just use "NUMA_ID" to avoi

env: add SPDK_ENV_NUMA_ID_ANY and replace socket_id with numa_id

We will try to avoid further proliferation of "SOCKET_ID" to refer
to a NUMA socket ID moving forward, and just use "NUMA_ID" to avoid
confusion with TCP sockets.

Change all of the existing in-tree SPDK_ENV_SOCKET_ID_ANY uses to
SPDK_ENV_NUMA_ID_ANY, but keep the old #define around, at least for
now. Also change all 'socket_id' parameters to 'numa_id'.

We still have spdk_env_get_socket_id(), we will need to keep this
but next patch will add spdk_env_get_numa_id().

Signed-off-by: Jim Harris <jim.harris@samsung.com>
Change-Id: Idc31c29e32b708c24d88f9c6fecaf9a99e34ba1e
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/24607
Reviewed-by: Aleksey Marchuk <alexeymar@nvidia.com>
Reviewed-by: Konrad Sztyber <konrad.sztyber@intel.com>
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Shuhei Matsumoto <smatsumoto@nvidia.com>
Reviewed-by: Ben Walker <ben@nvidia.com>
Community-CI: Mellanox Build Bot

show more ...


# c6c1234d 11-Jul-2024 xupeng-mingtu <jingmamour@gmail.com>

add new trace BLOB_REQ_SET_START and BLOB_REQ_SET_COMPLETE.

Through the both new trace, the bdev_io trace of lvol and the bdev_io
trace of base bdev of blobstore can be connected in series. Like thi

add new trace BLOB_REQ_SET_START and BLOB_REQ_SET_COMPLETE.

Through the both new trace, the bdev_io trace of lvol and the bdev_io
trace of base bdev of blobstore can be connected in series. Like this:

RDMA_REQ_RDY_TO_EXECUTE id: r31
BDEV_IO_START size: 8 id: i2964 (r31)
BLOB_REQ_SET_START id: a11 (i2964)
BDEV_IO_START size: 8 id: i2965 (a11)
BDEV_NVME_IO_START id: N2957 (i2965)
NVME_PCIE_SUBMIT id: p2959 (N2957)
NVME_PCIE_COMPLETE id: p2959 (N2957)
BDEV_NVME_IO_DONE id: N2957 (i2965)
BDEV_IO_DONE id: i2965 (a11)
BLOB_REQ_SET_COMPLETE id: a11 (i2964)
BDEV_IO_DONE id: i2964 (r31)
RDMA_REQ_EXECUTED id: r31

Change-Id: I607428b094031814627ac4192b9e3defe7ed5337
Signed-off-by: Xupeng Mingtu <jingmamour@gmail.com>
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/24130
Reviewed-by: Konrad Sztyber <konrad.sztyber@intel.com>
Community-CI: Mellanox Build Bot
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Jim Harris <jim.harris@samsung.com>

show more ...


# 34edd9f1 10-Jul-2024 Kamil Godzwon <kamilx.godzwon@intel.com>

general: fix misspells and typos

Signed-off-by: Kamil Godzwon <kamilx.godzwon@intel.com>
Change-Id: Iab206ef526eb7032c6681a3145450010c91705a4
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+

general: fix misspells and typos

Signed-off-by: Kamil Godzwon <kamilx.godzwon@intel.com>
Change-Id: Iab206ef526eb7032c6681a3145450010c91705a4
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/24120
Community-CI: Mellanox Build Bot
Reviewed-by: Karol Latecki <karol.latecki@intel.com>
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Aleksey Marchuk <alexeymar@nvidia.com>
Reviewed-by: Jim Harris <jim.harris@samsung.com>

show more ...


# a95bbf23 01-Jul-2024 Hadi Moshayedi <hadi@ubicloud.com>

blob: set parent_id properly on spdk_bs_blob_set_external_parent.

Based on `doc/blob.md`, `blob->parent_id` of esnap clones should be set
to `SPDK_BLOBID_EXTERNAL_SNAPSHOT`.

Previously, `spdk_bs_bl

blob: set parent_id properly on spdk_bs_blob_set_external_parent.

Based on `doc/blob.md`, `blob->parent_id` of esnap clones should be set
to `SPDK_BLOBID_EXTERNAL_SNAPSHOT`.

Previously, `spdk_bs_blob_set_external_parent` didn't do this. This
caused some features which relied on this, like copy-on-write, to not
work properly.

This change fixes this.

Change-Id: I13305d088efbff51aa7e066a7e42b13993d212a3
Signed-off-by: Hadi Moshayedi <hadi@ubicloud.com>
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/23971
Reviewed-by: Krzysztof Karas <krzysztof.karas@intel.com>
Reviewed-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com>
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Community-CI: Mellanox Build Bot
Reviewed-by: Jim Harris <jim.harris@samsung.com>
Reviewed-by: Damiano Cipriani <damiano.cipriani@suse.com>

show more ...


# 16d862d0 22-Jun-2024 wangyalong <wang597672534@gmail.com>

lib/blob: Handle numerical overflows in the unmap process.

In function blob_free_cluster_msg(), ctx->cluster(U32) may get a number that exceeds U32_max.
When the LBA (unit of blocklen) of the cluste

lib/blob: Handle numerical overflows in the unmap process.

In function blob_free_cluster_msg(), ctx->cluster(U32) may get a number that exceeds U32_max.
When the LBA (unit of blocklen) of the cluster to be released exceeds U32_max,
data overflow occurs, and the cluster located in the LBA%U32_max will be released,
resulting in data inconsistencies or coredump on bs_release_cluster():148.

For example, if the blocklen of lvstore is 512 bytes, and the ctx->cluster type is U32,
the maximum offset of the cluster that can be represented is only ((1<<32)-1)*512=2TB.
If the LBA of cluster to release exceeded, the problem will occur.

Fixes #3358

Change-Id: Idfe7a56f866321770c2a5f3d0189f2c0a42ac7b0
Signed-off-by: wangyalong <wang597672534@gmail.com>
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/23816
Community-CI: Mellanox Build Bot
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Changpeng Liu <changpeng.liu@intel.com>
Reviewed-by: Shuhei Matsumoto <smatsumoto@nvidia.com>
Reviewed-by: Mateusz Kozlowski <mateusz.kozlowski@solidigm.com>

show more ...


Revision tags: LTS, v24.01, v24.05-pre, v24.01-rc1
# 77c07d07 25-Oct-2023 Damiano Cipriani <damiano.cipriani@suse.com>

blob: add blob set external parent

Implemented a new function to set an external snapshot as the parent
of a blob. The previous parent of the blob, if any, can be another
external snapshot or a snap

blob: add blob set external parent

Implemented a new function to set an external snapshot as the parent
of a blob. The previous parent of the blob, if any, can be another
external snapshot or a snapshot; if the blob is not a clone, it must
be thin-provisioned.

Change-Id: Ib9eda0fba04428d058109a1eacdec084ef050a65
Signed-off-by: Damiano Cipriani <damiano.cipriani@suse.com>
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/21689
Reviewed-by: Jim Harris <jim.harris@samsung.com>
Reviewed-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com>
Community-CI: Mellanox Build Bot
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>

show more ...


Revision tags: v23.09, v24.01-pre, v23.09-rc1
# 7b8c7efe 28-Jul-2023 Damiano Cipriani <damiano.cipriani@suse.com>

blob: add blob set parent

Implemented a new function to set a snapshot as the parent of a blob.
The previous parent of the blob, if any, can be another snapshot or
an external snapshot; if the blob

blob: add blob set parent

Implemented a new function to set a snapshot as the parent of a blob.
The previous parent of the blob, if any, can be another snapshot or
an external snapshot; if the blob is not a clone, it must be
thin-provisioned.

Change-Id: I00eeefd352f437c587433d56f1988e7a607d2bf8
Signed-off-by: Damiano Cipriani <damiano.cipriani@suse.com>
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/19304
Reviewed-by: Jim Harris <jim.harris@samsung.com>
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com>
Community-CI: Mellanox Build Bot

show more ...


# cb9ee3bb 13-Sep-2023 Damiano Cipriani <damiano.cipriani@suse.com>

blob: add blob_set_back_bs_dev function

This function does mostly the same as what spdk_blob_set_esnap_bs_dev
did before, it will be used in reparent operations.
So, the function blob_frozen_destroy

blob: add blob_set_back_bs_dev function

This function does mostly the same as what spdk_blob_set_esnap_bs_dev
did before, it will be used in reparent operations.
So, the function blob_frozen_destroy_esnap_channels has been renamed
to blob_set_back_bs_dev_frozen.

Change-Id: Icbf16e5533b6d3230792a36bf0bcf61379fe9546
Signed-off-by: Damiano Cipriani <damiano.cipriani@suse.com>
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/21688
Reviewed-by: Jim Harris <jim.harris@samsung.com>
Reviewed-by: Shuhei Matsumoto <smatsumoto@nvidia.com>
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com>
Community-CI: Mellanox Build Bot

show more ...


# d148fba3 30-Apr-2024 Mateusz Kozlowski <mateusz.kozlowski@solidigm.com>

lib/blob: Handling of concurrent unmaps to a cluster

Only release clusters for the first unmap.

Fixes #3358

Change-Id: I79810a6611c57df1d0c280616d5666d2f7487d33
Signed-off-by: Mateusz Kozlowski <m

lib/blob: Handling of concurrent unmaps to a cluster

Only release clusters for the first unmap.

Fixes #3358

Change-Id: I79810a6611c57df1d0c280616d5666d2f7487d33
Signed-off-by: Mateusz Kozlowski <mateusz.kozlowski@solidigm.com>
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/23014
Community-CI: Mellanox Build Bot
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Jim Harris <jim.harris@samsung.com>
Reviewed-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com>

show more ...


# 4c88d56d 26-Jul-2023 Damiano Cipriani <damiano.cipriani@suse.com>

blob: add shallow copy status callback

Added a callback to shallow copy function that will be repeteadly
called during operation with status updates like the number of
clusters actually copied.

Cha

blob: add shallow copy status callback

Added a callback to shallow copy function that will be repeteadly
called during operation with status updates like the number of
clusters actually copied.

Change-Id: I6f2fb94fb38e8b17636ee2b5e106cd2a44697d09
Signed-off-by: Damiano Cipriani <damiano.cipriani@suse.com>
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/19248
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Jim Harris <jim.harris@samsung.com>
Community-CI: Mellanox Build Bot
Reviewed-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com>

show more ...


# 2dbbbbd8 01-Sep-2023 Damiano Cipriani <damiano.cipriani@suse.com>

blob: keep count of allocated clusters number

A new variable has been added in spdk_blob_mut_data to store the
number of allocated clusters in clusters array. Also a new method
to get this value has

blob: keep count of allocated clusters number

A new variable has been added in spdk_blob_mut_data to store the
number of allocated clusters in clusters array. Also a new method
to get this value has been added.

Change-Id: Ibac9344bcf7e4c5e6e12cf78a6eae0a4d6755acb
Signed-off-by: Damiano Cipriani <damiano.cipriani@suse.com>
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/19712
Reviewed-by: Jim Harris <jim.harris@samsung.com>
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com>
Community-CI: Mellanox Build Bot

show more ...


# 1666fcfc 26-Jul-2023 Damiano Cipriani <damiano.cipriani@suse.com>

blob: add shallow copy over a given device

A shallow copy will copy over the destination device only the
cluster allocated to the blob discarding those belonging
to the blob's parent snapshot, if an

blob: add shallow copy over a given device

A shallow copy will copy over the destination device only the
cluster allocated to the blob discarding those belonging
to the blob's parent snapshot, if any.

Change-Id: I763ba9d952b74bce2d5827abe1fc3f41b8ebd209
Signed-off-by: Damiano Cipriani <damiano.cipriani@suse.com>
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/19247
Reviewed-by: Shuhei Matsumoto <smatsumoto@nvidia.com>
Community-CI: Mellanox Build Bot
Reviewed-by: Jim Harris <jim.harris@samsung.com>
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com>

show more ...


# 00311abc 18-Mar-2024 Diwakar Sharma <diwakar.sharma@datacore.com>

blob: handle IO to a resized blob

When a blob is resized and is backed by a another blob like
a snapshot, then the resized blob has more number of clusters
compared to backing device. Since the blob

blob: handle IO to a resized blob

When a blob is resized and is backed by a another blob like
a snapshot, then the resized blob has more number of clusters
compared to backing device. Since the blob is thin, either
originally or as a result of creating snapshot, the IOs to
the new cluster ranges fail as there is no cluster to be looked
at in the backing. This patch introduces mechanism to handle reads
by zeroeing out the payload which is trailing beyond cluster range,
and handle writes by validating backing dev cluster range during
copy-on-write.

Change-Id: Ib204b922819775396e53ffb718e8230ebf8fa46b
Signed-off-by: Diwakar Sharma <diwakar.sharma@datacore.com>
Co-authored-by: Diwakar Sharma <diwakar.sharma@datacore.com>
Co-authored-by: Jim Harris <james.r.harris@intel.com>
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/22377
Community-CI: Mellanox Build Bot
Reviewed-by: Shuhei Matsumoto <smatsumoto@nvidia.com>
Reviewed-by: Jim Harris <jim.harris@samsung.com>
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>

show more ...


12345678910>>...17