blobfs_bdev: Use spdk_bdev_create_bs_dev_ext() instead of spdk_bdev_create_bs_dev_from_desc()
Replace all calls of spdk_bdev_create_bs_dev_from_desc() and spdk_bdev_open_ext() by calls of spdk_bdev_create_bs_dev_ext() including unit tests. Signed-off-by: Shuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com> Change-Id: Idb9dc5a10f6e221c26e82e0194930cb7a2071dae Change-Id: I61e577db9e26ef3e1c3e2e4093ad66922a178f34 Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/4723 Reviewed-by: Jim Harris <james.r.harris@intel.com> Reviewed-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com> Reviewed-by: Aleksey Marchuk <alexeymar@mellanox.com> Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
This commit is contained in:
parent
b6cbf872eb
commit
2842056073
@ -123,7 +123,6 @@ spdk_blobfs_bdev_detect(const char *bdev_name,
|
||||
{
|
||||
struct blobfs_bdev_operation_ctx *ctx;
|
||||
struct spdk_bs_dev *bs_dev;
|
||||
struct spdk_bdev_desc *desc;
|
||||
int rc;
|
||||
|
||||
ctx = calloc(1, sizeof(*ctx));
|
||||
@ -138,19 +137,10 @@ spdk_blobfs_bdev_detect(const char *bdev_name,
|
||||
ctx->cb_fn = cb_fn;
|
||||
ctx->cb_arg = cb_arg;
|
||||
|
||||
rc = spdk_bdev_open_ext(bdev_name, true, blobfs_bdev_event_cb, NULL, &desc);
|
||||
rc = spdk_bdev_create_bs_dev_ext(bdev_name, blobfs_bdev_event_cb, NULL, &bs_dev);
|
||||
if (rc != 0) {
|
||||
SPDK_INFOLOG(blobfs_bdev, "Failed to open bdev(%s): %s\n", ctx->bdev_name,
|
||||
spdk_strerror(rc));
|
||||
|
||||
goto invalid;
|
||||
}
|
||||
|
||||
bs_dev = spdk_bdev_create_bs_dev_from_desc(desc);
|
||||
if (bs_dev == NULL) {
|
||||
SPDK_INFOLOG(blobfs_bdev, "Failed to create a blobstore block device from bdev desc");
|
||||
rc = -ENOMEM;
|
||||
spdk_bdev_close(desc);
|
||||
SPDK_INFOLOG(blobfs_bdev, "Failed to create a blobstore block device from bdev (%s)",
|
||||
bdev_name);
|
||||
|
||||
goto invalid;
|
||||
}
|
||||
@ -172,7 +162,6 @@ spdk_blobfs_bdev_create(const char *bdev_name, uint32_t cluster_sz,
|
||||
struct blobfs_bdev_operation_ctx *ctx;
|
||||
struct spdk_blobfs_opts blobfs_opt;
|
||||
struct spdk_bs_dev *bs_dev;
|
||||
struct spdk_bdev_desc *desc;
|
||||
int rc;
|
||||
|
||||
ctx = calloc(1, sizeof(*ctx));
|
||||
@ -187,20 +176,10 @@ spdk_blobfs_bdev_create(const char *bdev_name, uint32_t cluster_sz,
|
||||
ctx->cb_fn = cb_fn;
|
||||
ctx->cb_arg = cb_arg;
|
||||
|
||||
/* Creation requires WRITE operation */
|
||||
rc = spdk_bdev_open_ext(bdev_name, true, blobfs_bdev_event_cb, NULL, &desc);
|
||||
if (rc != 0) {
|
||||
SPDK_INFOLOG(blobfs_bdev, "Failed to open bdev(%s): %s\n", ctx->bdev_name,
|
||||
spdk_strerror(rc));
|
||||
|
||||
goto invalid;
|
||||
}
|
||||
|
||||
bs_dev = spdk_bdev_create_bs_dev_from_desc(desc);
|
||||
if (bs_dev == NULL) {
|
||||
SPDK_INFOLOG(blobfs_bdev, "Failed to create a blobstore block device from bdev desc\n");
|
||||
rc = -ENOMEM;
|
||||
spdk_bdev_close(desc);
|
||||
rc = spdk_bdev_create_bs_dev_ext(bdev_name, blobfs_bdev_event_cb, NULL, &bs_dev);
|
||||
if (rc) {
|
||||
SPDK_INFOLOG(blobfs_bdev, "Failed to create a blobstore block device from bdev (%s)\n",
|
||||
bdev_name);
|
||||
|
||||
goto invalid;
|
||||
}
|
||||
@ -305,7 +284,6 @@ spdk_blobfs_bdev_mount(const char *bdev_name, const char *mountpoint,
|
||||
{
|
||||
struct blobfs_bdev_operation_ctx *ctx;
|
||||
struct spdk_bs_dev *bs_dev;
|
||||
struct spdk_bdev_desc *desc;
|
||||
int rc;
|
||||
|
||||
ctx = calloc(1, sizeof(*ctx));
|
||||
@ -321,19 +299,10 @@ spdk_blobfs_bdev_mount(const char *bdev_name, const char *mountpoint,
|
||||
ctx->cb_fn = cb_fn;
|
||||
ctx->cb_arg = cb_arg;
|
||||
|
||||
rc = spdk_bdev_open_ext(bdev_name, true, blobfs_bdev_fuse_event_cb, ctx, &desc);
|
||||
rc = spdk_bdev_create_bs_dev_ext(bdev_name, blobfs_bdev_fuse_event_cb, ctx, &bs_dev);
|
||||
if (rc != 0) {
|
||||
SPDK_INFOLOG(blobfs_bdev, "Failed to open bdev(%s): %s\n", ctx->bdev_name,
|
||||
spdk_strerror(rc));
|
||||
|
||||
goto invalid;
|
||||
}
|
||||
|
||||
bs_dev = spdk_bdev_create_bs_dev_from_desc(desc);
|
||||
if (bs_dev == NULL) {
|
||||
SPDK_INFOLOG(blobfs_bdev, "Failed to create a blobstore block device from bdev desc");
|
||||
rc = -ENOMEM;
|
||||
spdk_bdev_close(desc);
|
||||
SPDK_INFOLOG(blobfs_bdev, "Failed to create a blobstore block device from bdev (%s)",
|
||||
bdev_name);
|
||||
|
||||
goto invalid;
|
||||
}
|
||||
|
@ -39,8 +39,7 @@
|
||||
|
||||
int g_fserrno;
|
||||
|
||||
bool g_bdev_open_ext_fail = false;
|
||||
bool g_bdev_create_bs_dev_from_desc_fail = false;
|
||||
bool g_bdev_create_bs_dev_ext_fail = false;
|
||||
bool g_fs_load_fail = false;
|
||||
bool g_fs_unload_fail = false;
|
||||
bool g_bs_bdev_claim_fail = false;
|
||||
@ -48,34 +47,35 @@ bool g_blobfs_fuse_start_fail = false;
|
||||
struct blobfs_bdev_operation_ctx *g_fs_ctx;
|
||||
|
||||
const char *g_bdev_name = "ut_bdev";
|
||||
|
||||
int
|
||||
spdk_bdev_open_ext(const char *bdev_name, bool write, spdk_bdev_event_cb_t event_cb,
|
||||
void *event_ctx, struct spdk_bdev_desc **_desc)
|
||||
{
|
||||
if (g_bdev_open_ext_fail) {
|
||||
return -1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
struct spdk_bdev g_bdev;
|
||||
|
||||
static void
|
||||
bs_dev_destroy(struct spdk_bs_dev *dev)
|
||||
{
|
||||
}
|
||||
|
||||
struct spdk_bs_dev *
|
||||
spdk_bdev_create_bs_dev_from_desc(struct spdk_bdev_desc *desc)
|
||||
static struct spdk_bdev *
|
||||
bs_dev_get_base_bdev(struct spdk_bs_dev *dev)
|
||||
{
|
||||
return &g_bdev;
|
||||
}
|
||||
|
||||
int
|
||||
spdk_bdev_create_bs_dev_ext(const char *bdev_name, spdk_bdev_event_cb_t event_cb,
|
||||
void *event_ctx, struct spdk_bs_dev **_bs_dev)
|
||||
{
|
||||
static struct spdk_bs_dev bs_dev;
|
||||
|
||||
if (g_bdev_create_bs_dev_from_desc_fail) {
|
||||
return NULL;
|
||||
if (g_bdev_create_bs_dev_ext_fail) {
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
bs_dev.destroy = bs_dev_destroy;
|
||||
return &bs_dev;
|
||||
bs_dev.get_base_bdev = bs_dev_get_base_bdev;
|
||||
|
||||
*_bs_dev = &bs_dev;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
void
|
||||
@ -195,19 +195,12 @@ blobfs_bdev_op_complete(void *cb_arg, int fserrno)
|
||||
static void
|
||||
spdk_blobfs_bdev_detect_test(void)
|
||||
{
|
||||
/* spdk_bdev_open_ext() fails */
|
||||
g_bdev_open_ext_fail = true;
|
||||
/* spdk_bdev_create_bs_dev_ext() fails */
|
||||
g_bdev_create_bs_dev_ext_fail = true;
|
||||
spdk_blobfs_bdev_detect(g_bdev_name, blobfs_bdev_op_complete, NULL);
|
||||
CU_ASSERT(g_fserrno != 0);
|
||||
|
||||
g_bdev_open_ext_fail = false;
|
||||
|
||||
/* spdk_bdev_create_bs_dev_from_desc() fails */
|
||||
g_bdev_create_bs_dev_from_desc_fail = true;
|
||||
spdk_blobfs_bdev_detect(g_bdev_name, blobfs_bdev_op_complete, NULL);
|
||||
CU_ASSERT(g_fserrno != 0);
|
||||
|
||||
g_bdev_create_bs_dev_from_desc_fail = false;
|
||||
g_bdev_create_bs_dev_ext_fail = false;
|
||||
|
||||
/* spdk_fs_load() fails */
|
||||
g_fs_load_fail = true;
|
||||
@ -233,19 +226,12 @@ spdk_blobfs_bdev_create_test(void)
|
||||
{
|
||||
uint32_t cluster_sz = 1024 * 1024;
|
||||
|
||||
/* spdk_bdev_open_ext() fails */
|
||||
g_bdev_open_ext_fail = true;
|
||||
/* spdk_bdev_create_bs_dev_ext() fails */
|
||||
g_bdev_create_bs_dev_ext_fail = true;
|
||||
spdk_blobfs_bdev_create(g_bdev_name, cluster_sz, blobfs_bdev_op_complete, NULL);
|
||||
CU_ASSERT(g_fserrno != 0);
|
||||
|
||||
g_bdev_open_ext_fail = false;
|
||||
|
||||
/* spdk_bdev_create_bs_dev_from_desc() fails */
|
||||
g_bdev_create_bs_dev_from_desc_fail = true;
|
||||
spdk_blobfs_bdev_create(g_bdev_name, cluster_sz, blobfs_bdev_op_complete, NULL);
|
||||
CU_ASSERT(g_fserrno != 0);
|
||||
|
||||
g_bdev_create_bs_dev_from_desc_fail = false;
|
||||
g_bdev_create_bs_dev_ext_fail = false;
|
||||
|
||||
/* spdk_bs_bdev_claim() fails */
|
||||
g_bs_bdev_claim_fail = true;
|
||||
@ -279,19 +265,12 @@ spdk_blobfs_bdev_mount_test(void)
|
||||
#ifdef SPDK_CONFIG_FUSE
|
||||
const char *mountpoint = "/mnt";
|
||||
|
||||
/* spdk_bdev_open_ext() fails */
|
||||
g_bdev_open_ext_fail = true;
|
||||
/* spdk_bdev_create_bs_dev_ext() fails */
|
||||
g_bdev_create_bs_dev_ext_fail = true;
|
||||
spdk_blobfs_bdev_mount(g_bdev_name, mountpoint, blobfs_bdev_op_complete, NULL);
|
||||
CU_ASSERT(g_fserrno != 0);
|
||||
|
||||
g_bdev_open_ext_fail = false;
|
||||
|
||||
/* spdk_bdev_create_bs_dev_from_desc() fails */
|
||||
g_bdev_create_bs_dev_from_desc_fail = true;
|
||||
spdk_blobfs_bdev_mount(g_bdev_name, mountpoint, blobfs_bdev_op_complete, NULL);
|
||||
CU_ASSERT(g_fserrno != 0);
|
||||
|
||||
g_bdev_create_bs_dev_from_desc_fail = false;
|
||||
g_bdev_create_bs_dev_ext_fail = false;
|
||||
|
||||
/* spdk_bs_bdev_claim() fails */
|
||||
g_bs_bdev_claim_fail = true;
|
||||
|
Loading…
Reference in New Issue
Block a user