blob: rename spdk blob metadata functions
spdk_bs_md_resize_blob => spdk_blob_resize spdk_bs_md_sync_blob => spdk_blob_sync_md spdk_bs_md_get_xattr_value => spdk_blob_get_xattr_value spdK_bs_md_get_xattr_names => spdk_blob_get_xattr_names spdk_blob_md_set_xattr => spdk_blob_set_xattr spdk_blob_md_remove_xattr => spdk_blob_remove_xattr spdk_bs_md_close_blob => spdk_blob_close Signed-off-by: Jim Harris <james.r.harris@intel.com> Change-Id: I99b593c03bc61354ba6aa5a446b0fc82df1e9ce2 Reviewed-on: https://review.gerrithub.io/391006 Reviewed-by: Ben Walker <benjamin.walker@intel.com> Tested-by: SPDK Automated Test System <sys_sgsw@intel.com> Reviewed-by: Daniel Verkamp <daniel.verkamp@intel.com>
This commit is contained in:
parent
c2009e9e85
commit
2c3591f183
12
CHANGELOG.md
12
CHANGELOG.md
@ -35,6 +35,18 @@ vfio-pci driver should trigger one "remove" uevent at the very beginning of the
|
||||
of pci driver, this will make sure the SPDK could detect the event and release the vfio-attached
|
||||
device Fd and related resource when the device removed.
|
||||
|
||||
### Blobstore
|
||||
|
||||
A number of functions have been renamed:
|
||||
|
||||
spdk_bs_md_resize_blob => spdk_blob_resize
|
||||
spdk_bs_md_sync_blob => spdk_blob_sync_md
|
||||
spdk_bs_md_close_blob => spdk_blob_close
|
||||
spdk_bs_md_get_xattr_names => spdk_blob_get_xattr_names
|
||||
spdk_bs_md_get_xattr_value => spdk_blob_get_xattr_value
|
||||
spdk_blob_md_set_xattr => spdk_blob_set_xattr
|
||||
spdk_blob_md_remove_xattr => spdk_blob_remove_xattr
|
||||
|
||||
## v17.10: Logical Volumes
|
||||
|
||||
### New dependencies
|
||||
|
@ -286,8 +286,7 @@ sync_cb(void *arg1, int bserrno)
|
||||
return;
|
||||
}
|
||||
|
||||
spdk_bs_md_close_blob(&cli_context->blob, close_cb,
|
||||
cli_context);
|
||||
spdk_blob_close(&cli_context->blob, close_cb, cli_context);
|
||||
}
|
||||
|
||||
/*
|
||||
@ -307,8 +306,7 @@ open_now_resize_cb(void *cb_arg, struct spdk_blob *blob, int bserrno)
|
||||
}
|
||||
cli_context->blob = blob;
|
||||
|
||||
rc = spdk_bs_md_resize_blob(cli_context->blob,
|
||||
cli_context->num_clusters);
|
||||
rc = spdk_blob_resize(cli_context->blob, cli_context->num_clusters);
|
||||
if (rc) {
|
||||
unload_bs(cli_context, "Error in blob resize",
|
||||
bserrno);
|
||||
@ -323,8 +321,7 @@ open_now_resize_cb(void *cb_arg, struct spdk_blob *blob, int bserrno)
|
||||
* Always a good idea to sync after MD changes or the changes
|
||||
* may be lost if things aren't closed cleanly.
|
||||
*/
|
||||
spdk_bs_md_sync_blob(cli_context->blob, sync_cb,
|
||||
cli_context);
|
||||
spdk_blob_sync_md(cli_context->blob, sync_cb, cli_context);
|
||||
}
|
||||
|
||||
/*
|
||||
@ -440,14 +437,14 @@ show_blob(struct cli_context_t *cli_context)
|
||||
val = spdk_blob_get_num_pages(cli_context->blob);
|
||||
printf("# of pages: %" PRIu64 "\n", val);
|
||||
|
||||
spdk_bs_md_get_xattr_names(cli_context->blob, &names);
|
||||
spdk_blob_get_xattr_names(cli_context->blob, &names);
|
||||
|
||||
printf("# of xattrs: %d\n", spdk_xattr_names_get_count(names));
|
||||
printf("xattrs:\n");
|
||||
for (i = 0; i < spdk_xattr_names_get_count(names); i++) {
|
||||
spdk_bs_md_get_xattr_value(cli_context->blob,
|
||||
spdk_xattr_names_get_name(names, i),
|
||||
&value, &value_len);
|
||||
spdk_blob_get_xattr_value(cli_context->blob,
|
||||
spdk_xattr_names_get_name(names, i),
|
||||
&value, &value_len);
|
||||
if ((value_len + 1) > sizeof(data)) {
|
||||
printf("FYI: adjusting size of xattr due to CLI limits.\n");
|
||||
value_len = sizeof(data) - 1;
|
||||
@ -560,18 +557,15 @@ set_xattr_cb(void *cb_arg, struct spdk_blob *blob, int bserrno)
|
||||
cli_context->blob = blob;
|
||||
|
||||
if (cli_context->action == CLI_SET_XATTR) {
|
||||
spdk_blob_md_set_xattr(cli_context->blob,
|
||||
cli_context->key,
|
||||
cli_context->value,
|
||||
strlen(cli_context->value) + 1);
|
||||
spdk_blob_set_xattr(cli_context->blob, cli_context->key,
|
||||
cli_context->value, strlen(cli_context->value) + 1);
|
||||
printf("Xattr has been set.\n");
|
||||
} else {
|
||||
spdk_blob_md_remove_xattr(cli_context->blob,
|
||||
cli_context->key);
|
||||
spdk_blob_remove_xattr(cli_context->blob, cli_context->key);
|
||||
printf("Xattr has been removed.\n");
|
||||
}
|
||||
|
||||
spdk_bs_md_sync_blob(cli_context->blob, sync_cb, cli_context);
|
||||
spdk_blob_sync_md(cli_context->blob, sync_cb, cli_context);
|
||||
}
|
||||
|
||||
/*
|
||||
@ -609,8 +603,7 @@ read_dump_cb(void *arg1, int bserrno)
|
||||
/* done reading */
|
||||
printf("\nFile write complete (to %s).\n", cli_context->file);
|
||||
fclose(cli_context->fp);
|
||||
spdk_bs_md_close_blob(&cli_context->blob, close_cb,
|
||||
cli_context);
|
||||
spdk_blob_close(&cli_context->blob, close_cb, cli_context);
|
||||
}
|
||||
}
|
||||
|
||||
@ -658,7 +651,7 @@ write_imp_cb(void *arg1, int bserrno)
|
||||
/* done writing */
|
||||
printf("\nBlob import complete (from %s).\n", cli_context->file);
|
||||
fclose(cli_context->fp);
|
||||
spdk_bs_md_close_blob(&cli_context->blob, close_cb, cli_context);
|
||||
spdk_blob_close(&cli_context->blob, close_cb, cli_context);
|
||||
}
|
||||
}
|
||||
|
||||
@ -688,7 +681,7 @@ dump_imp_open_cb(void *cb_arg, struct spdk_blob *blob, int bserrno)
|
||||
ALIGN_4K, NULL);
|
||||
if (cli_context->buff == NULL) {
|
||||
printf("Error in allocating memory\n");
|
||||
spdk_bs_md_close_blob(&cli_context->blob, close_cb, cli_context);
|
||||
spdk_blob_close(&cli_context->blob, close_cb, cli_context);
|
||||
return;
|
||||
}
|
||||
printf("Working");
|
||||
@ -698,7 +691,7 @@ dump_imp_open_cb(void *cb_arg, struct spdk_blob *blob, int bserrno)
|
||||
cli_context->fp = fopen(cli_context->file, "w");
|
||||
if (cli_context->fp == NULL) {
|
||||
printf("Error in opening file\n");
|
||||
spdk_bs_md_close_blob(&cli_context->blob, close_cb, cli_context);
|
||||
spdk_blob_close(&cli_context->blob, close_cb, cli_context);
|
||||
return;
|
||||
}
|
||||
|
||||
@ -710,7 +703,7 @@ dump_imp_open_cb(void *cb_arg, struct spdk_blob *blob, int bserrno)
|
||||
cli_context->fp = fopen(cli_context->file, "r");
|
||||
if (cli_context->fp == NULL) {
|
||||
printf("Error in opening file\n");
|
||||
spdk_bs_md_close_blob(&cli_context->blob, close_cb, cli_context);
|
||||
spdk_blob_close(&cli_context->blob, close_cb, cli_context);
|
||||
return;
|
||||
}
|
||||
|
||||
@ -758,8 +751,7 @@ write_cb(void *arg1, int bserrno)
|
||||
} else {
|
||||
/* done writing */
|
||||
printf("\nBlob fill complete (with 0x%x).\n", cli_context->fill_value);
|
||||
spdk_bs_md_close_blob(&cli_context->blob, close_cb,
|
||||
cli_context);
|
||||
spdk_blob_close(&cli_context->blob, close_cb, cli_context);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -168,8 +168,7 @@ read_complete(void *arg1, int bserrno)
|
||||
}
|
||||
|
||||
/* Now let's close it and delete the blob in the callback. */
|
||||
spdk_bs_md_close_blob(&hello_context->blob, delete_blob,
|
||||
hello_context);
|
||||
spdk_blob_close(&hello_context->blob, delete_blob, hello_context);
|
||||
}
|
||||
|
||||
/*
|
||||
@ -298,7 +297,7 @@ open_complete(void *cb_arg, struct spdk_blob *blob, int bserrno)
|
||||
* there'd usually be many blobs of various sizes. The resize
|
||||
* unit is a cluster.
|
||||
*/
|
||||
rc = spdk_bs_md_resize_blob(hello_context->blob, free);
|
||||
rc = spdk_blob_resize(hello_context->blob, free);
|
||||
if (rc) {
|
||||
unload_bs(hello_context, "Error in blob resize",
|
||||
bserrno);
|
||||
@ -318,8 +317,7 @@ open_complete(void *cb_arg, struct spdk_blob *blob, int bserrno)
|
||||
* good idea to sync after making metadata changes unless
|
||||
* it has an unacceptable impact on application performance.
|
||||
*/
|
||||
spdk_bs_md_sync_blob(hello_context->blob, sync_complete,
|
||||
hello_context);
|
||||
spdk_blob_sync_md(hello_context->blob, sync_complete, hello_context);
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -235,22 +235,18 @@ void spdk_bs_md_open_blob(struct spdk_blob_store *bs, spdk_blob_id blobid,
|
||||
/* Resize a blob to 'sz' clusters.
|
||||
*
|
||||
* These changes are not persisted to disk until
|
||||
* spdk_bs_md_sync_blob() is called. */
|
||||
int spdk_bs_md_resize_blob(struct spdk_blob *blob, size_t sz);
|
||||
* spdk_blob_sync_md() is called. */
|
||||
int spdk_blob_resize(struct spdk_blob *blob, size_t sz);
|
||||
|
||||
/* Sync a blob */
|
||||
/* Make a blob persistent. This applies to open, resize, set xattr,
|
||||
/* Make a blob persistent. This applies to resize, set xattr,
|
||||
* and remove xattr. These operations will not be persistent until
|
||||
* the blob has been synced.
|
||||
*
|
||||
* I/O operations (read/write) are synced independently. See
|
||||
* spdk_bs_io_flush_channel().
|
||||
*/
|
||||
void spdk_bs_md_sync_blob(struct spdk_blob *blob,
|
||||
spdk_blob_op_complete cb_fn, void *cb_arg);
|
||||
void spdk_blob_sync_md(struct spdk_blob *blob, spdk_blob_op_complete cb_fn, void *cb_arg);
|
||||
|
||||
/* Close a blob. This will automatically sync. */
|
||||
void spdk_bs_md_close_blob(struct spdk_blob **blob, spdk_blob_op_complete cb_fn, void *cb_arg);
|
||||
void spdk_blob_close(struct spdk_blob **blob, spdk_blob_op_complete cb_fn, void *cb_arg);
|
||||
|
||||
struct spdk_io_channel *spdk_bs_alloc_io_channel(struct spdk_blob_store *bs);
|
||||
|
||||
@ -294,13 +290,12 @@ void spdk_bs_md_iter_first(struct spdk_blob_store *bs,
|
||||
void spdk_bs_md_iter_next(struct spdk_blob_store *bs, struct spdk_blob **blob,
|
||||
spdk_blob_op_with_handle_complete cb_fn, void *cb_arg);
|
||||
|
||||
int spdk_blob_md_set_xattr(struct spdk_blob *blob, const char *name, const void *value,
|
||||
uint16_t value_len);
|
||||
int spdk_blob_md_remove_xattr(struct spdk_blob *blob, const char *name);
|
||||
int spdk_bs_md_get_xattr_value(struct spdk_blob *blob, const char *name,
|
||||
const void **value, size_t *value_len);
|
||||
int spdk_bs_md_get_xattr_names(struct spdk_blob *blob,
|
||||
struct spdk_xattr_names **names);
|
||||
int spdk_blob_set_xattr(struct spdk_blob *blob, const char *name, const void *value,
|
||||
uint16_t value_len);
|
||||
int spdk_blob_remove_xattr(struct spdk_blob *blob, const char *name);
|
||||
int spdk_blob_get_xattr_value(struct spdk_blob *blob, const char *name,
|
||||
const void **value, size_t *value_len);
|
||||
int spdk_blob_get_xattr_names(struct spdk_blob *blob, struct spdk_xattr_names **names);
|
||||
|
||||
uint32_t spdk_xattr_names_get_count(struct spdk_xattr_names *names);
|
||||
const char *spdk_xattr_names_get_name(struct spdk_xattr_names *names, uint32_t index);
|
||||
|
@ -855,7 +855,7 @@ _vbdev_lvs_examine_finish(void *cb_arg, struct spdk_lvol *lvol, int lvolerrno)
|
||||
SPDK_ERRLOG("Cannot create bdev for lvol %s\n", lvol->old_name);
|
||||
TAILQ_REMOVE(&lvs->lvols, lvol, link);
|
||||
lvs->lvol_count--;
|
||||
spdk_bs_md_close_blob(&lvol->blob, _vbdev_lvol_close_cb, lvs);
|
||||
spdk_blob_close(&lvol->blob, _vbdev_lvol_close_cb, lvs);
|
||||
SPDK_INFOLOG(SPDK_LOG_VBDEV_LVOL, "Opening lvol %s failed\n", lvol->old_name);
|
||||
free(lvol->old_name);
|
||||
free(lvol);
|
||||
|
@ -2632,9 +2632,9 @@ void spdk_bs_md_create_blob(struct spdk_blob_store *bs,
|
||||
|
||||
/* END spdk_bs_md_create_blob */
|
||||
|
||||
/* START spdk_bs_md_resize_blob */
|
||||
/* START spdk_blob_resize */
|
||||
int
|
||||
spdk_bs_md_resize_blob(struct spdk_blob *_blob, uint64_t sz)
|
||||
spdk_blob_resize(struct spdk_blob *_blob, uint64_t sz)
|
||||
{
|
||||
struct spdk_blob_data *blob = __blob_to_data(_blob);
|
||||
int rc;
|
||||
@ -2659,7 +2659,7 @@ spdk_bs_md_resize_blob(struct spdk_blob *_blob, uint64_t sz)
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* END spdk_bs_md_resize_blob */
|
||||
/* END spdk_blob_resize */
|
||||
|
||||
|
||||
/* START spdk_bs_md_delete_blob */
|
||||
@ -2796,15 +2796,15 @@ void spdk_bs_md_open_blob(struct spdk_blob_store *bs, spdk_blob_id blobid,
|
||||
_spdk_blob_load(seq, blob, _spdk_bs_md_open_blob_cpl, blob);
|
||||
}
|
||||
|
||||
/* START spdk_bs_md_sync_blob */
|
||||
/* START spdk_blob_sync_md */
|
||||
static void
|
||||
_spdk_blob_sync_cpl(spdk_bs_sequence_t *seq, void *cb_arg, int bserrno)
|
||||
_spdk_blob_sync_md_cpl(spdk_bs_sequence_t *seq, void *cb_arg, int bserrno)
|
||||
{
|
||||
spdk_bs_sequence_finish(seq, bserrno);
|
||||
}
|
||||
|
||||
void spdk_bs_md_sync_blob(struct spdk_blob *_blob,
|
||||
spdk_blob_op_complete cb_fn, void *cb_arg)
|
||||
void
|
||||
spdk_blob_sync_md(struct spdk_blob *_blob, spdk_blob_op_complete cb_fn, void *cb_arg)
|
||||
{
|
||||
struct spdk_blob_data *blob = __blob_to_data(_blob);
|
||||
struct spdk_bs_cpl cpl;
|
||||
@ -2837,12 +2837,12 @@ void spdk_bs_md_sync_blob(struct spdk_blob *_blob,
|
||||
return;
|
||||
}
|
||||
|
||||
_spdk_blob_persist(seq, blob, _spdk_blob_sync_cpl, blob);
|
||||
_spdk_blob_persist(seq, blob, _spdk_blob_sync_md_cpl, blob);
|
||||
}
|
||||
|
||||
/* END spdk_bs_md_sync_blob */
|
||||
/* END spdk_blob_sync_md */
|
||||
|
||||
/* START spdk_bs_md_close_blob */
|
||||
/* START spdk_blob_close */
|
||||
|
||||
static void
|
||||
_spdk_blob_close_cpl(spdk_bs_sequence_t *seq, void *cb_arg, int bserrno)
|
||||
@ -2859,8 +2859,7 @@ _spdk_blob_close_cpl(spdk_bs_sequence_t *seq, void *cb_arg, int bserrno)
|
||||
spdk_bs_sequence_finish(seq, bserrno);
|
||||
}
|
||||
|
||||
void spdk_bs_md_close_blob(struct spdk_blob **b,
|
||||
spdk_blob_op_complete cb_fn, void *cb_arg)
|
||||
void spdk_blob_close(struct spdk_blob **b, spdk_blob_op_complete cb_fn, void *cb_arg)
|
||||
{
|
||||
struct spdk_bs_cpl cpl;
|
||||
struct spdk_blob_data *blob;
|
||||
@ -2901,7 +2900,7 @@ void spdk_bs_md_close_blob(struct spdk_blob **b,
|
||||
_spdk_blob_persist(seq, blob, _spdk_blob_close_cpl, b);
|
||||
}
|
||||
|
||||
/* END spdk_bs_md_close_blob */
|
||||
/* END spdk_blob_close */
|
||||
|
||||
struct spdk_io_channel *spdk_bs_alloc_io_channel(struct spdk_blob_store *bs)
|
||||
{
|
||||
@ -3058,12 +3057,12 @@ spdk_bs_md_iter_next(struct spdk_blob_store *bs, struct spdk_blob **b,
|
||||
ctx->cb_arg = cb_arg;
|
||||
|
||||
/* Close the existing blob */
|
||||
spdk_bs_md_close_blob(b, _spdk_bs_iter_close_cpl, ctx);
|
||||
spdk_blob_close(b, _spdk_bs_iter_close_cpl, ctx);
|
||||
}
|
||||
|
||||
int
|
||||
spdk_blob_md_set_xattr(struct spdk_blob *_blob, const char *name, const void *value,
|
||||
uint16_t value_len)
|
||||
spdk_blob_set_xattr(struct spdk_blob *_blob, const char *name, const void *value,
|
||||
uint16_t value_len)
|
||||
{
|
||||
struct spdk_blob_data *blob = __blob_to_data(_blob);
|
||||
struct spdk_xattr *xattr;
|
||||
@ -3106,7 +3105,7 @@ spdk_blob_md_set_xattr(struct spdk_blob *_blob, const char *name, const void *va
|
||||
}
|
||||
|
||||
int
|
||||
spdk_blob_md_remove_xattr(struct spdk_blob *_blob, const char *name)
|
||||
spdk_blob_remove_xattr(struct spdk_blob *_blob, const char *name)
|
||||
{
|
||||
struct spdk_blob_data *blob = __blob_to_data(_blob);
|
||||
struct spdk_xattr *xattr;
|
||||
@ -3137,8 +3136,8 @@ spdk_blob_md_remove_xattr(struct spdk_blob *_blob, const char *name)
|
||||
}
|
||||
|
||||
int
|
||||
spdk_bs_md_get_xattr_value(struct spdk_blob *_blob, const char *name,
|
||||
const void **value, size_t *value_len)
|
||||
spdk_blob_get_xattr_value(struct spdk_blob *_blob, const char *name,
|
||||
const void **value, size_t *value_len)
|
||||
{
|
||||
struct spdk_blob_data *blob = __blob_to_data(_blob);
|
||||
struct spdk_xattr *xattr;
|
||||
@ -3160,8 +3159,7 @@ struct spdk_xattr_names {
|
||||
};
|
||||
|
||||
int
|
||||
spdk_bs_md_get_xattr_names(struct spdk_blob *_blob,
|
||||
struct spdk_xattr_names **names)
|
||||
spdk_blob_get_xattr_names(struct spdk_blob *_blob, struct spdk_xattr_names **names)
|
||||
{
|
||||
struct spdk_blob_data *blob = __blob_to_data(_blob);
|
||||
struct spdk_xattr *xattr;
|
||||
|
@ -579,14 +579,14 @@ iter_cb(void *ctx, struct spdk_blob *blob, int rc)
|
||||
return;
|
||||
}
|
||||
|
||||
rc = spdk_bs_md_get_xattr_value(blob, "name", (const void **)&name, &value_len);
|
||||
rc = spdk_blob_get_xattr_value(blob, "name", (const void **)&name, &value_len);
|
||||
if (rc < 0) {
|
||||
args->fn.fs_op_with_handle(args->arg, fs, rc);
|
||||
free_fs_request(req);
|
||||
return;
|
||||
}
|
||||
|
||||
rc = spdk_bs_md_get_xattr_value(blob, "length", (const void **)&length, &value_len);
|
||||
rc = spdk_blob_get_xattr_value(blob, "length", (const void **)&length, &value_len);
|
||||
if (rc < 0) {
|
||||
args->fn.fs_op_with_handle(args->arg, fs, rc);
|
||||
free_fs_request(req);
|
||||
@ -596,7 +596,7 @@ iter_cb(void *ctx, struct spdk_blob *blob, int rc)
|
||||
assert(value_len == 8);
|
||||
|
||||
/* This file could be deleted last time without close it, then app crashed, so we delete it now */
|
||||
rc = spdk_bs_md_get_xattr_value(blob, "is_deleted", (const void **)&is_deleted, &value_len);
|
||||
rc = spdk_blob_get_xattr_value(blob, "is_deleted", (const void **)&is_deleted, &value_len);
|
||||
if (rc < 0) {
|
||||
struct spdk_file *f;
|
||||
|
||||
@ -858,11 +858,11 @@ fs_create_blob_open_cb(void *ctx, struct spdk_blob *blob, int bserrno)
|
||||
uint64_t length = 0;
|
||||
|
||||
f->blob = blob;
|
||||
spdk_bs_md_resize_blob(blob, 1);
|
||||
spdk_blob_md_set_xattr(blob, "name", f->name, strlen(f->name) + 1);
|
||||
spdk_blob_md_set_xattr(blob, "length", &length, sizeof(length));
|
||||
spdk_blob_resize(blob, 1);
|
||||
spdk_blob_set_xattr(blob, "name", f->name, strlen(f->name) + 1);
|
||||
spdk_blob_set_xattr(blob, "length", &length, sizeof(length));
|
||||
|
||||
spdk_bs_md_close_blob(&f->blob, fs_create_blob_close_cb, args);
|
||||
spdk_blob_close(&f->blob, fs_create_blob_close_cb, args);
|
||||
}
|
||||
|
||||
static void
|
||||
@ -1132,8 +1132,8 @@ fs_rename_blob_open_cb(void *ctx, struct spdk_blob *blob, int bserrno)
|
||||
const char *new_name = args->op.rename.new_name;
|
||||
|
||||
f->blob = blob;
|
||||
spdk_blob_md_set_xattr(blob, "name", new_name, strlen(new_name) + 1);
|
||||
spdk_bs_md_close_blob(&f->blob, fs_rename_blob_close_cb, req);
|
||||
spdk_blob_set_xattr(blob, "name", new_name, strlen(new_name) + 1);
|
||||
spdk_blob_close(&f->blob, fs_rename_blob_close_cb, req);
|
||||
}
|
||||
|
||||
static void
|
||||
@ -1292,8 +1292,8 @@ spdk_fs_delete_file_async(struct spdk_filesystem *fs, const char *name,
|
||||
if (f->ref_count > 0) {
|
||||
/* If the ref > 0, we mark the file as deleted and delete it when we close it. */
|
||||
f->is_deleted = true;
|
||||
spdk_blob_md_set_xattr(f->blob, "is_deleted", &f->is_deleted, sizeof(bool));
|
||||
spdk_bs_md_sync_blob(f->blob, blob_delete_cb, args);
|
||||
spdk_blob_set_xattr(f->blob, "is_deleted", &f->is_deleted, sizeof(bool));
|
||||
spdk_blob_sync_md(f->blob, blob_delete_cb, args);
|
||||
return;
|
||||
}
|
||||
|
||||
@ -1434,15 +1434,15 @@ spdk_file_truncate_async(struct spdk_file *file, uint64_t length,
|
||||
|
||||
num_clusters = __bytes_to_clusters(length, fs->bs_opts.cluster_sz);
|
||||
|
||||
spdk_bs_md_resize_blob(file->blob, num_clusters);
|
||||
spdk_blob_md_set_xattr(file->blob, "length", &length, sizeof(length));
|
||||
spdk_blob_resize(file->blob, num_clusters);
|
||||
spdk_blob_set_xattr(file->blob, "length", &length, sizeof(length));
|
||||
|
||||
file->length = length;
|
||||
if (file->append_pos > file->length) {
|
||||
file->append_pos = file->length;
|
||||
}
|
||||
|
||||
spdk_bs_md_sync_blob(file->blob, fs_truncate_complete_cb, args);
|
||||
spdk_blob_sync_md(file->blob, fs_truncate_complete_cb, args);
|
||||
}
|
||||
|
||||
static void
|
||||
@ -1839,11 +1839,11 @@ __check_sync_reqs(struct spdk_file *file)
|
||||
if (sync_req != NULL && !sync_req->args.op.sync.xattr_in_progress) {
|
||||
BLOBFS_TRACE(file, "set xattr length 0x%jx\n", file->length_flushed);
|
||||
sync_req->args.op.sync.xattr_in_progress = true;
|
||||
spdk_blob_md_set_xattr(file->blob, "length", &file->length_flushed,
|
||||
sizeof(file->length_flushed));
|
||||
spdk_blob_set_xattr(file->blob, "length", &file->length_flushed,
|
||||
sizeof(file->length_flushed));
|
||||
|
||||
pthread_spin_unlock(&file->lock);
|
||||
spdk_bs_md_sync_blob(file->blob, __file_cache_finish_sync_bs_cb, file);
|
||||
spdk_blob_sync_md(file->blob, __file_cache_finish_sync_bs_cb, file);
|
||||
} else {
|
||||
pthread_spin_unlock(&file->lock);
|
||||
}
|
||||
@ -1942,9 +1942,9 @@ __file_extend_blob(void *_args)
|
||||
struct spdk_fs_cb_args *args = _args;
|
||||
struct spdk_file *file = args->file;
|
||||
|
||||
spdk_bs_md_resize_blob(file->blob, args->op.resize.num_clusters);
|
||||
spdk_blob_resize(file->blob, args->op.resize.num_clusters);
|
||||
|
||||
spdk_bs_md_sync_blob(file->blob, __file_extend_done, args);
|
||||
spdk_blob_sync_md(file->blob, __file_extend_done, args);
|
||||
}
|
||||
|
||||
static void
|
||||
@ -2369,7 +2369,7 @@ __file_close_async(struct spdk_file *file, struct spdk_fs_request *req)
|
||||
|
||||
pthread_spin_unlock(&file->lock);
|
||||
|
||||
spdk_bs_md_close_blob(&file->blob, __file_close_async_done, req);
|
||||
spdk_blob_close(&file->blob, __file_close_async_done, req);
|
||||
}
|
||||
|
||||
static void
|
||||
|
@ -200,7 +200,7 @@ _spdk_load_next_lvol(void *cb_arg, struct spdk_blob *blob, int lvolerrno)
|
||||
goto invalid;
|
||||
}
|
||||
|
||||
rc = spdk_bs_md_get_xattr_value(blob, "name", (const void **)&attr, &value_len);
|
||||
rc = spdk_blob_get_xattr_value(blob, "name", (const void **)&attr, &value_len);
|
||||
if (rc != 0 || value_len > SPDK_LVOL_NAME_MAX) {
|
||||
SPDK_ERRLOG("Cannot assign lvol name\n");
|
||||
free(lvol->old_name);
|
||||
@ -281,26 +281,26 @@ _spdk_lvs_read_uuid(void *cb_arg, struct spdk_blob *blob, int lvolerrno)
|
||||
return;
|
||||
}
|
||||
|
||||
rc = spdk_bs_md_get_xattr_value(blob, "uuid", (const void **)&attr, &value_len);
|
||||
rc = spdk_blob_get_xattr_value(blob, "uuid", (const void **)&attr, &value_len);
|
||||
if (rc != 0 || value_len != UUID_STRING_LEN || attr[UUID_STRING_LEN - 1] != '\0') {
|
||||
SPDK_INFOLOG(SPDK_LOG_LVOL, "missing or incorrect UUID\n");
|
||||
req->lvserrno = -EINVAL;
|
||||
spdk_bs_md_close_blob(&blob, _spdk_close_super_blob_with_error_cb, req);
|
||||
spdk_blob_close(&blob, _spdk_close_super_blob_with_error_cb, req);
|
||||
return;
|
||||
}
|
||||
|
||||
if (uuid_parse(attr, lvs->uuid)) {
|
||||
SPDK_INFOLOG(SPDK_LOG_LVOL, "incorrect UUID '%s'\n", attr);
|
||||
req->lvserrno = -EINVAL;
|
||||
spdk_bs_md_close_blob(&blob, _spdk_close_super_blob_with_error_cb, req);
|
||||
spdk_blob_close(&blob, _spdk_close_super_blob_with_error_cb, req);
|
||||
return;
|
||||
}
|
||||
|
||||
rc = spdk_bs_md_get_xattr_value(blob, "name", (const void **)&attr, &value_len);
|
||||
rc = spdk_blob_get_xattr_value(blob, "name", (const void **)&attr, &value_len);
|
||||
if (rc != 0 || value_len > SPDK_LVS_NAME_MAX) {
|
||||
SPDK_INFOLOG(SPDK_LOG_LVOL, "missing or invalid name\n");
|
||||
req->lvserrno = -EINVAL;
|
||||
spdk_bs_md_close_blob(&blob, _spdk_close_super_blob_with_error_cb, req);
|
||||
spdk_blob_close(&blob, _spdk_close_super_blob_with_error_cb, req);
|
||||
return;
|
||||
}
|
||||
|
||||
@ -310,13 +310,13 @@ _spdk_lvs_read_uuid(void *cb_arg, struct spdk_blob *blob, int lvolerrno)
|
||||
if (rc) {
|
||||
SPDK_INFOLOG(SPDK_LOG_LVOL, "lvolstore with name %s already exists\n", lvs->name);
|
||||
req->lvserrno = -EEXIST;
|
||||
spdk_bs_md_close_blob(&blob, _spdk_close_super_blob_with_error_cb, req);
|
||||
spdk_blob_close(&blob, _spdk_close_super_blob_with_error_cb, req);
|
||||
return;
|
||||
}
|
||||
|
||||
lvs->super_blob_id = spdk_blob_get_id(blob);
|
||||
|
||||
spdk_bs_md_close_blob(&blob, _spdk_close_super_cb, req);
|
||||
spdk_blob_close(&blob, _spdk_close_super_cb, req);
|
||||
}
|
||||
|
||||
static void
|
||||
@ -429,7 +429,7 @@ _spdk_super_blob_set_cb(void *cb_arg, int lvolerrno)
|
||||
return;
|
||||
}
|
||||
|
||||
spdk_bs_md_close_blob(&blob, _spdk_super_create_close_cb, req);
|
||||
spdk_blob_close(&blob, _spdk_super_create_close_cb, req);
|
||||
}
|
||||
|
||||
static void
|
||||
@ -450,9 +450,9 @@ _spdk_super_blob_init_cb(void *cb_arg, int lvolerrno)
|
||||
|
||||
uuid_unparse(lvs->uuid, uuid);
|
||||
|
||||
spdk_blob_md_set_xattr(blob, "uuid", uuid, UUID_STRING_LEN);
|
||||
spdk_blob_md_set_xattr(blob, "name", lvs->name, strnlen(lvs->name, SPDK_LVS_NAME_MAX) + 1);
|
||||
spdk_bs_md_sync_blob(blob, _spdk_super_blob_set_cb, req);
|
||||
spdk_blob_set_xattr(blob, "uuid", uuid, UUID_STRING_LEN);
|
||||
spdk_blob_set_xattr(blob, "name", lvs->name, strnlen(lvs->name, SPDK_LVS_NAME_MAX) + 1);
|
||||
spdk_blob_sync_md(blob, _spdk_super_blob_set_cb, req);
|
||||
}
|
||||
|
||||
static void
|
||||
@ -844,7 +844,7 @@ _spdk_lvol_sync_cb(void *cb_arg, int lvolerrno)
|
||||
struct spdk_lvol *lvol = req->lvol;
|
||||
|
||||
if (lvolerrno != 0) {
|
||||
spdk_bs_md_close_blob(&lvol->blob, _spdk_lvol_delete_blob_cb, lvol);
|
||||
spdk_blob_close(&lvol->blob, _spdk_lvol_delete_blob_cb, lvol);
|
||||
} else {
|
||||
lvol->ref_count++;
|
||||
}
|
||||
@ -873,29 +873,29 @@ _spdk_lvol_create_open_cb(void *cb_arg, struct spdk_blob *blob, int lvolerrno)
|
||||
uuid_unparse(lvol->lvol_store->uuid, uuid);
|
||||
lvol->old_name = spdk_sprintf_alloc("%s_%"PRIu64, uuid, (uint64_t)blob_id);
|
||||
if (!lvol->old_name) {
|
||||
spdk_bs_md_close_blob(&blob, _spdk_lvol_delete_blob_cb, lvol);
|
||||
spdk_blob_close(&blob, _spdk_lvol_delete_blob_cb, lvol);
|
||||
SPDK_ERRLOG("Cannot alloc memory for lvol name\n");
|
||||
lvolerrno = -ENOMEM;
|
||||
free(lvol);
|
||||
goto invalid;
|
||||
}
|
||||
|
||||
lvolerrno = spdk_bs_md_resize_blob(blob, lvol->num_clusters);
|
||||
lvolerrno = spdk_blob_resize(blob, lvol->num_clusters);
|
||||
if (lvolerrno < 0) {
|
||||
spdk_bs_md_close_blob(&blob, _spdk_lvol_destroy_cb, lvol);
|
||||
spdk_blob_close(&blob, _spdk_lvol_destroy_cb, lvol);
|
||||
goto invalid;
|
||||
}
|
||||
|
||||
lvolerrno = spdk_blob_md_set_xattr(blob, "name", lvol->name,
|
||||
strnlen(lvol->name, SPDK_LVOL_NAME_MAX) + 1);
|
||||
lvolerrno = spdk_blob_set_xattr(blob, "name", lvol->name,
|
||||
strnlen(lvol->name, SPDK_LVOL_NAME_MAX) + 1);
|
||||
if (lvolerrno < 0) {
|
||||
spdk_bs_md_close_blob(&blob, _spdk_lvol_destroy_cb, lvol);
|
||||
spdk_blob_close(&blob, _spdk_lvol_destroy_cb, lvol);
|
||||
goto invalid;
|
||||
}
|
||||
|
||||
TAILQ_INSERT_TAIL(&lvol->lvol_store->lvols, lvol, link);
|
||||
|
||||
spdk_bs_md_sync_blob(blob, _spdk_lvol_sync_cb, req);
|
||||
spdk_blob_sync_md(blob, _spdk_lvol_sync_cb, req);
|
||||
|
||||
return;
|
||||
|
||||
@ -1029,16 +1029,16 @@ spdk_lvol_resize(struct spdk_lvol *lvol, uint64_t sz,
|
||||
req->cb_fn = cb_fn;
|
||||
req->cb_arg = cb_arg;
|
||||
|
||||
rc = spdk_bs_md_resize_blob(blob, sz);
|
||||
rc = spdk_blob_resize(blob, sz);
|
||||
if (rc < 0) {
|
||||
goto invalid;
|
||||
}
|
||||
|
||||
lvol->num_clusters = new_clusters;
|
||||
|
||||
spdk_blob_md_set_xattr(blob, "length", &sz, sizeof(sz));
|
||||
spdk_blob_set_xattr(blob, "length", &sz, sizeof(sz));
|
||||
|
||||
spdk_bs_md_sync_blob(blob, _spdk_lvol_resize_cb, req);
|
||||
spdk_blob_sync_md(blob, _spdk_lvol_resize_cb, req);
|
||||
|
||||
return rc;
|
||||
|
||||
@ -1129,7 +1129,7 @@ spdk_lvol_close(struct spdk_lvol *lvol, spdk_lvol_op_complete cb_fn, void *cb_ar
|
||||
req->cb_arg = cb_arg;
|
||||
req->lvol = lvol;
|
||||
|
||||
spdk_bs_md_close_blob(&(lvol->blob), _spdk_lvol_close_blob_cb, req);
|
||||
spdk_blob_close(&(lvol->blob), _spdk_lvol_close_blob_cb, req);
|
||||
}
|
||||
|
||||
struct spdk_io_channel *
|
||||
|
@ -71,7 +71,7 @@ spdk_lvol_open(struct spdk_lvol *lvol, spdk_lvol_op_with_handle_complete cb_fn,
|
||||
}
|
||||
|
||||
void
|
||||
spdk_bs_md_close_blob(struct spdk_blob **b, spdk_blob_op_complete cb_fn, void *cb_arg)
|
||||
spdk_blob_close(struct spdk_blob **b, spdk_blob_op_complete cb_fn, void *cb_arg)
|
||||
{
|
||||
}
|
||||
|
||||
|
@ -238,7 +238,7 @@ blob_open(void)
|
||||
CU_ASSERT(g_bserrno == 0);
|
||||
CU_ASSERT(blob == g_blob);
|
||||
|
||||
spdk_bs_md_close_blob(&blob, blob_op_complete, NULL);
|
||||
spdk_blob_close(&blob, blob_op_complete, NULL);
|
||||
CU_ASSERT(g_bserrno == 0);
|
||||
CU_ASSERT(blob == NULL);
|
||||
|
||||
@ -247,7 +247,7 @@ blob_open(void)
|
||||
* should succeed.
|
||||
*/
|
||||
blob = g_blob;
|
||||
spdk_bs_md_close_blob(&blob, blob_op_complete, NULL);
|
||||
spdk_blob_close(&blob, blob_op_complete, NULL);
|
||||
CU_ASSERT(g_bserrno == 0);
|
||||
|
||||
/*
|
||||
@ -259,7 +259,7 @@ blob_open(void)
|
||||
CU_ASSERT(g_blob != NULL);
|
||||
blob = g_blob;
|
||||
|
||||
spdk_bs_md_close_blob(&blob, blob_op_complete, NULL);
|
||||
spdk_blob_close(&blob, blob_op_complete, NULL);
|
||||
CU_ASSERT(g_bserrno == 0);
|
||||
|
||||
spdk_bs_unload(g_bs, bs_op_complete, NULL);
|
||||
@ -330,34 +330,34 @@ blob_resize(void)
|
||||
|
||||
/* Confirm that resize fails if blob is marked read-only. */
|
||||
__blob_to_data(blob)->md_ro = true;
|
||||
rc = spdk_bs_md_resize_blob(blob, 5);
|
||||
rc = spdk_blob_resize(blob, 5);
|
||||
CU_ASSERT(rc == -EPERM);
|
||||
__blob_to_data(blob)->md_ro = false;
|
||||
|
||||
/* The blob started at 0 clusters. Resize it to be 5. */
|
||||
rc = spdk_bs_md_resize_blob(blob, 5);
|
||||
rc = spdk_blob_resize(blob, 5);
|
||||
CU_ASSERT(rc == 0);
|
||||
CU_ASSERT((free_clusters - 5) == spdk_bs_free_cluster_count(bs));
|
||||
|
||||
/* Shrink the blob to 3 clusters. This will not actually release
|
||||
* the old clusters until the blob is synced.
|
||||
*/
|
||||
rc = spdk_bs_md_resize_blob(blob, 3);
|
||||
rc = spdk_blob_resize(blob, 3);
|
||||
CU_ASSERT(rc == 0);
|
||||
/* Verify there are still 5 clusters in use */
|
||||
CU_ASSERT((free_clusters - 5) == spdk_bs_free_cluster_count(bs));
|
||||
|
||||
spdk_bs_md_sync_blob(blob, blob_op_complete, NULL);
|
||||
spdk_blob_sync_md(blob, blob_op_complete, NULL);
|
||||
CU_ASSERT(g_bserrno == 0);
|
||||
/* Now there are only 3 clusters in use */
|
||||
CU_ASSERT((free_clusters - 3) == spdk_bs_free_cluster_count(bs));
|
||||
|
||||
/* Resize the blob to be 10 clusters. Growth takes effect immediately. */
|
||||
rc = spdk_bs_md_resize_blob(blob, 10);
|
||||
rc = spdk_blob_resize(blob, 10);
|
||||
CU_ASSERT(rc == 0);
|
||||
CU_ASSERT((free_clusters - 10) == spdk_bs_free_cluster_count(bs));
|
||||
|
||||
spdk_bs_md_close_blob(&blob, blob_op_complete, NULL);
|
||||
spdk_blob_close(&blob, blob_op_complete, NULL);
|
||||
CU_ASSERT(g_bserrno == 0);
|
||||
|
||||
spdk_bs_md_delete_blob(bs, blobid, blob_op_complete, NULL);
|
||||
@ -431,7 +431,7 @@ blob_write(void)
|
||||
CU_ASSERT(g_bserrno == -EINVAL);
|
||||
|
||||
/* Resize the blob */
|
||||
rc = spdk_bs_md_resize_blob(blob, 5);
|
||||
rc = spdk_blob_resize(blob, 5);
|
||||
CU_ASSERT(rc == 0);
|
||||
|
||||
/* Confirm that write fails if blob is marked read-only. */
|
||||
@ -454,7 +454,7 @@ blob_write(void)
|
||||
blob_op_complete, NULL);
|
||||
CU_ASSERT(g_bserrno == -EINVAL);
|
||||
|
||||
spdk_bs_md_close_blob(&blob, blob_op_complete, NULL);
|
||||
spdk_blob_close(&blob, blob_op_complete, NULL);
|
||||
CU_ASSERT(g_bserrno == 0);
|
||||
|
||||
spdk_bs_free_io_channel(channel);
|
||||
@ -503,7 +503,7 @@ blob_read(void)
|
||||
CU_ASSERT(g_bserrno == -EINVAL);
|
||||
|
||||
/* Resize the blob */
|
||||
rc = spdk_bs_md_resize_blob(blob, 5);
|
||||
rc = spdk_blob_resize(blob, 5);
|
||||
CU_ASSERT(rc == 0);
|
||||
|
||||
/* Confirm that read passes if blob is marked read-only. */
|
||||
@ -526,7 +526,7 @@ blob_read(void)
|
||||
blob_op_complete, NULL);
|
||||
CU_ASSERT(g_bserrno == -EINVAL);
|
||||
|
||||
spdk_bs_md_close_blob(&blob, blob_op_complete, NULL);
|
||||
spdk_blob_close(&blob, blob_op_complete, NULL);
|
||||
CU_ASSERT(g_bserrno == 0);
|
||||
|
||||
spdk_bs_free_io_channel(channel);
|
||||
@ -568,7 +568,7 @@ blob_rw_verify(void)
|
||||
CU_ASSERT(g_blob != NULL);
|
||||
blob = g_blob;
|
||||
|
||||
rc = spdk_bs_md_resize_blob(blob, 32);
|
||||
rc = spdk_blob_resize(blob, 32);
|
||||
CU_ASSERT(rc == 0);
|
||||
|
||||
memset(payload_write, 0xE5, sizeof(payload_write));
|
||||
@ -580,7 +580,7 @@ blob_rw_verify(void)
|
||||
CU_ASSERT(g_bserrno == 0);
|
||||
CU_ASSERT(memcmp(payload_write, payload_read, 4 * 4096) == 0);
|
||||
|
||||
spdk_bs_md_close_blob(&blob, blob_op_complete, NULL);
|
||||
spdk_blob_close(&blob, blob_op_complete, NULL);
|
||||
CU_ASSERT(g_bserrno == 0);
|
||||
|
||||
spdk_bs_free_io_channel(channel);
|
||||
@ -626,7 +626,7 @@ blob_rw_verify_iov(void)
|
||||
SPDK_CU_ASSERT_FATAL(g_blob != NULL);
|
||||
blob = g_blob;
|
||||
|
||||
rc = spdk_bs_md_resize_blob(blob, 2);
|
||||
rc = spdk_blob_resize(blob, 2);
|
||||
CU_ASSERT(rc == 0);
|
||||
|
||||
/*
|
||||
@ -670,7 +670,7 @@ blob_rw_verify_iov(void)
|
||||
CU_ASSERT(memcmp(buf, &g_dev_buffer[512 * 4096], 256 * 4096) == 0);
|
||||
free(buf);
|
||||
|
||||
spdk_bs_md_close_blob(&blob, blob_op_complete, NULL);
|
||||
spdk_blob_close(&blob, blob_op_complete, NULL);
|
||||
CU_ASSERT(g_bserrno == 0);
|
||||
|
||||
spdk_bs_free_io_channel(channel);
|
||||
@ -728,7 +728,7 @@ blob_rw_verify_iov_nomem(void)
|
||||
CU_ASSERT(g_blob != NULL);
|
||||
blob = g_blob;
|
||||
|
||||
rc = spdk_bs_md_resize_blob(blob, 2);
|
||||
rc = spdk_blob_resize(blob, 2);
|
||||
CU_ASSERT(rc == 0);
|
||||
|
||||
/*
|
||||
@ -748,7 +748,7 @@ blob_rw_verify_iov_nomem(void)
|
||||
CU_ASSERT(req_count == bs_channel_get_req_count(channel));
|
||||
MOCK_SET(calloc, void *, (void *)MOCK_PASS_THRU);
|
||||
|
||||
spdk_bs_md_close_blob(&blob, blob_op_complete, NULL);
|
||||
spdk_blob_close(&blob, blob_op_complete, NULL);
|
||||
CU_ASSERT(g_bserrno == 0);
|
||||
|
||||
spdk_bs_free_io_channel(channel);
|
||||
@ -793,7 +793,7 @@ blob_rw_iov_read_only(void)
|
||||
SPDK_CU_ASSERT_FATAL(g_blob != NULL);
|
||||
blob = g_blob;
|
||||
|
||||
rc = spdk_bs_md_resize_blob(blob, 2);
|
||||
rc = spdk_blob_resize(blob, 2);
|
||||
CU_ASSERT(rc == 0);
|
||||
|
||||
/* Verify that writev failed if read_only flag is set. */
|
||||
@ -809,7 +809,7 @@ blob_rw_iov_read_only(void)
|
||||
spdk_bs_io_readv_blob(blob, channel, &iov_read, 1, 0, 1, blob_op_complete, NULL);
|
||||
CU_ASSERT(g_bserrno == 0);
|
||||
|
||||
spdk_bs_md_close_blob(&blob, blob_op_complete, NULL);
|
||||
spdk_blob_close(&blob, blob_op_complete, NULL);
|
||||
CU_ASSERT(g_bserrno == 0);
|
||||
|
||||
spdk_bs_free_io_channel(channel);
|
||||
@ -891,37 +891,37 @@ blob_xattr(void)
|
||||
|
||||
/* Test that set_xattr fails if md_ro flag is set. */
|
||||
__blob_to_data(blob)->md_ro = true;
|
||||
rc = spdk_blob_md_set_xattr(blob, "name", "log.txt", strlen("log.txt") + 1);
|
||||
rc = spdk_blob_set_xattr(blob, "name", "log.txt", strlen("log.txt") + 1);
|
||||
CU_ASSERT(rc == -EPERM);
|
||||
|
||||
__blob_to_data(blob)->md_ro = false;
|
||||
rc = spdk_blob_md_set_xattr(blob, "name", "log.txt", strlen("log.txt") + 1);
|
||||
rc = spdk_blob_set_xattr(blob, "name", "log.txt", strlen("log.txt") + 1);
|
||||
CU_ASSERT(rc == 0);
|
||||
|
||||
length = 2345;
|
||||
rc = spdk_blob_md_set_xattr(blob, "length", &length, sizeof(length));
|
||||
rc = spdk_blob_set_xattr(blob, "length", &length, sizeof(length));
|
||||
CU_ASSERT(rc == 0);
|
||||
|
||||
/* Overwrite "length" xattr. */
|
||||
length = 3456;
|
||||
rc = spdk_blob_md_set_xattr(blob, "length", &length, sizeof(length));
|
||||
rc = spdk_blob_set_xattr(blob, "length", &length, sizeof(length));
|
||||
CU_ASSERT(rc == 0);
|
||||
|
||||
/* get_xattr should still work even if md_ro flag is set. */
|
||||
value = NULL;
|
||||
__blob_to_data(blob)->md_ro = true;
|
||||
rc = spdk_bs_md_get_xattr_value(blob, "length", &value, &value_len);
|
||||
rc = spdk_blob_get_xattr_value(blob, "length", &value, &value_len);
|
||||
CU_ASSERT(rc == 0);
|
||||
SPDK_CU_ASSERT_FATAL(value != NULL);
|
||||
CU_ASSERT(*(uint64_t *)value == length);
|
||||
CU_ASSERT(value_len == 8);
|
||||
__blob_to_data(blob)->md_ro = false;
|
||||
|
||||
rc = spdk_bs_md_get_xattr_value(blob, "foobar", &value, &value_len);
|
||||
rc = spdk_blob_get_xattr_value(blob, "foobar", &value, &value_len);
|
||||
CU_ASSERT(rc == -ENOENT);
|
||||
|
||||
names = NULL;
|
||||
rc = spdk_bs_md_get_xattr_names(blob, &names);
|
||||
rc = spdk_blob_get_xattr_names(blob, &names);
|
||||
CU_ASSERT(rc == 0);
|
||||
SPDK_CU_ASSERT_FATAL(names != NULL);
|
||||
CU_ASSERT(spdk_xattr_names_get_count(names) == 2);
|
||||
@ -936,17 +936,17 @@ blob_xattr(void)
|
||||
|
||||
/* Confirm that remove_xattr fails if md_ro is set to true. */
|
||||
__blob_to_data(blob)->md_ro = true;
|
||||
rc = spdk_blob_md_remove_xattr(blob, "name");
|
||||
rc = spdk_blob_remove_xattr(blob, "name");
|
||||
CU_ASSERT(rc == -EPERM);
|
||||
|
||||
__blob_to_data(blob)->md_ro = false;
|
||||
rc = spdk_blob_md_remove_xattr(blob, "name");
|
||||
rc = spdk_blob_remove_xattr(blob, "name");
|
||||
CU_ASSERT(rc == 0);
|
||||
|
||||
rc = spdk_blob_md_remove_xattr(blob, "foobar");
|
||||
rc = spdk_blob_remove_xattr(blob, "foobar");
|
||||
CU_ASSERT(rc == -ENOENT);
|
||||
|
||||
spdk_bs_md_close_blob(&blob, blob_op_complete, NULL);
|
||||
spdk_blob_close(&blob, blob_op_complete, NULL);
|
||||
|
||||
spdk_bs_unload(g_bs, bs_op_complete, NULL);
|
||||
CU_ASSERT(g_bserrno == 0);
|
||||
@ -999,18 +999,18 @@ bs_load(void)
|
||||
CU_ASSERT(g_blob == NULL);
|
||||
|
||||
/* Set some xattrs */
|
||||
rc = spdk_blob_md_set_xattr(blob, "name", "log.txt", strlen("log.txt") + 1);
|
||||
rc = spdk_blob_set_xattr(blob, "name", "log.txt", strlen("log.txt") + 1);
|
||||
CU_ASSERT(rc == 0);
|
||||
|
||||
length = 2345;
|
||||
rc = spdk_blob_md_set_xattr(blob, "length", &length, sizeof(length));
|
||||
rc = spdk_blob_set_xattr(blob, "length", &length, sizeof(length));
|
||||
CU_ASSERT(rc == 0);
|
||||
|
||||
/* Resize the blob */
|
||||
rc = spdk_bs_md_resize_blob(blob, 10);
|
||||
rc = spdk_blob_resize(blob, 10);
|
||||
CU_ASSERT(rc == 0);
|
||||
|
||||
spdk_bs_md_close_blob(&blob, blob_op_complete, NULL);
|
||||
spdk_blob_close(&blob, blob_op_complete, NULL);
|
||||
CU_ASSERT(g_bserrno == 0);
|
||||
blob = NULL;
|
||||
g_blob = NULL;
|
||||
@ -1044,18 +1044,18 @@ bs_load(void)
|
||||
|
||||
/* Get the xattrs */
|
||||
value = NULL;
|
||||
rc = spdk_bs_md_get_xattr_value(blob, "length", &value, &value_len);
|
||||
rc = spdk_blob_get_xattr_value(blob, "length", &value, &value_len);
|
||||
CU_ASSERT(rc == 0);
|
||||
SPDK_CU_ASSERT_FATAL(value != NULL);
|
||||
CU_ASSERT(*(uint64_t *)value == length);
|
||||
CU_ASSERT(value_len == 8);
|
||||
|
||||
rc = spdk_bs_md_get_xattr_value(blob, "foobar", &value, &value_len);
|
||||
rc = spdk_blob_get_xattr_value(blob, "foobar", &value, &value_len);
|
||||
CU_ASSERT(rc == -ENOENT);
|
||||
|
||||
CU_ASSERT(spdk_blob_get_num_clusters(blob) == 10);
|
||||
|
||||
spdk_bs_md_close_blob(&blob, blob_op_complete, NULL);
|
||||
spdk_blob_close(&blob, blob_op_complete, NULL);
|
||||
CU_ASSERT(g_bserrno == 0);
|
||||
blob = NULL;
|
||||
g_blob = NULL;
|
||||
@ -1238,7 +1238,7 @@ bs_unload(void)
|
||||
|
||||
/* Close the blob, then successfully unload blobstore */
|
||||
g_bserrno = -1;
|
||||
spdk_bs_md_close_blob(&blob, blob_op_complete, NULL);
|
||||
spdk_blob_close(&blob, blob_op_complete, NULL);
|
||||
CU_ASSERT(g_bserrno == 0);
|
||||
CU_ASSERT(blob == NULL);
|
||||
|
||||
@ -1377,11 +1377,11 @@ bs_usable_clusters(void)
|
||||
CU_ASSERT(g_bserrno == 0);
|
||||
CU_ASSERT(g_blob != NULL);
|
||||
|
||||
rc = spdk_bs_md_resize_blob(g_blob, 10);
|
||||
rc = spdk_blob_resize(g_blob, 10);
|
||||
CU_ASSERT(rc == 0);
|
||||
|
||||
g_bserrno = -1;
|
||||
spdk_bs_md_close_blob(&g_blob, blob_op_complete, NULL);
|
||||
spdk_blob_close(&g_blob, blob_op_complete, NULL);
|
||||
CU_ASSERT(g_bserrno == 0);
|
||||
|
||||
CU_ASSERT(spdk_bs_total_data_cluster_count(g_bs) == clusters);
|
||||
@ -1466,7 +1466,7 @@ bs_resize_md(void)
|
||||
CU_ASSERT(g_bserrno == 0);
|
||||
CU_ASSERT(g_blob != NULL);
|
||||
g_bserrno = -1;
|
||||
spdk_bs_md_close_blob(&g_blob, blob_op_complete, NULL);
|
||||
spdk_blob_close(&g_blob, blob_op_complete, NULL);
|
||||
CU_ASSERT(g_bserrno == 0);
|
||||
}
|
||||
|
||||
@ -1555,7 +1555,7 @@ blob_serialize(void)
|
||||
value = calloc(dev->blocklen - 64, sizeof(char));
|
||||
SPDK_CU_ASSERT_FATAL(value != NULL);
|
||||
memset(value, i, dev->blocklen / 2);
|
||||
rc = spdk_blob_md_set_xattr(blob[i], "name", value, dev->blocklen - 64);
|
||||
rc = spdk_blob_set_xattr(blob[i], "name", value, dev->blocklen - 64);
|
||||
CU_ASSERT(rc == 0);
|
||||
free(value);
|
||||
}
|
||||
@ -1565,18 +1565,18 @@ blob_serialize(void)
|
||||
* over of the extents.
|
||||
*/
|
||||
for (i = 0; i < 6; i++) {
|
||||
rc = spdk_bs_md_resize_blob(blob[i % 2], (i / 2) + 1);
|
||||
rc = spdk_blob_resize(blob[i % 2], (i / 2) + 1);
|
||||
CU_ASSERT(rc == 0);
|
||||
}
|
||||
|
||||
for (i = 0; i < 2; i++) {
|
||||
spdk_bs_md_sync_blob(blob[i], blob_op_complete, NULL);
|
||||
spdk_blob_sync_md(blob[i], blob_op_complete, NULL);
|
||||
CU_ASSERT(g_bserrno == 0);
|
||||
}
|
||||
|
||||
/* Close the blobs */
|
||||
for (i = 0; i < 2; i++) {
|
||||
spdk_bs_md_close_blob(&blob[i], blob_op_complete, NULL);
|
||||
spdk_blob_close(&blob[i], blob_op_complete, NULL);
|
||||
CU_ASSERT(g_bserrno == 0);
|
||||
}
|
||||
|
||||
@ -1605,7 +1605,7 @@ blob_serialize(void)
|
||||
|
||||
CU_ASSERT(spdk_blob_get_num_clusters(blob[i]) == 3);
|
||||
|
||||
spdk_bs_md_close_blob(&blob[i], blob_op_complete, NULL);
|
||||
spdk_blob_close(&blob[i], blob_op_complete, NULL);
|
||||
CU_ASSERT(g_bserrno == 0);
|
||||
}
|
||||
|
||||
@ -1642,7 +1642,7 @@ blob_crc(void)
|
||||
CU_ASSERT(g_blob != NULL);
|
||||
blob = g_blob;
|
||||
|
||||
spdk_bs_md_close_blob(&blob, blob_op_complete, NULL);
|
||||
spdk_blob_close(&blob, blob_op_complete, NULL);
|
||||
CU_ASSERT(g_bserrno == 0);
|
||||
CU_ASSERT(blob == NULL);
|
||||
|
||||
@ -1745,18 +1745,18 @@ blob_dirty_shutdown(void)
|
||||
blob = g_blob;
|
||||
|
||||
/* Set some xattrs */
|
||||
rc = spdk_blob_md_set_xattr(blob, "name", "log.txt", strlen("log.txt") + 1);
|
||||
rc = spdk_blob_set_xattr(blob, "name", "log.txt", strlen("log.txt") + 1);
|
||||
CU_ASSERT(rc == 0);
|
||||
|
||||
length = 2345;
|
||||
rc = spdk_blob_md_set_xattr(blob, "length", &length, sizeof(length));
|
||||
rc = spdk_blob_set_xattr(blob, "length", &length, sizeof(length));
|
||||
CU_ASSERT(rc == 0);
|
||||
|
||||
/* Resize the blob */
|
||||
rc = spdk_bs_md_resize_blob(blob, 10);
|
||||
rc = spdk_blob_resize(blob, 10);
|
||||
CU_ASSERT(rc == 0);
|
||||
|
||||
spdk_bs_md_close_blob(&blob, blob_op_complete, NULL);
|
||||
spdk_blob_close(&blob, blob_op_complete, NULL);
|
||||
blob = NULL;
|
||||
g_blob = NULL;
|
||||
g_blobid = SPDK_BLOBID_INVALID;
|
||||
@ -1777,7 +1777,7 @@ blob_dirty_shutdown(void)
|
||||
|
||||
/* Get the xattrs */
|
||||
value = NULL;
|
||||
rc = spdk_bs_md_get_xattr_value(blob, "length", &value, &value_len);
|
||||
rc = spdk_blob_get_xattr_value(blob, "length", &value, &value_len);
|
||||
CU_ASSERT(rc == 0);
|
||||
SPDK_CU_ASSERT_FATAL(value != NULL);
|
||||
CU_ASSERT(*(uint64_t *)value == length);
|
||||
@ -1785,10 +1785,10 @@ blob_dirty_shutdown(void)
|
||||
CU_ASSERT(spdk_blob_get_num_clusters(blob) == 10);
|
||||
|
||||
/* Resize the blob */
|
||||
rc = spdk_bs_md_resize_blob(blob, 20);
|
||||
rc = spdk_blob_resize(blob, 20);
|
||||
CU_ASSERT(rc == 0);
|
||||
|
||||
spdk_bs_md_close_blob(&blob, blob_op_complete, NULL);
|
||||
spdk_blob_close(&blob, blob_op_complete, NULL);
|
||||
CU_ASSERT(g_bserrno == 0);
|
||||
blob = NULL;
|
||||
g_blob = NULL;
|
||||
@ -1810,7 +1810,7 @@ blob_dirty_shutdown(void)
|
||||
blob = g_blob;
|
||||
CU_ASSERT(spdk_blob_get_num_clusters(blob) == 20);
|
||||
|
||||
spdk_bs_md_close_blob(&blob, blob_op_complete, NULL);
|
||||
spdk_blob_close(&blob, blob_op_complete, NULL);
|
||||
CU_ASSERT(g_bserrno == 0);
|
||||
blob = NULL;
|
||||
g_blob = NULL;
|
||||
@ -1828,18 +1828,18 @@ blob_dirty_shutdown(void)
|
||||
blob = g_blob;
|
||||
|
||||
/* Set some xattrs */
|
||||
rc = spdk_blob_md_set_xattr(blob, "name", "log1.txt", strlen("log1.txt") + 1);
|
||||
rc = spdk_blob_set_xattr(blob, "name", "log1.txt", strlen("log1.txt") + 1);
|
||||
CU_ASSERT(rc == 0);
|
||||
|
||||
length = 5432;
|
||||
rc = spdk_blob_md_set_xattr(blob, "length", &length, sizeof(length));
|
||||
rc = spdk_blob_set_xattr(blob, "length", &length, sizeof(length));
|
||||
CU_ASSERT(rc == 0);
|
||||
|
||||
/* Resize the blob */
|
||||
rc = spdk_bs_md_resize_blob(blob, 10);
|
||||
rc = spdk_blob_resize(blob, 10);
|
||||
CU_ASSERT(rc == 0);
|
||||
|
||||
spdk_bs_md_close_blob(&blob, blob_op_complete, NULL);
|
||||
spdk_blob_close(&blob, blob_op_complete, NULL);
|
||||
blob = NULL;
|
||||
g_blob = NULL;
|
||||
g_blobid = SPDK_BLOBID_INVALID;
|
||||
@ -1860,14 +1860,14 @@ blob_dirty_shutdown(void)
|
||||
|
||||
/* Get the xattrs */
|
||||
value = NULL;
|
||||
rc = spdk_bs_md_get_xattr_value(blob, "length", &value, &value_len);
|
||||
rc = spdk_blob_get_xattr_value(blob, "length", &value, &value_len);
|
||||
CU_ASSERT(rc == 0);
|
||||
SPDK_CU_ASSERT_FATAL(value != NULL);
|
||||
CU_ASSERT(*(uint64_t *)value == length);
|
||||
CU_ASSERT(value_len == 8);
|
||||
CU_ASSERT(spdk_blob_get_num_clusters(blob) == 10);
|
||||
|
||||
spdk_bs_md_close_blob(&blob, blob_op_complete, NULL);
|
||||
spdk_blob_close(&blob, blob_op_complete, NULL);
|
||||
CU_ASSERT(g_bserrno == 0);
|
||||
spdk_bs_md_delete_blob(g_bs, blobid2, blob_op_complete, NULL);
|
||||
CU_ASSERT(g_bserrno == 0);
|
||||
@ -1887,7 +1887,7 @@ blob_dirty_shutdown(void)
|
||||
spdk_bs_md_open_blob(g_bs, blobid1, blob_op_with_handle_complete, NULL);
|
||||
CU_ASSERT(g_bserrno == 0);
|
||||
CU_ASSERT(g_blob != NULL);
|
||||
spdk_bs_md_close_blob(&g_blob, blob_op_complete, NULL);
|
||||
spdk_blob_close(&g_blob, blob_op_complete, NULL);
|
||||
CU_ASSERT(g_bserrno == 0);
|
||||
|
||||
spdk_bs_unload(g_bs, bs_op_complete, NULL);
|
||||
@ -1918,14 +1918,14 @@ blob_dirty_shutdown(void)
|
||||
blob = g_blob;
|
||||
|
||||
/* Set some xattrs for second blob */
|
||||
rc = spdk_blob_md_set_xattr(blob, "name", "log1.txt", strlen("log1.txt") + 1);
|
||||
rc = spdk_blob_set_xattr(blob, "name", "log1.txt", strlen("log1.txt") + 1);
|
||||
CU_ASSERT(rc == 0);
|
||||
|
||||
length = 5432;
|
||||
rc = spdk_blob_md_set_xattr(blob, "length", &length, sizeof(length));
|
||||
rc = spdk_blob_set_xattr(blob, "length", &length, sizeof(length));
|
||||
CU_ASSERT(rc == 0);
|
||||
|
||||
spdk_bs_md_close_blob(&blob, blob_op_complete, NULL);
|
||||
spdk_blob_close(&blob, blob_op_complete, NULL);
|
||||
blob = NULL;
|
||||
g_blob = NULL;
|
||||
g_blobid = SPDK_BLOBID_INVALID;
|
||||
@ -1936,14 +1936,14 @@ blob_dirty_shutdown(void)
|
||||
blob = g_blob;
|
||||
|
||||
/* Set some xattrs for third blob */
|
||||
rc = spdk_blob_md_set_xattr(blob, "name", "log2.txt", strlen("log2.txt") + 1);
|
||||
rc = spdk_blob_set_xattr(blob, "name", "log2.txt", strlen("log2.txt") + 1);
|
||||
CU_ASSERT(rc == 0);
|
||||
|
||||
length = 5432;
|
||||
rc = spdk_blob_md_set_xattr(blob, "length", &length, sizeof(length));
|
||||
rc = spdk_blob_set_xattr(blob, "length", &length, sizeof(length));
|
||||
CU_ASSERT(rc == 0);
|
||||
|
||||
spdk_bs_md_close_blob(&blob, blob_op_complete, NULL);
|
||||
spdk_blob_close(&blob, blob_op_complete, NULL);
|
||||
blob = NULL;
|
||||
g_blob = NULL;
|
||||
g_blobid = SPDK_BLOBID_INVALID;
|
||||
@ -1973,7 +1973,7 @@ blob_dirty_shutdown(void)
|
||||
CU_ASSERT(g_blob != NULL);
|
||||
blob = g_blob;
|
||||
|
||||
spdk_bs_md_close_blob(&blob, blob_op_complete, NULL);
|
||||
spdk_blob_close(&blob, blob_op_complete, NULL);
|
||||
blob = NULL;
|
||||
g_blob = NULL;
|
||||
g_blobid = SPDK_BLOBID_INVALID;
|
||||
@ -2038,25 +2038,25 @@ blob_flags(void)
|
||||
__blob_to_data(blob_md_ro)->state = SPDK_BLOB_STATE_DIRTY;
|
||||
|
||||
g_bserrno = -1;
|
||||
spdk_bs_md_sync_blob(blob_invalid, blob_op_complete, NULL);
|
||||
spdk_blob_sync_md(blob_invalid, blob_op_complete, NULL);
|
||||
CU_ASSERT(g_bserrno == 0);
|
||||
g_bserrno = -1;
|
||||
spdk_bs_md_sync_blob(blob_data_ro, blob_op_complete, NULL);
|
||||
spdk_blob_sync_md(blob_data_ro, blob_op_complete, NULL);
|
||||
CU_ASSERT(g_bserrno == 0);
|
||||
g_bserrno = -1;
|
||||
spdk_bs_md_sync_blob(blob_md_ro, blob_op_complete, NULL);
|
||||
spdk_blob_sync_md(blob_md_ro, blob_op_complete, NULL);
|
||||
CU_ASSERT(g_bserrno == 0);
|
||||
|
||||
g_bserrno = -1;
|
||||
spdk_bs_md_close_blob(&blob_invalid, blob_op_complete, NULL);
|
||||
spdk_blob_close(&blob_invalid, blob_op_complete, NULL);
|
||||
CU_ASSERT(g_bserrno == 0);
|
||||
blob_invalid = NULL;
|
||||
g_bserrno = -1;
|
||||
spdk_bs_md_close_blob(&blob_data_ro, blob_op_complete, NULL);
|
||||
spdk_blob_close(&blob_data_ro, blob_op_complete, NULL);
|
||||
CU_ASSERT(g_bserrno == 0);
|
||||
blob_data_ro = NULL;
|
||||
g_bserrno = -1;
|
||||
spdk_bs_md_close_blob(&blob_md_ro, blob_op_complete, NULL);
|
||||
spdk_blob_close(&blob_md_ro, blob_op_complete, NULL);
|
||||
CU_ASSERT(g_bserrno == 0);
|
||||
blob_md_ro = NULL;
|
||||
|
||||
@ -2099,9 +2099,9 @@ blob_flags(void)
|
||||
CU_ASSERT(__blob_to_data(blob_md_ro)->data_ro == false);
|
||||
CU_ASSERT(__blob_to_data(blob_md_ro)->md_ro == true);
|
||||
|
||||
spdk_bs_md_close_blob(&blob_data_ro, blob_op_complete, NULL);
|
||||
spdk_blob_close(&blob_data_ro, blob_op_complete, NULL);
|
||||
CU_ASSERT(g_bserrno == 0);
|
||||
spdk_bs_md_close_blob(&blob_md_ro, blob_op_complete, NULL);
|
||||
spdk_blob_close(&blob_md_ro, blob_op_complete, NULL);
|
||||
CU_ASSERT(g_bserrno == 0);
|
||||
|
||||
spdk_bs_unload(g_bs, bs_op_complete, NULL);
|
||||
|
@ -165,8 +165,8 @@ struct spdk_io_channel *spdk_bs_alloc_io_channel(struct spdk_blob_store *bs)
|
||||
}
|
||||
|
||||
int
|
||||
spdk_blob_md_set_xattr(struct spdk_blob *blob, const char *name, const void *value,
|
||||
uint16_t value_len)
|
||||
spdk_blob_set_xattr(struct spdk_blob *blob, const char *name, const void *value,
|
||||
uint16_t value_len)
|
||||
{
|
||||
if (!strcmp(name, "uuid")) {
|
||||
CU_ASSERT(value_len == UUID_STRING_LEN);
|
||||
@ -180,8 +180,8 @@ spdk_blob_md_set_xattr(struct spdk_blob *blob, const char *name, const void *val
|
||||
}
|
||||
|
||||
int
|
||||
spdk_bs_md_get_xattr_value(struct spdk_blob *blob, const char *name,
|
||||
const void **value, size_t *value_len)
|
||||
spdk_blob_get_xattr_value(struct spdk_blob *blob, const char *name,
|
||||
const void **value, size_t *value_len)
|
||||
{
|
||||
if (!strcmp(name, "uuid") && strnlen(blob->uuid, UUID_STRING_LEN) != 0) {
|
||||
CU_ASSERT(strnlen(blob->uuid, UUID_STRING_LEN) == (UUID_STRING_LEN - 1));
|
||||
@ -303,8 +303,7 @@ spdk_bs_get_cluster_size(struct spdk_blob_store *bs)
|
||||
return BS_CLUSTER_SIZE;
|
||||
}
|
||||
|
||||
void spdk_bs_md_close_blob(struct spdk_blob **b,
|
||||
spdk_blob_op_complete cb_fn, void *cb_arg)
|
||||
void spdk_blob_close(struct spdk_blob **b, spdk_blob_op_complete cb_fn, void *cb_arg)
|
||||
{
|
||||
(*b)->ref--;
|
||||
|
||||
@ -312,14 +311,13 @@ void spdk_bs_md_close_blob(struct spdk_blob **b,
|
||||
}
|
||||
|
||||
int
|
||||
spdk_bs_md_resize_blob(struct spdk_blob *blob, uint64_t sz)
|
||||
spdk_blob_resize(struct spdk_blob *blob, uint64_t sz)
|
||||
{
|
||||
return g_resize_rc;
|
||||
}
|
||||
|
||||
void
|
||||
spdk_bs_md_sync_blob(struct spdk_blob *blob,
|
||||
spdk_blob_op_complete cb_fn, void *cb_arg)
|
||||
spdk_blob_sync_md(struct spdk_blob *blob, spdk_blob_op_complete cb_fn, void *cb_arg)
|
||||
{
|
||||
cb_fn(cb_arg, 0);
|
||||
}
|
||||
@ -995,7 +993,7 @@ lvs_load(void)
|
||||
|
||||
/* Fail on getting name */
|
||||
g_lvserrno = 0;
|
||||
spdk_blob_md_set_xattr(super_blob, "uuid", uuid, UUID_STRING_LEN);
|
||||
spdk_blob_set_xattr(super_blob, "uuid", uuid, UUID_STRING_LEN);
|
||||
spdk_lvs_load(&dev.bs_dev, lvol_store_op_with_handle_complete, req);
|
||||
CU_ASSERT(g_lvserrno == -EINVAL);
|
||||
CU_ASSERT(g_lvol_store == NULL);
|
||||
@ -1003,7 +1001,7 @@ lvs_load(void)
|
||||
|
||||
/* Fail on closing super blob */
|
||||
g_lvserrno = 0;
|
||||
spdk_blob_md_set_xattr(super_blob, "name", "lvs", strnlen("lvs", SPDK_LVS_NAME_MAX) + 1);
|
||||
spdk_blob_set_xattr(super_blob, "name", "lvs", strnlen("lvs", SPDK_LVS_NAME_MAX) + 1);
|
||||
super_blob->close_status = -1;
|
||||
spdk_lvs_load(&dev.bs_dev, lvol_store_op_with_handle_complete, req);
|
||||
CU_ASSERT(g_lvserrno == -ENODEV);
|
||||
@ -1049,8 +1047,8 @@ lvols_load(void)
|
||||
super_blob = calloc(1, sizeof(*super_blob));
|
||||
SPDK_CU_ASSERT_FATAL(super_blob != NULL);
|
||||
super_blob->id = 0x100;
|
||||
spdk_blob_md_set_xattr(super_blob, "uuid", uuid, UUID_STRING_LEN);
|
||||
spdk_blob_md_set_xattr(super_blob, "name", "lvs", strnlen("lvs", SPDK_LVS_NAME_MAX) + 1);
|
||||
spdk_blob_set_xattr(super_blob, "uuid", uuid, UUID_STRING_LEN);
|
||||
spdk_blob_set_xattr(super_blob, "name", "lvs", strnlen("lvs", SPDK_LVS_NAME_MAX) + 1);
|
||||
TAILQ_INSERT_TAIL(&dev.bs->blobs, super_blob, link);
|
||||
dev.bs->super_blobid = 0x100;
|
||||
|
||||
@ -1061,22 +1059,22 @@ lvols_load(void)
|
||||
blob1 = calloc(1, sizeof(*blob1));
|
||||
SPDK_CU_ASSERT_FATAL(blob1 != NULL);
|
||||
blob1->id = 0x1;
|
||||
spdk_blob_md_set_xattr(blob1, "uuid", uuid, UUID_STRING_LEN);
|
||||
spdk_blob_md_set_xattr(blob1, "name", "lvol1", strnlen("lvol1", SPDK_LVOL_NAME_MAX) + 1);
|
||||
spdk_blob_set_xattr(blob1, "uuid", uuid, UUID_STRING_LEN);
|
||||
spdk_blob_set_xattr(blob1, "name", "lvol1", strnlen("lvol1", SPDK_LVOL_NAME_MAX) + 1);
|
||||
blob1->uuid[UUID_STRING_LEN - 2] = '1';
|
||||
|
||||
blob2 = calloc(1, sizeof(*blob2));
|
||||
SPDK_CU_ASSERT_FATAL(blob2 != NULL);
|
||||
blob2->id = 0x2;
|
||||
spdk_blob_md_set_xattr(blob2, "uuid", uuid, UUID_STRING_LEN);
|
||||
spdk_blob_md_set_xattr(blob2, "name", "lvol2", strnlen("lvol2", SPDK_LVOL_NAME_MAX) + 1);
|
||||
spdk_blob_set_xattr(blob2, "uuid", uuid, UUID_STRING_LEN);
|
||||
spdk_blob_set_xattr(blob2, "name", "lvol2", strnlen("lvol2", SPDK_LVOL_NAME_MAX) + 1);
|
||||
blob2->uuid[UUID_STRING_LEN - 2] = '2';
|
||||
|
||||
blob3 = calloc(1, sizeof(*blob3));
|
||||
SPDK_CU_ASSERT_FATAL(blob3 != NULL);
|
||||
blob3->id = 0x2;
|
||||
spdk_blob_md_set_xattr(blob3, "uuid", uuid, UUID_STRING_LEN);
|
||||
spdk_blob_md_set_xattr(blob3, "name", "lvol3", strnlen("lvol3", SPDK_LVOL_NAME_MAX) + 1);
|
||||
spdk_blob_set_xattr(blob3, "uuid", uuid, UUID_STRING_LEN);
|
||||
spdk_blob_set_xattr(blob3, "name", "lvol3", strnlen("lvol3", SPDK_LVOL_NAME_MAX) + 1);
|
||||
blob3->uuid[UUID_STRING_LEN - 2] = '3';
|
||||
|
||||
spdk_allocate_thread(_lvol_send_msg, NULL, NULL, NULL, NULL);
|
||||
@ -1160,8 +1158,8 @@ lvol_open(void)
|
||||
super_blob = calloc(1, sizeof(*super_blob));
|
||||
SPDK_CU_ASSERT_FATAL(super_blob != NULL);
|
||||
super_blob->id = 0x100;
|
||||
spdk_blob_md_set_xattr(super_blob, "uuid", uuid, UUID_STRING_LEN);
|
||||
spdk_blob_md_set_xattr(super_blob, "name", "lvs", strnlen("lvs", SPDK_LVS_NAME_MAX) + 1);
|
||||
spdk_blob_set_xattr(super_blob, "uuid", uuid, UUID_STRING_LEN);
|
||||
spdk_blob_set_xattr(super_blob, "name", "lvs", strnlen("lvs", SPDK_LVS_NAME_MAX) + 1);
|
||||
TAILQ_INSERT_TAIL(&dev.bs->blobs, super_blob, link);
|
||||
dev.bs->super_blobid = 0x100;
|
||||
|
||||
@ -1172,22 +1170,22 @@ lvol_open(void)
|
||||
blob1 = calloc(1, sizeof(*blob1));
|
||||
SPDK_CU_ASSERT_FATAL(blob1 != NULL);
|
||||
blob1->id = 0x1;
|
||||
spdk_blob_md_set_xattr(blob1, "uuid", uuid, UUID_STRING_LEN);
|
||||
spdk_blob_md_set_xattr(blob1, "name", "lvol1", strnlen("lvol1", SPDK_LVOL_NAME_MAX) + 1);
|
||||
spdk_blob_set_xattr(blob1, "uuid", uuid, UUID_STRING_LEN);
|
||||
spdk_blob_set_xattr(blob1, "name", "lvol1", strnlen("lvol1", SPDK_LVOL_NAME_MAX) + 1);
|
||||
blob1->uuid[UUID_STRING_LEN - 2] = '1';
|
||||
|
||||
blob2 = calloc(1, sizeof(*blob2));
|
||||
SPDK_CU_ASSERT_FATAL(blob2 != NULL);
|
||||
blob2->id = 0x2;
|
||||
spdk_blob_md_set_xattr(blob2, "uuid", uuid, UUID_STRING_LEN);
|
||||
spdk_blob_md_set_xattr(blob2, "name", "lvol2", strnlen("lvol2", SPDK_LVOL_NAME_MAX) + 1);
|
||||
spdk_blob_set_xattr(blob2, "uuid", uuid, UUID_STRING_LEN);
|
||||
spdk_blob_set_xattr(blob2, "name", "lvol2", strnlen("lvol2", SPDK_LVOL_NAME_MAX) + 1);
|
||||
blob2->uuid[UUID_STRING_LEN - 2] = '2';
|
||||
|
||||
blob3 = calloc(1, sizeof(*blob3));
|
||||
SPDK_CU_ASSERT_FATAL(blob3 != NULL);
|
||||
blob3->id = 0x2;
|
||||
spdk_blob_md_set_xattr(blob3, "uuid", uuid, UUID_STRING_LEN);
|
||||
spdk_blob_md_set_xattr(blob3, "name", "lvol3", strnlen("lvol3", SPDK_LVOL_NAME_MAX) + 1);
|
||||
spdk_blob_set_xattr(blob3, "uuid", uuid, UUID_STRING_LEN);
|
||||
spdk_blob_set_xattr(blob3, "name", "lvol3", strnlen("lvol3", SPDK_LVOL_NAME_MAX) + 1);
|
||||
blob3->uuid[UUID_STRING_LEN - 2] = '3';
|
||||
|
||||
spdk_allocate_thread(_lvol_send_msg, NULL, NULL, NULL, NULL);
|
||||
|
Loading…
x
Reference in New Issue
Block a user