lib/blobfs: add a map file.

Also, increment the library version since some non-public symbols have been removed.

Please note, SPDK_LOG_BLOBFS is included in the map file because it is used by the
blobfs_bdev module.

Signed-off-by: Seth Howell <seth.howell@intel.com>
Change-Id: Ib05c0b6630951d97b1a5b2931746471eeb9d9630
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/1702
Community-CI: Mellanox Build Bot
Community-CI: Broadcom CI
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Shuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com>
Reviewed-by: Aleksey Marchuk <alexeymar@mellanox.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
This commit is contained in:
Seth Howell 2020-04-06 17:45:22 -07:00 committed by Tomasz Zawadzki
parent d8343f9496
commit 6569a0ea06
6 changed files with 66 additions and 13 deletions

View File

@ -34,11 +34,13 @@
SPDK_ROOT_DIR := $(abspath $(CURDIR)/../..)
include $(SPDK_ROOT_DIR)/mk/spdk.common.mk
SO_VER := 2
SO_VER := 3
SO_MINOR := 0
SO_SUFFIX := $(SO_VER).$(SO_MINOR)
C_SRCS = blobfs.c tree.c
LIBNAME = blobfs
SPDK_MAP_FILE = $(abspath $(CURDIR)/spdk_blobfs.map)
include $(SPDK_ROOT_DIR)/mk/spdk.lib.mk

View File

@ -0,0 +1,45 @@
{
global:
# public functions
spdk_fs_opts_init;
spdk_fs_init;
spdk_fs_load;
spdk_fs_unload;
spdk_fs_alloc_io_channel;
spdk_fs_free_io_channel;
spdk_fs_alloc_thread_ctx;
spdk_fs_free_thread_ctx;
spdk_fs_file_stat;
spdk_fs_create_file;
spdk_fs_open_file;
spdk_file_close;
spdk_fs_rename_file;
spdk_fs_delete_file;
spdk_fs_iter_first;
spdk_fs_iter_next;
spdk_file_truncate;
spdk_file_get_name;
spdk_file_get_length;
spdk_file_write;
spdk_file_read;
spdk_fs_set_cache_size;
spdk_fs_get_cache_size;
spdk_file_set_priority;
spdk_file_sync;
spdk_file_get_id;
spdk_file_readv_async;
spdk_file_writev_async;
spdk_fs_file_stat_async;
spdk_fs_create_file_async;
spdk_fs_open_file_async;
spdk_file_close_async;
spdk_fs_rename_file_async;
spdk_fs_delete_file_async;
spdk_file_truncate_async;
spdk_file_write_async;
spdk_file_read_async;
spdk_file_sync_async;
local: *;
};

View File

