From 86ba16c39c091790f79e99a033db86b6fd502606 Mon Sep 17 00:00:00 2001 From: Konrad Sztyber Date: Thu, 10 Nov 2022 16:32:42 +0100 Subject: [PATCH] build: compile API functions with missing deps We should always build all function that are part of the API, even if some of the libraries they depend on are missing. In that case, they can return an error instead. Signed-off-by: Konrad Sztyber Change-Id: I72b450b3a1d62e222bd843e45be547d926414775 Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/15414 Tested-by: SPDK CI Jenkins Community-CI: Mellanox Build Bot Reviewed-by: Tomasz Zawadzki Reviewed-by: Aleksey Marchuk Reviewed-by: Jim Harris --- include/spdk/blobfs_bdev.h | 2 -- lib/nvme/Makefile | 4 +-- lib/nvme/nvme_cuse.c | 43 ++++++++++++++++++++++++++++++++ module/blobfs/bdev/blobfs_bdev.c | 10 ++++++++ 4 files changed, 55 insertions(+), 4 deletions(-) diff --git a/include/spdk/blobfs_bdev.h b/include/spdk/blobfs_bdev.h index ab37fd6ad..b4d9563eb 100644 --- a/include/spdk/blobfs_bdev.h +++ b/include/spdk/blobfs_bdev.h @@ -47,7 +47,6 @@ void spdk_blobfs_bdev_detect(const char *bdev_name, void spdk_blobfs_bdev_create(const char *bdev_name, uint32_t cluster_sz, spdk_blobfs_bdev_op_complete cb_fn, void *cb_arg); -#ifdef SPDK_CONFIG_FUSE /** * Mount a blobfs on given device to a host path by FUSE * @@ -61,7 +60,6 @@ void spdk_blobfs_bdev_create(const char *bdev_name, uint32_t cluster_sz, */ void spdk_blobfs_bdev_mount(const char *bdev_name, const char *mountpoint, spdk_blobfs_bdev_op_complete cb_fn, void *cb_arg); -#endif #ifdef __cplusplus } diff --git a/lib/nvme/Makefile b/lib/nvme/Makefile index f73e4fbc5..cc8ebe83a 100644 --- a/lib/nvme/Makefile +++ b/lib/nvme/Makefile @@ -13,12 +13,12 @@ C_SRCS = nvme_ctrlr_cmd.c nvme_ctrlr.c nvme_fabric.c nvme_ns_cmd.c \ nvme_ns.c nvme_pcie_common.c nvme_pcie.c nvme_qpair.c nvme.c \ nvme_quirks.c nvme_transport.c nvme_discovery.c \ nvme_ctrlr_ocssd_cmd.c nvme_ns_ocssd_cmd.c nvme_tcp.c \ - nvme_opal.c nvme_io_msg.c nvme_poll_group.c nvme_zns.c + nvme_opal.c nvme_io_msg.c nvme_poll_group.c nvme_zns.c \ + nvme_cuse.c ifeq ($(OS),Linux) C_SRCS += nvme_vfio_user.c endif C_SRCS-$(CONFIG_RDMA) += nvme_rdma.c -C_SRCS-$(CONFIG_NVME_CUSE) += nvme_cuse.c LIBNAME = nvme LOCAL_SYS_LIBS = diff --git a/lib/nvme/nvme_cuse.c b/lib/nvme/nvme_cuse.c index ec5d79d02..b4c53f922 100644 --- a/lib/nvme/nvme_cuse.c +++ b/lib/nvme/nvme_cuse.c @@ -2,7 +2,12 @@ * Copyright (C) 2019 Intel Corporation. * All rights reserved. */ +#include "spdk/stdinc.h" +#include "spdk/config.h" +#include "spdk/log.h" +#include "spdk/nvme.h" +#ifdef SPDK_CONFIG_NVME_CUSE #define FUSE_USE_VERSION 31 #include @@ -1345,3 +1350,41 @@ spdk_nvme_cuse_get_ns_name(struct spdk_nvme_ctrlr *ctrlr, uint32_t nsid, char *n } SPDK_LOG_REGISTER_COMPONENT(nvme_cuse) + +#else /* SPDK_CONFIG_NVME_CUSE */ + +int +spdk_nvme_cuse_get_ctrlr_name(struct spdk_nvme_ctrlr *ctrlr, char *name, size_t *size) +{ + SPDK_ERRLOG("spdk_nvme_cuse_get_ctrlr_name() is unsupported\n"); + return -ENOTSUP; +} + +int +spdk_nvme_cuse_get_ns_name(struct spdk_nvme_ctrlr *ctrlr, uint32_t nsid, char *name, size_t *size) +{ + SPDK_ERRLOG("spdk_nvme_cuse_get_ns_name() is unsupported\n"); + return -ENOTSUP; +} + +int +spdk_nvme_cuse_register(struct spdk_nvme_ctrlr *ctrlr) +{ + SPDK_ERRLOG("spdk_nvme_cuse_register() is unsupported\n"); + return -ENOTSUP; +} + +int +spdk_nvme_cuse_unregister(struct spdk_nvme_ctrlr *ctrlr) +{ + SPDK_ERRLOG("spdk_nvme_cuse_unregister() is unsupported\n"); + return -ENOTSUP; +} + +void +spdk_nvme_cuse_update_namespaces(struct spdk_nvme_ctrlr *ctrlr) +{ + SPDK_ERRLOG("spdk_nvme_cuse_update_namespaces() is unsupported\n"); +} + +#endif diff --git a/module/blobfs/bdev/blobfs_bdev.c b/module/blobfs/bdev/blobfs_bdev.c index 856541368..9f78fd2a5 100644 --- a/module/blobfs/bdev/blobfs_bdev.c +++ b/module/blobfs/bdev/blobfs_bdev.c @@ -297,4 +297,14 @@ invalid: cb_fn(cb_arg, rc); } +#else /* SPDK_CONFIG_FUSE */ + +void +spdk_blobfs_bdev_mount(const char *bdev_name, const char *mountpoint, + spdk_blobfs_bdev_op_complete cb_fn, void *cb_arg) +{ + SPDK_ERRLOG("spdk_blobfs_bdev_mount() is unsupported\n"); + cb_fn(cb_arg, -ENOTSUP); +} + #endif