lvol: raport not supported io types on ro lvol
Change-Id: I07dac4bbf06a85659ae5d31e3f8d037d87825694 Signed-off-by: Tomasz Kulasek <tomaszx.kulasek@intel.com> Reviewed-on: https://review.gerrithub.io/408483 Reviewed-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com> Tested-by: SPDK Automated Test System <sys_sgsw@intel.com> Reviewed-by: Daniel Verkamp <daniel.verkamp@intel.com> Reviewed-by: Ben Walker <benjamin.walker@intel.com>
This commit is contained in:
parent
887ecc2d82
commit
7fb0f7467c
@ -687,12 +687,13 @@ vbdev_lvol_get_io_channel(void *ctx)
|
|||||||
static bool
|
static bool
|
||||||
vbdev_lvol_io_type_supported(void *ctx, enum spdk_bdev_io_type io_type)
|
vbdev_lvol_io_type_supported(void *ctx, enum spdk_bdev_io_type io_type)
|
||||||
{
|
{
|
||||||
|
struct spdk_lvol *lvol = ctx;
|
||||||
|
|
||||||
switch (io_type) {
|
switch (io_type) {
|
||||||
case SPDK_BDEV_IO_TYPE_WRITE:
|
case SPDK_BDEV_IO_TYPE_WRITE:
|
||||||
case SPDK_BDEV_IO_TYPE_UNMAP:
|
case SPDK_BDEV_IO_TYPE_UNMAP:
|
||||||
case SPDK_BDEV_IO_TYPE_WRITE_ZEROES:
|
case SPDK_BDEV_IO_TYPE_WRITE_ZEROES:
|
||||||
/* TODO: Report false if snapshot */
|
return !spdk_blob_is_read_only(lvol->blob);
|
||||||
return true;
|
|
||||||
case SPDK_BDEV_IO_TYPE_RESET:
|
case SPDK_BDEV_IO_TYPE_RESET:
|
||||||
case SPDK_BDEV_IO_TYPE_READ:
|
case SPDK_BDEV_IO_TYPE_READ:
|
||||||
return true;
|
return true;
|
||||||
|
@ -177,6 +177,14 @@ spdk_blob_get_parent_snapshot(struct spdk_blob_store *bs, spdk_blob_id blobid)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool g_blob_is_read_only = false;
|
||||||
|
|
||||||
|
bool
|
||||||
|
spdk_blob_is_read_only(struct spdk_blob *blob)
|
||||||
|
{
|
||||||
|
return g_blob_is_read_only;
|
||||||
|
}
|
||||||
|
|
||||||
bool
|
bool
|
||||||
spdk_blob_is_snapshot(struct spdk_blob *blob)
|
spdk_blob_is_snapshot(struct spdk_blob *blob)
|
||||||
{
|
{
|
||||||
@ -1275,8 +1283,14 @@ ut_vbdev_lvol_get_io_channel(void)
|
|||||||
static void
|
static void
|
||||||
ut_vbdev_lvol_io_type_supported(void)
|
ut_vbdev_lvol_io_type_supported(void)
|
||||||
{
|
{
|
||||||
struct spdk_lvol *lvol = g_lvol;
|
struct spdk_lvol *lvol;
|
||||||
bool ret;
|
bool ret;
|
||||||
|
|
||||||
|
lvol = calloc(1, sizeof(struct spdk_lvol));
|
||||||
|
SPDK_CU_ASSERT_FATAL(lvol != NULL);
|
||||||
|
|
||||||
|
g_blob_is_read_only = false;
|
||||||
|
|
||||||
/* Supported types */
|
/* Supported types */
|
||||||
ret = vbdev_lvol_io_type_supported(lvol, SPDK_BDEV_IO_TYPE_READ);
|
ret = vbdev_lvol_io_type_supported(lvol, SPDK_BDEV_IO_TYPE_READ);
|
||||||
CU_ASSERT(ret == true);
|
CU_ASSERT(ret == true);
|
||||||
@ -1296,6 +1310,30 @@ ut_vbdev_lvol_io_type_supported(void)
|
|||||||
CU_ASSERT(ret == false);
|
CU_ASSERT(ret == false);
|
||||||
ret = vbdev_lvol_io_type_supported(lvol, SPDK_BDEV_IO_TYPE_NVME_IO);
|
ret = vbdev_lvol_io_type_supported(lvol, SPDK_BDEV_IO_TYPE_NVME_IO);
|
||||||
CU_ASSERT(ret == false);
|
CU_ASSERT(ret == false);
|
||||||
|
|
||||||
|
g_blob_is_read_only = true;
|
||||||
|
|
||||||
|
/* Supported types */
|
||||||
|
ret = vbdev_lvol_io_type_supported(lvol, SPDK_BDEV_IO_TYPE_READ);
|
||||||
|
CU_ASSERT(ret == true);
|
||||||
|
ret = vbdev_lvol_io_type_supported(lvol, SPDK_BDEV_IO_TYPE_RESET);
|
||||||
|
CU_ASSERT(ret == true);
|
||||||
|
|
||||||
|
/* Unsupported types */
|
||||||
|
ret = vbdev_lvol_io_type_supported(lvol, SPDK_BDEV_IO_TYPE_WRITE);
|
||||||
|
CU_ASSERT(ret == false);
|
||||||
|
ret = vbdev_lvol_io_type_supported(lvol, SPDK_BDEV_IO_TYPE_UNMAP);
|
||||||
|
CU_ASSERT(ret == false);
|
||||||
|
ret = vbdev_lvol_io_type_supported(lvol, SPDK_BDEV_IO_TYPE_WRITE_ZEROES);
|
||||||
|
CU_ASSERT(ret == false);
|
||||||
|
ret = vbdev_lvol_io_type_supported(lvol, SPDK_BDEV_IO_TYPE_FLUSH);
|
||||||
|
CU_ASSERT(ret == false);
|
||||||
|
ret = vbdev_lvol_io_type_supported(lvol, SPDK_BDEV_IO_TYPE_NVME_ADMIN);
|
||||||
|
CU_ASSERT(ret == false);
|
||||||
|
ret = vbdev_lvol_io_type_supported(lvol, SPDK_BDEV_IO_TYPE_NVME_IO);
|
||||||
|
CU_ASSERT(ret == false);
|
||||||
|
|
||||||
|
free(lvol);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
Loading…
Reference in New Issue
Block a user