From 6569a0ea0630b45bb83582ac2893cda584375dc4 Mon Sep 17 00:00:00 2001 From: Seth Howell Date: Mon, 6 Apr 2020 17:45:22 -0700 Subject: [PATCH] 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 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 Reviewed-by: Shuhei Matsumoto Reviewed-by: Aleksey Marchuk Reviewed-by: Jim Harris --- lib/blobfs/Makefile | 4 +- lib/blobfs/spdk_blobfs.map | 45 +++++++++++++++++++ module/blobfs/bdev/blobfs_bdev.c | 21 +++++---- module/blobfs/bdev/blobfs_bdev_rpc.c | 3 +- test/make/check_so_deps.sh | 4 ++ .../lib/blobfs/blobfs_bdev.c/blobfs_bdev_ut.c | 2 - 6 files changed, 66 insertions(+), 13 deletions(-) create mode 100644 lib/blobfs/spdk_blobfs.map diff --git a/lib/blobfs/Makefile b/lib/blobfs/Makefile index 09eb094c2..9a6b6cbad 100644 --- a/lib/blobfs/Makefile +++ b/lib/blobfs/Makefile @@ -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 diff --git a/lib/blobfs/spdk_blobfs.map b/lib/blobfs/spdk_blobfs.map new file mode 100644 index 000000000..91c02f61e --- /dev/null +++ b/lib/blobfs/spdk_blobfs.map @@ -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: *; +}; diff --git a/module/blobfs/bdev/blobfs_bdev.c b/module/blobfs/bdev/blobfs_bdev.c index 6e1f1c79e..93b60190c 100644 --- a/module/blobfs/bdev/blobfs_bdev.c +++ b/module/blobfs/bdev/blobfs_bdev.c @@ -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; diff --git a/module/blobfs/bdev/blobfs_bdev_rpc.c b/module/blobfs/bdev/blobfs_bdev_rpc.c index 9eab36b7b..fab49d20b 100644 --- a/module/blobfs/bdev/blobfs_bdev_rpc.c +++ b/module/blobfs/bdev/blobfs_bdev_rpc.c @@ -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 { diff --git a/test/make/check_so_deps.sh b/test/make/check_so_deps.sh index c765f2621..d74a70c15 100755 --- a/test/make/check_so_deps.sh +++ b/test/make/check_so_deps.sh @@ -29,6 +29,10 @@ function confirm_abi_deps() { cat < ${suppression_file} [suppress_variable] name = SPDK_LOG_BDEV +[suppress_variable] + name = SPDK_LOG_BLOBFS_BDEV +[suppress_variable] + name = SPDK_LOG_BLOBFS_BDEV_RPC EOF diff --git a/test/unit/lib/blobfs/blobfs_bdev.c/blobfs_bdev_ut.c b/test/unit/lib/blobfs/blobfs_bdev.c/blobfs_bdev_ut.c index ec9f6afb1..0e2064743 100644 --- a/test/unit/lib/blobfs/blobfs_bdev.c/blobfs_bdev_ut.c +++ b/test/unit/lib/blobfs/blobfs_bdev.c/blobfs_bdev_ut.c @@ -346,5 +346,3 @@ int main(int argc, char **argv) return num_failures; } - -SPDK_LOG_REGISTER_COMPONENT("blobfs", SPDK_LOG_BLOBFS)