pmem: bdev names for pmem bdevs
Signed-off-by: Piotr Pelplinski <piotr.pelplinski@intel.com> Change-Id: Ifbb02f99cd2e5752b2bc9091733b87ddadec11a4 Reviewed-on: https://review.gerrithub.io/383895 Tested-by: SPDK Automated Test System <sys_sgsw@intel.com> Reviewed-by: Daniel Verkamp <daniel.verkamp@intel.com>
This commit is contained in:
parent
5447fb12a9
commit
e5b0dd6ead
@ -290,7 +290,7 @@ static const struct spdk_bdev_fn_table pmem_fn_table = {
|
||||
};
|
||||
|
||||
int
|
||||
spdk_create_pmem_disk(const char *pmem_file, struct spdk_bdev **bdev)
|
||||
spdk_create_pmem_disk(const char *pmem_file, char *name, struct spdk_bdev **bdev)
|
||||
{
|
||||
uint64_t num_blocks;
|
||||
uint32_t block_size;
|
||||
@ -330,9 +330,11 @@ spdk_create_pmem_disk(const char *pmem_file, struct spdk_bdev **bdev)
|
||||
free(pdisk);
|
||||
return EINVAL;
|
||||
}
|
||||
|
||||
|
||||
pdisk->disk.name = spdk_sprintf_alloc("pmem%d", pmem_disk_count);
|
||||
if (name) {
|
||||
pdisk->disk.name = spdk_sprintf_alloc("%s", name);
|
||||
} else {
|
||||
pdisk->disk.name = spdk_sprintf_alloc("pmem%d", pmem_disk_count);
|
||||
}
|
||||
|
||||
if (!pdisk->disk.name) {
|
||||
pmemblk_close(pdisk->pool);
|
||||
|
@ -36,6 +36,6 @@
|
||||
|
||||
#include "spdk/bdev.h"
|
||||
|
||||
int spdk_create_pmem_disk(const char *pmem_file, struct spdk_bdev **bdev);
|
||||
int spdk_create_pmem_disk(const char *pmem_file, char *name, struct spdk_bdev **bdev);
|
||||
|
||||
#endif /* SPDK_BDEV_PMEM_H */
|
||||
|
@ -41,6 +41,7 @@
|
||||
|
||||
struct rpc_construct_pmem {
|
||||
char *pmem_file;
|
||||
char *name;
|
||||
};
|
||||
|
||||
static void
|
||||
@ -51,6 +52,7 @@ free_rpc_construct_pmem_bdev(struct rpc_construct_pmem *req)
|
||||
|
||||
static const struct spdk_json_object_decoder rpc_construct_pmem_decoders[] = {
|
||||
{"pmem_file", offsetof(struct rpc_construct_pmem, pmem_file), spdk_json_decode_string},
|
||||
{"name", offsetof(struct rpc_construct_pmem, name), spdk_json_decode_string, true},
|
||||
};
|
||||
|
||||
static void
|
||||
@ -70,7 +72,7 @@ spdk_rpc_construct_pmem_bdev(struct spdk_jsonrpc_request *request,
|
||||
rc = EINVAL;
|
||||
goto invalid;
|
||||
}
|
||||
rc = spdk_create_pmem_disk(req.pmem_file, &bdev);
|
||||
rc = spdk_create_pmem_disk(req.pmem_file, req.name, &bdev);
|
||||
if (rc != 0) {
|
||||
goto invalid;
|
||||
}
|
||||
|
@ -211,10 +211,13 @@ p.set_defaults(func=delete_pmem_pool)
|
||||
|
||||
def construct_pmem_bdev(args):
|
||||
params = {'pmem_file': args.pmem_file}
|
||||
if args.name:
|
||||
params['name'] = args.name
|
||||
print_array(jsonrpc_call('construct_pmem_bdev', params))
|
||||
|
||||
p = subparsers.add_parser('construct_pmem_bdev', help='Add a bdev with pmem backend')
|
||||
p.add_argument('pmem_file', help='Path to pmemblk pool file')
|
||||
p.add_argument('-n', '--name', help='Block device name', required=False)
|
||||
p.set_defaults(func=construct_pmem_bdev)
|
||||
|
||||
def construct_null_bdev(args):
|
||||
|
@ -385,45 +385,45 @@ ut_pmem_open_close(void)
|
||||
pools_cnt = g_opened_pools;
|
||||
|
||||
/* Try opening with NULL name */
|
||||
rc = spdk_create_pmem_disk(NULL, &bdev);
|
||||
rc = spdk_create_pmem_disk(NULL, NULL, &bdev);
|
||||
CU_ASSERT_PTR_NULL(bdev);
|
||||
CU_ASSERT_EQUAL(pools_cnt, g_opened_pools);
|
||||
CU_ASSERT_NOT_EQUAL(rc, 0);
|
||||
|
||||
/* Open non-existent pool */
|
||||
rc = spdk_create_pmem_disk("non existent pool", &bdev);
|
||||
rc = spdk_create_pmem_disk("non existent pool", NULL, &bdev);
|
||||
CU_ASSERT_PTR_NULL(bdev);
|
||||
CU_ASSERT_EQUAL(pools_cnt, g_opened_pools);
|
||||
CU_ASSERT_NOT_EQUAL(rc, 0);
|
||||
|
||||
/* Open inconsistent pool */
|
||||
rc = spdk_create_pmem_disk(g_pool_inconsistent.name, &bdev);
|
||||
rc = spdk_create_pmem_disk(g_pool_inconsistent.name, NULL, &bdev);
|
||||
CU_ASSERT_PTR_NULL(bdev);
|
||||
CU_ASSERT_EQUAL(pools_cnt, g_opened_pools);
|
||||
CU_ASSERT_NOT_EQUAL(rc, 0);
|
||||
|
||||
/* Open consistent pool fail the open from unknown reason. */
|
||||
g_pmemblk_open_allow_open = false;
|
||||
rc = spdk_create_pmem_disk(g_pool_inconsistent.name, &bdev);
|
||||
rc = spdk_create_pmem_disk(g_pool_inconsistent.name, NULL, &bdev);
|
||||
g_pmemblk_open_allow_open = true;
|
||||
CU_ASSERT_PTR_NULL(bdev);
|
||||
CU_ASSERT_EQUAL(pools_cnt, g_opened_pools);
|
||||
CU_ASSERT_NOT_EQUAL(rc, 0);
|
||||
|
||||
/* Open pool with nblocks = 0 */
|
||||
rc = spdk_create_pmem_disk(g_pool_nblock_0.name, &bdev);
|
||||
rc = spdk_create_pmem_disk(g_pool_nblock_0.name, NULL, &bdev);
|
||||
CU_ASSERT_PTR_NULL(bdev);
|
||||
CU_ASSERT_EQUAL(pools_cnt, g_opened_pools);
|
||||
CU_ASSERT_NOT_EQUAL(rc, 0);
|
||||
|
||||
/* Open pool with bsize = 0 */
|
||||
rc = spdk_create_pmem_disk(g_pool_bsize_0.name, &bdev);
|
||||
rc = spdk_create_pmem_disk(g_pool_bsize_0.name, NULL, &bdev);
|
||||
CU_ASSERT_PTR_NULL(bdev);
|
||||
CU_ASSERT_EQUAL(pools_cnt, g_opened_pools);
|
||||
CU_ASSERT_NOT_EQUAL(rc, 0);
|
||||
|
||||
/* Open good pool */
|
||||
rc = spdk_create_pmem_disk(g_pool_ok.name, &bdev);
|
||||
rc = spdk_create_pmem_disk(g_pool_ok.name, NULL, &bdev);
|
||||
SPDK_CU_ASSERT_FATAL(bdev != NULL);
|
||||
CU_ASSERT_TRUE(g_pool_ok.is_open);
|
||||
CU_ASSERT_EQUAL(pools_cnt + 1, g_opened_pools);
|
||||
@ -454,7 +454,7 @@ ut_pmem_write_read(void)
|
||||
{ 0, 4 * g_pool_ok.bsize },
|
||||
};
|
||||
|
||||
rc = spdk_create_pmem_disk(g_pool_ok.name, &bdev);
|
||||
rc = spdk_create_pmem_disk(g_pool_ok.name, NULL, &bdev);
|
||||
CU_ASSERT_EQUAL(rc, 0);
|
||||
|
||||
SPDK_CU_ASSERT_FATAL(g_pool_ok.nblock > 40);
|
||||
@ -628,7 +628,7 @@ ut_pmem_reset(void)
|
||||
struct spdk_bdev *bdev;
|
||||
int rc;
|
||||
|
||||
rc = spdk_create_pmem_disk(g_pool_ok.name, &bdev);
|
||||
rc = spdk_create_pmem_disk(g_pool_ok.name, NULL, &bdev);
|
||||
CU_ASSERT_EQUAL(rc, 0);
|
||||
SPDK_CU_ASSERT_FATAL(bdev != NULL);
|
||||
|
||||
@ -648,7 +648,7 @@ ut_pmem_unmap_write_zero(int16_t io_type)
|
||||
int rc;
|
||||
|
||||
CU_ASSERT(io_type == SPDK_BDEV_IO_TYPE_UNMAP || io_type == SPDK_BDEV_IO_TYPE_WRITE_ZEROES);
|
||||
rc = spdk_create_pmem_disk(g_pool_ok.name, &bdev);
|
||||
rc = spdk_create_pmem_disk(g_pool_ok.name, NULL, &bdev);
|
||||
CU_ASSERT_EQUAL(rc, 0);
|
||||
SPDK_CU_ASSERT_FATAL(bdev != NULL);
|
||||
SPDK_CU_ASSERT_FATAL(g_pool_ok.nblock > 40);
|
||||
|
Loading…
Reference in New Issue
Block a user