285a3723 | 15-Nov-2024 |
Yankun Li <yankun@staff.sina.com> |
lib/lvol: Simplify the lvs name parameter check
Change-Id: Ie6c7c048caf4d2f55f3d931db438336bab7c545a Signed-off-by: Yankun Li <yankun@staff.sina.com> Reviewed-on: https://review.spdk.io/gerrit/c/spd
lib/lvol: Simplify the lvs name parameter check
Change-Id: Ie6c7c048caf4d2f55f3d931db438336bab7c545a Signed-off-by: Yankun Li <yankun@staff.sina.com> Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/25439 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: GangCao <gang.cao@intel.com> Community-CI: Mellanox Build Bot Reviewed-by: Jim Harris <jim.harris@nvidia.com> Reviewed-by: Shuhei Matsumoto <smatsumoto@nvidia.com>
show more ...
|
ff2e6bfe | 14-Nov-2024 |
Yankun Li <yankun@staff.sina.com> |
lib/lvol: cluster size must be a multiple of bs_dev->blocklen
Change-Id: Ifabd8fc023b6e2476262dbdd68155b88ca77d2c9 Signed-off-by: Yankun Li <yankun@staff.sina.com> Reviewed-on: https://review.spdk.i
lib/lvol: cluster size must be a multiple of bs_dev->blocklen
Change-Id: Ifabd8fc023b6e2476262dbdd68155b88ca77d2c9 Signed-off-by: Yankun Li <yankun@staff.sina.com> Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/25434 Reviewed-by: GangCao <gang.cao@intel.com> Community-CI: Broadcom CI <spdk-ci.pdl@broadcom.com> Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Community-CI: Community CI Samsung <spdk.community.ci.samsung@gmail.com> Reviewed-by: Jim Harris <jim.harris@nvidia.com> Reviewed-by: Konrad Sztyber <konrad.sztyber@intel.com>
show more ...
|
e0d7428b | 23-Oct-2024 |
Atul Malakar <a.malakar@samsung.com> |
lvol: Add custom metadata page size to lvstore
Added new --md_page_size parameter to bdev_lvol_create_lvstore RPC. It facilitates user to pick a custom md_page_size, greater than phys_blocklen of th
lvol: Add custom metadata page size to lvstore
Added new --md_page_size parameter to bdev_lvol_create_lvstore RPC. It facilitates user to pick a custom md_page_size, greater than phys_blocklen of the underlying device.
This will allow functional testing of the large IU metadata changes on 4K IU NVMe SSDs.
Change-Id: Ib1bc68ba4d5b8a7db7f2befc1f616b342c01bc0f Signed-off-by: Atul Malakar <a.malakar@samsung.com> Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/25304 Community-CI: Mellanox Build Bot Reviewed-by: Konrad Sztyber <konrad.sztyber@intel.com> 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> Community-CI: Broadcom CI <spdk-ci.pdl@broadcom.com> Reviewed-by: Jim Harris <jim.harris@nvidia.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 ...
|
2a6c8d3f | 03-Nov-2023 |
Damiano Cipriani <damiano.cipriani@suse.com> |
lvol: add lvol set external parent
This function is mostly a wrapper around spdk_bs_blob_set_external_parent to set the parent external snapshot of a lvol. It also perform some checks over input par
lvol: add lvol set external parent
This function is mostly a wrapper around spdk_bs_blob_set_external_parent to set the parent external snapshot of a lvol. It also perform some checks over input parameters and create backing device of the external snapshot.
Change-Id: Ia08d0a724271ff4ce48510f0e375a325e0c7dc2a Signed-off-by: Damiano Cipriani <damiano.cipriani@suse.com> Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/21690 Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Reviewed-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com> Community-CI: Mellanox Build Bot Reviewed-by: Jim Harris <jim.harris@samsung.com>
show more ...
|
ef5c1379 | 28-Jul-2023 |
Damiano Cipriani <damiano.cipriani@suse.com> |
lvol: add lvol set parent
This function is mostly a wrapper around spdk_bs_blob_set_parent to set the parent snapshot of a lvol. It also perform some checks over input parameters.
Change-Id: I0f709
lvol: add lvol set parent
This function is mostly a wrapper around spdk_bs_blob_set_parent to set the parent snapshot of a lvol. It also perform some checks over input parameters.
Change-Id: I0f709b6c772f02576f2f42b97e86ca0a82bb5dd7 Signed-off-by: Damiano Cipriani <damiano.cipriani@suse.com> Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/19305 Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Reviewed-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com> Community-CI: Mellanox Build Bot Reviewed-by: Jim Harris <jim.harris@samsung.com>
show more ...
|
743d9670 | 28-Mar-2024 |
Damiano Cipriani <damiano.cipriani@suse.com> |
lvol: add further check in lvs_esnap_bs_dev_create
An additional check on lvol->lvol_store has been added to avoid scan-build error detection.
Change-Id: I9426aa6f59bd5da3ddf0fc8627a1d53b86efe593 S
lvol: add further check in lvs_esnap_bs_dev_create
An additional check on lvol->lvol_store has been added to avoid scan-build error detection.
Change-Id: I9426aa6f59bd5da3ddf0fc8627a1d53b86efe593 Signed-off-by: Damiano Cipriani <damiano.cipriani@suse.com> Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/22564 Reviewed-by: Shuhei Matsumoto <smatsumoto@nvidia.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: Tomasz Zawadzki <tomasz.zawadzki@intel.com>
show more ...
|
24574350 | 26-Jul-2023 |
Damiano Cipriani <damiano.cipriani@suse.com> |
lvol: add shallow copy over a given device
This is mostly a wrapper around spdk_bs_blob_shallow_copy(), but it also performs some checks over lvol, bs_dev and their compatibility.
Change-Id: I57ef2
lvol: add shallow copy over a given device
This is mostly a wrapper around spdk_bs_blob_shallow_copy(), but it also performs some checks over lvol, bs_dev and their compatibility.
Change-Id: I57ef2d2dd7a298f6ac8749d11ffe4e59612eb22e Signed-off-by: Damiano Cipriani <damiano.cipriani@suse.com> Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/19249 Community-CI: Mellanox Build Bot Reviewed-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com> Reviewed-by: Jim Harris <jim.harris@samsung.com> Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
show more ...
|
355312bf | 26-Jan-2024 |
Tomasz Zawadzki <tomasz.zawadzki@intel.com> |
so_ver: increase all major versions after SPDK 24.01
To allow SO_MINOR updates on LTS for the whole year it is supported, the major version for all components needs to be increased. This is to preve
so_ver: increase all major versions after SPDK 24.01
To allow SO_MINOR updates on LTS for the whole year it is supported, the major version for all components needs to be increased. This is to prevent scenario where two versions exists with matching versions, but conflicting ABI. Ex. Next SPDK release adds an API call increasing the minor version, then LTS needs just a subset of those additions.
Increasing major so version after LTS, allows the future releases to update versions as needed. Yet allowing LTS to increase minor version separately.
This patch: - increases SO_VER by 1 for all components - resets SO_MINOR to 0 for all components
Due to patch below being introduced after v24.01 code freeze, bdev lib version should not be increased: 61623c5ca9 bdev: add spdk_bdev_io padding in place of io_submit_ch
Short reference to how the versions were changed: MAX=$(git grep "SO_VER := " | cut -d" " -f 3 | sort -ubnr | head -1) for((i=$MAX;i>0;i-=1)); do find . -name "Makefile" -exec \ sed -i -e "s/SO_VER := $i\$/SO_VER := $(($i+1))/g" {} +; done find . -name "Makefile" -exec \ sed -i -e "s/SO_MINOR := .*/SO_MINOR := 0/g" {} +
Signed-off-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com> Change-Id: I0166d6be6c17bbbf985d48b5dfcb36f1d4af1b48 Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/21582 Reviewed-by: Konrad Sztyber <konrad.sztyber@intel.com> Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
show more ...
|
ad5fc351 | 19-Oct-2023 |
Tomasz Zawadzki <tomasz.zawadzki@intel.com> |
bdev/lvol: use spdk_bs_grow_live() in grow lvs RPC
This patch adds spdk_lvs_grow_live() pipes through to spdk_bs_grow_live() and use it when bdev_lvol_grow_lvstore RPC is called.
Growing the size o
bdev/lvol: use spdk_bs_grow_live() in grow lvs RPC
This patch adds spdk_lvs_grow_live() pipes through to spdk_bs_grow_live() and use it when bdev_lvol_grow_lvstore RPC is called.
Growing the size of lvs still needs to be explicit RPC call by the user.
Moved include for blob_bdev.h to header of the whole bdev module. This way spdk_bdev_update_bs_blockcnt() can be called when RPC is called.
Please note that there already exists a test with this RPC - blobstore_grow.sh. Next patch in series adds test calling grow while I/O is being performed.
Signed-off-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com> Change-Id: I9e896c65a8b017d0d20b77d3758901e588e9e70c Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/20322 Community-CI: Mellanox Build Bot Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Reviewed-by: Jim Harris <jim.harris@samsung.com> Reviewed-by: Shuhei Matsumoto <smatsumoto@nvidia.com>
show more ...
|
36a5cda1 | 14-Jun-2023 |
Tomasz Zawadzki <tomasz.zawadzki@intel.com> |
lib/lvol: always use lvol_free instead of free
Right now lvol_free() just frees the lvol, thus not much functional change happens with this patch.
Later in the series, more sanity checks for debugg
lib/lvol: always use lvol_free instead of free
Right now lvol_free() just frees the lvol, thus not much functional change happens with this patch.
Later in the series, more sanity checks for debugging will be added to lvol_free().
Change-Id: Ifd934c68134f0944b1b69d51470502190edb756f Signed-off-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com> Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/18687 Reviewed-by: Jim Harris <jim.harris@samsung.com> Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Reviewed-by: Ben Walker <ben@nvidia.com> Community-CI: Mellanox Build Bot
show more ...
|
7920c642 | 07-Nov-2023 |
Tomasz Zawadzki <tomasz.zawadzki@intel.com> |
lib/lvol: fix action_in_progress
action_in_progress right now determines if lvol is in process of being closed or deleted.
It should be set only once blobstore functions are called, and unset if th
lib/lvol: fix action_in_progress
action_in_progress right now determines if lvol is in process of being closed or deleted.
It should be set only once blobstore functions are called, and unset if they do encounter an error afterwards. Failure to close can only occur during close, then the lvol remains. For destroy it is freed anyway.
This patch moves setting it to true bit later on close/destroy, and joins success/error paths by setting in to false in both.
While here remove lvol_free() that should not be freed in the close path, if blob close failed. This allows to add relevant UT.
Part of work on #3006.
Change-Id: I9dc8b8defb6090b9e40b3520fbdccbd071622ba6 Signed-off-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com> Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/18684 Community-CI: Mellanox Build Bot Reviewed-by: Ben Walker <ben@nvidia.com> Reviewed-by: Jim Harris <jim.harris@samsung.com> Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
show more ...
|
95a367d6 | 02-Dec-2022 |
Artur Paszkiewicz <artur.paszkiewicz@intel.com> |
util/uuid: add API to test/set null uuid
Refactor the code to use these new functions.
Change-Id: I21ee7e9a96f30fbd60106add5e8b071e86bf93c9 Signed-off-by: Artur Paszkiewicz <artur.paszkiewicz@intel
util/uuid: add API to test/set null uuid
Refactor the code to use these new functions.
Change-Id: I21ee7e9a96f30fbd60106add5e8b071e86bf93c9 Signed-off-by: Artur Paszkiewicz <artur.paszkiewicz@intel.com> Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/16156 Reviewed-by: Aleksey Marchuk <alexeymar@nvidia.com> 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> Community-CI: Mellanox Build Bot
show more ...
|
ceefb463 | 08-May-2023 |
Marcin Spiewak <marcin.spiewak@intel.com> |
lvol: Fixed potential NULL pointer dereference
Fixed issue found by Klocwork - potential NULL pointer dereference
Change-Id: I2984942e7dd675c0f2663182331b3c30ea4f9322 Signed-off-by: Marcin Spiewak
lvol: Fixed potential NULL pointer dereference
Fixed issue found by Klocwork - potential NULL pointer dereference
Change-Id: I2984942e7dd675c0f2663182331b3c30ea4f9322 Signed-off-by: Marcin Spiewak <marcin.spiewak@intel.com> Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/17951 Community-CI: Mellanox Build Bot Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Reviewed-by: Konrad Sztyber <konrad.sztyber@intel.com> Reviewed-by: Jim Harris <james.r.harris@intel.com>
show more ...
|
6828ed18 | 28-Apr-2023 |
Mike Gerdts <mgerdts@nvidia.com> |
lvol: add spdk_lvol_is_degraded
This is mostly a wrapper around spdk_blob_is_degraded(), but it also performs a NULL check on lvol->blob. Since an lvol without a blob cannot perform IO, this conditi
lvol: add spdk_lvol_is_degraded
This is mostly a wrapper around spdk_blob_is_degraded(), but it also performs a NULL check on lvol->blob. Since an lvol without a blob cannot perform IO, this condition returns true.
The two callers of spdk_blob_is_degraded() in vbdev_lvol.c have been updated to use spdk_lvol_is_degraded().
Change-Id: I11dc682a26d971c8854aeab280c8199fced358c3 Signed-off-by: Mike Gerdts <mgerdts@nvidia.com> Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/17896 Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Reviewed-by: Jim Harris <james.r.harris@intel.com> Community-CI: Mellanox Build Bot Reviewed-by: Ben Walker <benjamin.walker@intel.com>
show more ...
|
76f4b777 | 18-Apr-2023 |
Mike Gerdts <mgerdts@nvidia.com> |
lvol: esnap clones must end on cluster boundary
When regular lvols are created, their size is rounded up to the next cluster boundary. This is not acceptable for esnap clones as this means that the
lvol: esnap clones must end on cluster boundary
When regular lvols are created, their size is rounded up to the next cluster boundary. This is not acceptable for esnap clones as this means that the clone may be silently grown larger than external snapshot. This can cause a variety of problems for the consumer of an esnap clone lvol.
While the better long-term solution is to allow lvol sizes to fall on any block boundary, the implementation of that needs to be suprisingly complex to support creation and deletion of snapshots and clones of esnap clones, inflation, and backward compatibility.
For now, it is best to put in a restriction on the esnap clone size during creation so as to not hit problems long after creation. Since lvols are generally expected to be large relative to the cluster size, it is somewhat unlikely that this restriction will be a significant limitation.
Signed-off-by: Mike Gerdts <mgerdts@nvidia.com> Change-Id: Id7a628f852a40c8ec2b7146504183943d723deba Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/17607 Reviewed-by: Ben Walker <benjamin.walker@intel.com> Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Community-CI: Mellanox Build Bot Reviewed-by: Jim Harris <james.r.harris@intel.com>
show more ...
|
5b250c08 | 30-Jan-2023 |
Mike Gerdts <mgerdts@nvidia.com> |
vbdev_lvol: load esnaps via examine_config
This introduces an examine_config callback that triggers hotplug of missing esnap devices.
Signed-off-by: Mike Gerdts <mgerdts@nvidia.com> Change-Id: I5ce
vbdev_lvol: load esnaps via examine_config
This introduces an examine_config callback that triggers hotplug of missing esnap devices.
Signed-off-by: Mike Gerdts <mgerdts@nvidia.com> Change-Id: I5ced2ff26bfd393d2df4fd4718700be30eb48063 Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/16626 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>
show more ...
|
0cea6b57 | 11-Apr-2023 |
Mike Gerdts <mgerdts@nvidia.com> |
lvol: add spdk_lvol_get_by_* API
spdk_lvol_get_by_uuid() allows lookup of lvols by the lvol's uuid.
spdk_lvol_get_by_names() allows lookup of lvols by the lvol's lvstore name and lvol name.
Signed
lvol: add spdk_lvol_get_by_* API
spdk_lvol_get_by_uuid() allows lookup of lvols by the lvol's uuid.
spdk_lvol_get_by_names() allows lookup of lvols by the lvol's lvstore name and lvol name.
Signed-off-by: Mike Gerdts <mgerdts@nvidia.com> Change-Id: Id165a3d17b76e5dde0616091dee5dff8327f44d0 Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/17546 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>
show more ...
|
b7d84562 | 11-Apr-2023 |
Mike Gerdts <mgerdts@nvidia.com> |
lvol: add spdk_lvol_iter_immediate_clones()
Add an interator that calls a callback for each clone of a snapshot volume. This follows the typical pattern of stopping iteration when the callback retur
lvol: add spdk_lvol_iter_immediate_clones()
Add an interator that calls a callback for each clone of a snapshot volume. This follows the typical pattern of stopping iteration when the callback returns non-zero.
Signed-off-by: Mike Gerdts <mgerdts@nvidia.com> Change-Id: If88ad769b72a19ba0993303e89da107db8a6adfc Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/17545 Reviewed-by: Ben Walker <benjamin.walker@intel.com> Reviewed-by: Jim Harris <james.r.harris@intel.com> Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
show more ...
|
712f9aa4 | 14-Oct-2022 |
Mike Gerdts <mgerdts@nvidia.com> |
lvol: hotplug of missing esnaps
This introduces spdk_lvs_notify_hotplug() to trigger the lvstore to call the appropriate lvstore's esnap_bs_dev_create() callback for each esnap clone lvol that is mi
lvol: hotplug of missing esnaps
This introduces spdk_lvs_notify_hotplug() to trigger the lvstore to call the appropriate lvstore's esnap_bs_dev_create() callback for each esnap clone lvol that is missing the device identified by esnap_id.
Change-Id: I0e2eb26375c62043b0f895197b24d6e056905aa2 Signed-off-by: Mike Gerdts <mgerdts@nvidia.com> Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/16428 Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Reviewed-by: Jim Harris <james.r.harris@intel.com> Reviewed-by: Ben Walker <benjamin.walker@intel.com>
show more ...
|
f2dbb505 | 17-Jan-2023 |
Mike Gerdts <mgerdts@nvidia.com> |
lvol: keep track of missing external snapshots
If an lvol is opened in degraded mode, keep track of the missing esnap IDs and which lvols need them. A future commit will make use of this information
lvol: keep track of missing external snapshots
If an lvol is opened in degraded mode, keep track of the missing esnap IDs and which lvols need them. A future commit will make use of this information to bring lvols out of degraded mode when their external snapshot device appears.
Change-Id: I55c16ad042a73e46e225369bfff2631958a2ed46 Signed-off-by: Mike Gerdts <mgerdts@nvidia.com> Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/16427 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>
show more ...
|
324e3261 | 13-Apr-2023 |
Marcin Spiewak <marcin.spiewak@intel.com> |
lib/lvol: lvs_load() shall return, if options are invalid
lvs_load() function verifies if options passed to it are valid, but doesn't return, if they are not (only error is logged and callback is ca
lib/lvol: lvs_load() shall return, if options are invalid
lvs_load() function verifies if options passed to it are valid, but doesn't return, if they are not (only error is logged and callback is called with -EINVAL code). Now it is corrected and the function ends after the error is reported.
Change-Id: I19b0b22466b6980345477f62084d27ef13414752 Signed-off-by: Marcin Spiewak <marcin.spiewak@intel.com> Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/17582 Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Reviewed-by: Mike Gerdts <mgerdts@nvidia.com> Reviewed-by: Jim Harris <james.r.harris@intel.com> Community-CI: Mellanox Build Bot Reviewed-by: Konrad Sztyber <konrad.sztyber@intel.com>
show more ...
|
fe0344ec | 28-Jan-2023 |
Mike Gerdts <mgerdts@nvidia.com> |
lvol: pass non-NULL lvs and lvol to dev_create
If an lvol is opened by way of spdk_bs_blob_open() or spontaneously due to blobstore activity (e.g. the blobstore is loading), the esnap_bs_dev_create
lvol: pass non-NULL lvs and lvol to dev_create
If an lvol is opened by way of spdk_bs_blob_open() or spontaneously due to blobstore activity (e.g. the blobstore is loading), the esnap_bs_dev_create callback is called with blob_ctx equal to NULL. Under ideal circumstances, blob_ctx refers to the lvol that is being opened.
With this change, a NULL blob_ctx triggers lvs_esnap_bs_dev_create() to look through the lvstore's volumes to find the one that uses a blob id that matches the id of the blob that is passed in. Now, lvol library consumers that need to support snapshots can count on both bs_ctx (lvs) and blob_ctx (lvol) to be non-NULL.
Signed-off-by: Mike Gerdts <mgerdts@nvidia.com> Change-Id: Iaaa9cc27664e28e54f0fbd75afe1d6ffbad92580 Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/16588 Reviewed-by: Jim Harris <james.r.harris@intel.com> Community-CI: Mellanox Build Bot Reviewed-by: Ben Walker <benjamin.walker@intel.com> Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
show more ...
|
76f4b9cb | 17-Jan-2023 |
Mike Gerdts <mgerdts@nvidia.com> |
lvol: do not reference blob after closing it
Once an lvol's blob is closed, the lvol should not retain a reference. Dereferencing lvol->blob could result in a use after free.
Signed-off-by: Mike Ge
lvol: do not reference blob after closing it
Once an lvol's blob is closed, the lvol should not retain a reference. Dereferencing lvol->blob could result in a use after free.
Signed-off-by: Mike Gerdts <mgerdts@nvidia.com> Change-Id: Ia96a5a488fc96d642aa4cde83c6efa5cff88b068 Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/16426 Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Reviewed-by: Jim Harris <james.r.harris@intel.com> Community-CI: Mellanox Build Bot Reviewed-by: Ben Walker <benjamin.walker@intel.com>
show more ...
|
ae0b53b1 | 10-Oct-2022 |
Mike Gerdts <mgerdts@nvidia.com> |
lvol: do not open esnaps during bs_load
As an lvstore is opening it calls spdk_bs_load(), which briefly opens each blob and has no use for external snapshots. Since there is no point in opening them
lvol: do not open esnaps during bs_load
As an lvstore is opening it calls spdk_bs_load(), which briefly opens each blob and has no use for external snapshots. Since there is no point in opening them at this time, don't open them. Once the blobstore has been loaded, update lvs->load_esnaps so that external snapshots are opened as the lvols open their blobs.
Change-Id: Ib16c8474300ff4b106aad0baa5b8b38332c23b01 Signed-off-by: Mike Gerdts <mgerdts@nvidia.com> Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/16424 Reviewed-by: Ben Walker <benjamin.walker@intel.com> Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Community-CI: Mellanox Build Bot Reviewed-by: Jim Harris <james.r.harris@intel.com>
show more ...
|