@ -142,14 +142,15 @@ spdk_blobfs_bdev_detect(const char *bdev_name,
rc = spdk_bdev_open_ext(bdev_name, true, blobfs_bdev_event_cb, NULL, &desc);
if (rc != 0) {
SPDK_INFOLOG(SPDK_LOG_BLOBFS, "Failed to open bdev(%s): %s\n", ctx->bdev_name, spdk_strerror(rc));
SPDK_INFOLOG(SPDK_LOG_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(SPDK_LOG_BLOBFS, "Failed to create a blobstore block device from bdev desc");
SPDK_INFOLOG(SPDK_LOG_BLOBFS_BDEV, "Failed to create a blobstore block device from bdev desc");
rc = -ENOMEM;
spdk_bdev_close(desc);
@ -191,14 +192,15 @@ spdk_blobfs_bdev_create(const char *bdev_name, uint32_t cluster_sz,
/* Creation requires WRITE operation */
rc = spdk_bdev_open_ext(bdev_name, true, blobfs_bdev_event_cb, NULL, &desc);
if (rc != 0) {
SPDK_INFOLOG(SPDK_LOG_BLOBFS, "Failed to open bdev(%s): %s\n", ctx->bdev_name, spdk_strerror(rc));
SPDK_INFOLOG(SPDK_LOG_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(SPDK_LOG_BLOBFS, "Failed to create a blobstore block device from bdev desc\n");
SPDK_INFOLOG(SPDK_LOG_BLOBFS_BDEV, "Failed to create a blobstore block device from bdev desc\n");
rc = -ENOMEM;
spdk_bdev_close(desc);
@ -207,7 +209,7 @@ spdk_blobfs_bdev_create(const char *bdev_name, uint32_t cluster_sz,
rc = spdk_bs_bdev_claim(bs_dev, &blobfs_bdev_module);
if (rc) {
SPDK_INFOLOG(SPDK_LOG_BLOBFS, "Blobfs base bdev already claimed by another bdev\n");
SPDK_INFOLOG(SPDK_LOG_BLOBFS_BDEV, "Blobfs base bdev already claimed by another bdev\n");
bs_dev->destroy(bs_dev);
goto invalid;
@ -227,7 +229,7 @@ invalid:
cb_fn(cb_arg, rc);
}
SPDK_LOG_REGISTER_COMPONENT("blobfs_bdev", SPDK_LOG_BLOBFS_BDEV)
#ifdef SPDK_CONFIG_FUSE
static void
@ -323,14 +325,15 @@ spdk_blobfs_bdev_mount(const char *bdev_name, const char *mountpoint,
rc = spdk_bdev_open_ext(bdev_name, true, blobfs_bdev_fuse_event_cb, ctx, &desc);
if (rc != 0) {
SPDK_INFOLOG(SPDK_LOG_BLOBFS, "Failed to open bdev(%s): %s\n", ctx->bdev_name, spdk_strerror(rc));
SPDK_INFOLOG(SPDK_LOG_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(SPDK_LOG_BLOBFS, "Failed to create a blobstore block device from bdev desc");
SPDK_INFOLOG(SPDK_LOG_BLOBFS_BDEV, "Failed to create a blobstore block device from bdev desc");
rc = -ENOMEM;
spdk_bdev_close(desc);
@ -339,7 +342,7 @@ spdk_blobfs_bdev_mount(const char *bdev_name, const char *mountpoint,
rc = spdk_bs_bdev_claim(bs_dev, &blobfs_bdev_module);
if (rc != 0) {
SPDK_INFOLOG(SPDK_LOG_BLOBFS, "Blobfs base bdev already claimed by another bdev\n");
SPDK_INFOLOG(SPDK_LOG_BLOBFS_BDEV, "Blobfs base bdev already claimed by another bdev\n");
bs_dev->destroy(bs_dev);
goto invalid;

View File

@ -201,7 +201,7 @@ rpc_decode_cluster_sz(const struct spdk_json_val *val, void *out)
return -EINVAL;
}
SPDK_DEBUGLOG(SPDK_LOG_BLOBFS, "cluster_sz of blobfs: %ld\n", *cluster_sz);
SPDK_DEBUGLOG(SPDK_LOG_BLOBFS_BDEV_RPC, "cluster_sz of blobfs: %ld\n", *cluster_sz);
return 0;
}
@ -261,6 +261,7 @@ spdk_rpc_blobfs_create(struct spdk_jsonrpc_request *request,
SPDK_RPC_REGISTER("blobfs_create", spdk_rpc_blobfs_create, SPDK_RPC_RUNTIME)
SPDK_LOG_REGISTER_COMPONENT("blobfs_bdev_rpc", SPDK_LOG_BLOBFS_BDEV_RPC)
#ifdef SPDK_CONFIG_FUSE
struct rpc_blobfs_mount {

View File

@ -29,6 +29,10 @@ function confirm_abi_deps() {
cat <<EOF > ${suppression_file}
[suppress_variable]
name = SPDK_LOG_BDEV
[suppress_variable]
name = SPDK_LOG_BLOBFS_BDEV
[suppress_variable]
name = SPDK_LOG_BLOBFS_BDEV_RPC
EOF

View File

@ -346,5 +346,3 @@ int main(int argc, char **argv)
return num_failures;
}
SPDK_LOG_REGISTER_COMPONENT("blobfs", SPDK_LOG_BLOBFS)