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 ...
|
45fa5534 | 13-Jun-2023 |
Tomasz Zawadzki <tomasz.zawadzki@intel.com> |
lvol/ut: fix lvs_load ut with proper blob_id
Just a small miss in the UT. It does come up later in the series when adding verification of matching blob_id in lvol_free().
Change-Id: If54c80aaf24476
lvol/ut: fix lvs_load ut with proper blob_id
Just a small miss in the UT. It does come up later in the series when adding verification of matching blob_id in lvol_free().
Change-Id: If54c80aaf24476a4cd061d0127852451fa3566a8 Signed-off-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com> Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/18686 Reviewed-by: Jim Harris <jim.harris@samsung.com> Reviewed-by: Ben Walker <ben@nvidia.com> Community-CI: Mellanox Build Bot Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
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 ...
|
13d41fb7 | 13-Jun-2023 |
Tomasz Zawadzki <tomasz.zawadzki@intel.com> |
lvol/ut: add negative test cases for lvol_close
Change-Id: I205a15888e8fb98269d3784f517140460b0c86df Signed-off-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com> Reviewed-on: https://review.spdk.io/ge
lvol/ut: add negative test cases for lvol_close
Change-Id: I205a15888e8fb98269d3784f517140460b0c86df Signed-off-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com> Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/18683 Reviewed-by: Jim Harris <jim.harris@samsung.com> Community-CI: Mellanox Build Bot Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Reviewed-by: Ben Walker <ben@nvidia.com>
show more ...
|
84130e39 | 13-Jun-2023 |
Tomasz Zawadzki <tomasz.zawadzki@intel.com> |
lvol/ut: reuse ut_cb_res in lvol_close UT
Since the inception of the lvol_close a better way to pass the callback results was added in form of ut_cb_res.
Re-using this here will make future changes
lvol/ut: reuse ut_cb_res in lvol_close UT
Since the inception of the lvol_close a better way to pass the callback results was added in form of ut_cb_res.
Re-using this here will make future changes simpler.
Signed-off-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com> Change-Id: I15952ed1c1c0c570e516ba6f03624cefb1481789 Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/18682 Community-CI: Mellanox Build Bot Reviewed-by: Jim Harris <jim.harris@samsung.com> Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Reviewed-by: Ben Walker <ben@nvidia.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 ...
|
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 ...
|
30399f31 | 13-Apr-2023 |
Mike Gerdts <mgerdts@nvidia.com> |
lvol_ut: test esnap hotplug
This exercises spdk_lvs_esnap_notify_hotplug() under a variety of happy and not-so-happy paths.
Change-Id: I1f4101a082b113dacc7d03f81ca16069acfb458d Signed-off-by: Mike
lvol_ut: test esnap hotplug
This exercises spdk_lvs_esnap_notify_hotplug() under a variety of happy and not-so-happy paths.
Change-Id: I1f4101a082b113dacc7d03f81ca16069acfb458d Signed-off-by: Mike Gerdts <mgerdts@nvidia.com> Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/17602 Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Reviewed-by: Ben Walker <benjamin.walker@intel.com> Reviewed-by: Jim Harris <james.r.harris@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 ...
|
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 ...
|