lvol: pass UUID as a string in public API
Modify the vbdev_get_lvol_store_by_uuid() API function to take the UUID as a string instead of a uuid_t, since this simplifies the calling code. This also allows us to remove #include <uuid/uuid.h> from the public API, giving us the freedom to change the underlying UUID implementation later if necessary without breaking API. Change-Id: Ib360281f384f95722c5ab64e75dcf3603f826e4c Signed-off-by: Daniel Verkamp <daniel.verkamp@intel.com> Reviewed-on: https://review.gerrithub.io/389893 Tested-by: SPDK Automated Test System <sys_sgsw@intel.com> Reviewed-by: Jim Harris <james.r.harris@intel.com> Reviewed-by: Maciej Szwed <maciej.szwed@intel.com> Reviewed-by: Ben Walker <benjamin.walker@intel.com>
This commit is contained in:
parent
f5acc37221
commit
c6d32d39af
@ -40,7 +40,6 @@
|
|||||||
|
|
||||||
#include "spdk/queue.h"
|
#include "spdk/queue.h"
|
||||||
#include "spdk/blob.h"
|
#include "spdk/blob.h"
|
||||||
#include <uuid/uuid.h>
|
|
||||||
|
|
||||||
struct spdk_lvol_store;
|
struct spdk_lvol_store;
|
||||||
struct spdk_lvol;
|
struct spdk_lvol;
|
||||||
@ -188,10 +187,11 @@ struct spdk_lvol *vbdev_get_lvol_by_name(const char *name);
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Search for handle lvolstore
|
* \brief Search for handle lvolstore
|
||||||
* \param uuid UUID of lvolstore
|
* \param uuid_str UUID of lvolstore
|
||||||
* \return Handle to spdk_lvol_store or NULL if not found.
|
* \return Handle to spdk_lvol_store or NULL if not found.
|
||||||
*/
|
*/
|
||||||
struct spdk_lvol_store *vbdev_get_lvol_store_by_uuid(uuid_t uuid);
|
struct spdk_lvol_store *vbdev_get_lvol_store_by_uuid(const char *uuid_str);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Search for handle to lvolstore
|
* \brief Search for handle to lvolstore
|
||||||
* \param name name of lvolstore
|
* \param name name of lvolstore
|
||||||
|
@ -37,6 +37,8 @@
|
|||||||
#include "spdk/lvol.h"
|
#include "spdk/lvol.h"
|
||||||
#include "spdk_internal/bdev.h"
|
#include "spdk_internal/bdev.h"
|
||||||
|
|
||||||
|
#include <uuid/uuid.h>
|
||||||
|
|
||||||
/* Default size of blobstore cluster */
|
/* Default size of blobstore cluster */
|
||||||
#define SPDK_LVS_OPTS_CLUSTER_SZ (1024 * 1024 * 1024)
|
#define SPDK_LVS_OPTS_CLUSTER_SZ (1024 * 1024 * 1024)
|
||||||
|
|
||||||
|
@ -281,8 +281,8 @@ vbdev_lvol_store_next(struct lvol_store_bdev *prev)
|
|||||||
return lvs_bdev;
|
return lvs_bdev;
|
||||||
}
|
}
|
||||||
|
|
||||||
struct spdk_lvol_store *
|
static struct spdk_lvol_store *
|
||||||
vbdev_get_lvol_store_by_uuid(uuid_t uuid)
|
_vbdev_get_lvol_store_by_uuid(uuid_t uuid)
|
||||||
{
|
{
|
||||||
struct spdk_lvol_store *lvs = NULL;
|
struct spdk_lvol_store *lvs = NULL;
|
||||||
struct lvol_store_bdev *lvs_bdev = vbdev_lvol_store_first();
|
struct lvol_store_bdev *lvs_bdev = vbdev_lvol_store_first();
|
||||||
@ -297,6 +297,18 @@ vbdev_get_lvol_store_by_uuid(uuid_t uuid)
|
|||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
struct spdk_lvol_store *
|
||||||
|
vbdev_get_lvol_store_by_uuid(const char *uuid_str)
|
||||||
|
{
|
||||||
|
uuid_t uuid;
|
||||||
|
|
||||||
|
if (uuid_parse(uuid_str, uuid)) {
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
return _vbdev_get_lvol_store_by_uuid(uuid);
|
||||||
|
}
|
||||||
|
|
||||||
struct spdk_lvol_store *
|
struct spdk_lvol_store *
|
||||||
vbdev_get_lvol_store_by_name(const char *name)
|
vbdev_get_lvol_store_by_name(const char *name)
|
||||||
{
|
{
|
||||||
|
@ -50,8 +50,6 @@ static int
|
|||||||
vbdev_get_lvol_store_by_uuid_xor_name(const char *uuid, const char *lvs_name,
|
vbdev_get_lvol_store_by_uuid_xor_name(const char *uuid, const char *lvs_name,
|
||||||
struct spdk_lvol_store **lvs)
|
struct spdk_lvol_store **lvs)
|
||||||
{
|
{
|
||||||
uuid_t lvol_store_uuid;
|
|
||||||
|
|
||||||
if ((uuid == NULL && lvs_name == NULL)) {
|
if ((uuid == NULL && lvs_name == NULL)) {
|
||||||
SPDK_INFOLOG(SPDK_TRACE_VBDEV_LVOL, "lvs UUID nor lvs name specified\n");
|
SPDK_INFOLOG(SPDK_TRACE_VBDEV_LVOL, "lvs UUID nor lvs name specified\n");
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
@ -60,15 +58,10 @@ vbdev_get_lvol_store_by_uuid_xor_name(const char *uuid, const char *lvs_name,
|
|||||||
lvs_name);
|
lvs_name);
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
} else if (uuid) {
|
} else if (uuid) {
|
||||||
if (uuid_parse(uuid, lvol_store_uuid)) {
|
*lvs = vbdev_get_lvol_store_by_uuid(uuid);
|
||||||
SPDK_INFOLOG(SPDK_TRACE_VBDEV_LVOL, "incorrect UUID '%s'\n", uuid);
|
|
||||||
return -EINVAL;
|
|
||||||
}
|
|
||||||
|
|
||||||
*lvs = vbdev_get_lvol_store_by_uuid(lvol_store_uuid);
|
|
||||||
|
|
||||||
if (*lvs == NULL) {
|
if (*lvs == NULL) {
|
||||||
SPDK_INFOLOG(SPDK_TRACE_VBDEV_LVOL, "blobstore with UUID '%p' not found\n", &lvol_store_uuid);
|
SPDK_INFOLOG(SPDK_TRACE_VBDEV_LVOL, "blobstore with UUID '%s' not found\n", uuid);
|
||||||
return -ENODEV;
|
return -ENODEV;
|
||||||
}
|
}
|
||||||
} else if (lvs_name) {
|
} else if (lvs_name) {
|
||||||
|
Loading…
Reference in New Issue
Block a user