lvol.h File Reference

Logical Volume Interface. More...

Data Structures

struct  spdk_lvs_opts
 Parameters for lvolstore initialization. More...
 

Macros

#define SPDK_LVS_NAME_MAX   64
 
#define SPDK_LVOL_NAME_MAX   64
 

Typedefs

typedef void(* spdk_lvs_op_with_handle_complete) (void *cb_arg, struct spdk_lvol_store *lvol_store, int lvserrno)
 Callback definition for lvolstore operations, including handle to lvs. More...
 
typedef void(* spdk_lvs_op_complete) (void *cb_arg, int lvserrno)
 Callback definition for lvolstore operations without handle. More...
 
typedef void(* spdk_lvol_op_with_handle_complete) (void *cb_arg, struct spdk_lvol *lvol, int lvolerrno)
 Callback definition for lvol operations with handle to lvol. More...
 
typedef void(* spdk_lvol_op_complete) (void *cb_arg, int lvolerrno)
 Callback definition for lvol operations without handle to lvol. More...
 

Enumerations

enum  lvol_clear_method { LVOL_CLEAR_WITH_DEFAULT = BLOB_CLEAR_WITH_DEFAULT , LVOL_CLEAR_WITH_NONE = BLOB_CLEAR_WITH_NONE , LVOL_CLEAR_WITH_UNMAP = BLOB_CLEAR_WITH_UNMAP , LVOL_CLEAR_WITH_WRITE_ZEROES = BLOB_CLEAR_WITH_WRITE_ZEROES }
 
enum  lvs_clear_method { LVS_CLEAR_WITH_UNMAP = BS_CLEAR_WITH_UNMAP , LVS_CLEAR_WITH_WRITE_ZEROES = BS_CLEAR_WITH_WRITE_ZEROES , LVS_CLEAR_WITH_NONE = BS_CLEAR_WITH_NONE }
 

Functions

void spdk_lvs_opts_init (struct spdk_lvs_opts *opts)
 Initialize an spdk_lvs_opts structure to the defaults. More...
 
int spdk_lvs_init (struct spdk_bs_dev *bs_dev, struct spdk_lvs_opts *o, spdk_lvs_op_with_handle_complete cb_fn, void *cb_arg)
 Initialize lvolstore on given bs_bdev. More...
 
void spdk_lvs_rename (struct spdk_lvol_store *lvs, const char *new_name, spdk_lvs_op_complete cb_fn, void *cb_arg)
 Rename the given lvolstore. More...
 
int spdk_lvs_unload (struct spdk_lvol_store *lvol_store, spdk_lvs_op_complete cb_fn, void *cb_arg)
 Unload lvolstore. More...
 
int spdk_lvs_destroy (struct spdk_lvol_store *lvol_store, spdk_lvs_op_complete cb_fn, void *cb_arg)
 Destroy lvolstore. More...
 
int spdk_lvol_create (struct spdk_lvol_store *lvs, const char *name, uint64_t sz, bool thin_provisioned, enum lvol_clear_method clear_method, spdk_lvol_op_with_handle_complete cb_fn, void *cb_arg)
 Create lvol on given lvolstore with specified size. More...
 
void spdk_lvol_create_snapshot (struct spdk_lvol *lvol, const char *snapshot_name, spdk_lvol_op_with_handle_complete cb_fn, void *cb_arg)
 Create snapshot of given lvol. More...
 
void spdk_lvol_create_clone (struct spdk_lvol *lvol, const char *clone_name, spdk_lvol_op_with_handle_complete cb_fn, void *cb_arg)
 Create clone of given snapshot. More...
 
void spdk_lvol_rename (struct spdk_lvol *lvol, const char *new_name, spdk_lvol_op_complete cb_fn, void *cb_arg)
 Rename lvol with new_name. More...
 
bool spdk_lvol_deletable (struct spdk_lvol *lvol)
 Returns if it is possible to delete an lvol (i.e. More...
 
void spdk_lvol_destroy (struct spdk_lvol *lvol, spdk_lvol_op_complete cb_fn, void *cb_arg)
 Close lvol and remove information about lvol from its lvolstore. More...
 
void spdk_lvol_close (struct spdk_lvol *lvol, spdk_lvol_op_complete cb_fn, void *cb_arg)
 Close lvol, but information is kept on lvolstore. More...
 
struct spdk_io_channel * spdk_lvol_get_io_channel (struct spdk_lvol *lvol)
 Get I/O channel of bdev associated with specified lvol. More...
 
void spdk_lvs_load (struct spdk_bs_dev *bs_dev, spdk_lvs_op_with_handle_complete cb_fn, void *cb_arg)
 Load lvolstore from the given blobstore device. More...
 
void spdk_lvol_open (struct spdk_lvol *lvol, spdk_lvol_op_with_handle_complete cb_fn, void *cb_arg)
 Open a lvol. More...
 
void spdk_lvol_inflate (struct spdk_lvol *lvol, spdk_lvol_op_complete cb_fn, void *cb_arg)
 Inflate lvol. More...
 
void spdk_lvol_decouple_parent (struct spdk_lvol *lvol, spdk_lvol_op_complete cb_fn, void *cb_arg)
 Decouple parent of lvol. More...
 

Detailed Description

Logical Volume Interface.

Typedef Documentation

◆ spdk_lvol_op_complete

typedef void(* spdk_lvol_op_complete) (void *cb_arg, int lvolerrno)

Callback definition for lvol operations without handle to lvol.

Parameters
cb_argCustom arguments
lvolerrnoError

◆ spdk_lvol_op_with_handle_complete

typedef void(* spdk_lvol_op_with_handle_complete) (void *cb_arg, struct spdk_lvol *lvol, int lvolerrno)

Callback definition for lvol operations with handle to lvol.

Parameters
cb_argCustom arguments
lvolHandle to lvol or NULL when lvserrno is set
lvolerrnoError

◆ spdk_lvs_op_complete

typedef void(* spdk_lvs_op_complete) (void *cb_arg, int lvserrno)

Callback definition for lvolstore operations without handle.

Parameters
cb_argCustom arguments
lvserrnoError

◆ spdk_lvs_op_with_handle_complete

typedef void(* spdk_lvs_op_with_handle_complete) (void *cb_arg, struct spdk_lvol_store *lvol_store, int lvserrno)

Callback definition for lvolstore operations, including handle to lvs.

Parameters
cb_argCustom arguments
lvol_storeHandle to lvol_store or NULL when lvserrno is set
lvserrnoError

Function Documentation

◆ spdk_lvol_close()

void spdk_lvol_close ( struct spdk_lvol *  lvol,
spdk_lvol_op_complete  cb_fn,
void *  cb_arg 
)

Close lvol, but information is kept on lvolstore.

Parameters
lvolHandle to lvol.
cb_fnCompletion callback.
cb_argCompletion callback custom arguments.

◆ spdk_lvol_create()

int spdk_lvol_create ( struct spdk_lvol_store *  lvs,
const char *  name,
uint64_t  sz,
bool  thin_provisioned,
enum lvol_clear_method  clear_method,
spdk_lvol_op_with_handle_complete  cb_fn,
void *  cb_arg 
)

Create lvol on given lvolstore with specified size.

Parameters
lvsHandle to lvolstore.
nameName of lvol.
szsize of lvol in bytes.
thin_provisionedEnables thin provisioning.
clear_methodChanges default data clusters clear method
cb_fnCompletion callback.
cb_argCompletion callback custom arguments.
Returns
0 on success, negative errno on failure.

◆ spdk_lvol_create_clone()

void spdk_lvol_create_clone ( struct spdk_lvol *  lvol,
const char *  clone_name,
spdk_lvol_op_with_handle_complete  cb_fn,
void *  cb_arg 
)

Create clone of given snapshot.

Parameters
lvolHandle to lvol snapshot.
clone_nameName of created clone.
cb_fnCompletion callback.
cb_argCompletion callback custom arguments.

◆ spdk_lvol_create_snapshot()

void spdk_lvol_create_snapshot ( struct spdk_lvol *  lvol,
const char *  snapshot_name,
spdk_lvol_op_with_handle_complete  cb_fn,
void *  cb_arg 
)

Create snapshot of given lvol.

Parameters
lvolHandle to lvol.
snapshot_nameName of created snapshot.
cb_fnCompletion callback.
cb_argCompletion callback custom arguments.

◆ spdk_lvol_decouple_parent()

void spdk_lvol_decouple_parent ( struct spdk_lvol *  lvol,
spdk_lvol_op_complete  cb_fn,
void *  cb_arg 
)

Decouple parent of lvol.

Parameters
lvolHandle to lvol
cb_fnCompletion callback
cb_argCompletion callback custom arguments

◆ spdk_lvol_deletable()

bool spdk_lvol_deletable ( struct spdk_lvol *  lvol)

Returns if it is possible to delete an lvol (i.e.

lvol is not a snapshot that have at least one clone).

Parameters
lvolHandle to lvol

◆ spdk_lvol_destroy()

void spdk_lvol_destroy ( struct spdk_lvol *  lvol,
spdk_lvol_op_complete  cb_fn,
void *  cb_arg 
)

Close lvol and remove information about lvol from its lvolstore.

Parameters
lvolHandle to lvol.
cb_fnCompletion callback.
cb_argCompletion callback custom arguments.

◆ spdk_lvol_get_io_channel()

struct spdk_io_channel* spdk_lvol_get_io_channel ( struct spdk_lvol *  lvol)

Get I/O channel of bdev associated with specified lvol.

Parameters
lvolHandle to lvol.
Returns
a pointer to the I/O channel.

◆ spdk_lvol_inflate()

void spdk_lvol_inflate ( struct spdk_lvol *  lvol,
spdk_lvol_op_complete  cb_fn,
void *  cb_arg 
)

Inflate lvol.

Parameters
lvolHandle to lvol
cb_fnCompletion callback
cb_argCompletion callback custom arguments

◆ spdk_lvol_open()

void spdk_lvol_open ( struct spdk_lvol *  lvol,
spdk_lvol_op_with_handle_complete  cb_fn,
void *  cb_arg 
)

Open a lvol.

Parameters
lvolHandle to lvol.
cb_fnCompletion callback.
cb_argCompletion callback custom arguments.

◆ spdk_lvol_rename()

void spdk_lvol_rename ( struct spdk_lvol *  lvol,
const char *  new_name,
spdk_lvol_op_complete  cb_fn,
void *  cb_arg 
)

Rename lvol with new_name.

Parameters
lvolHandle to lvol.
new_namenew name for lvol.
cb_fnCompletion callback.
cb_argCompletion callback custom arguments.

◆ spdk_lvs_destroy()

int spdk_lvs_destroy ( struct spdk_lvol_store *  lvol_store,
spdk_lvs_op_complete  cb_fn,
void *  cb_arg 
)

Destroy lvolstore.

All lvols have to be closed beforehand, when doing destroy.

Parameters
lvol_storeHandle to lvolstore.
cb_fnCompletion callback.
cb_argCompletion callback custom arguments.
Returns
0 on success, negative errno on failure.

◆ spdk_lvs_init()

int spdk_lvs_init ( struct spdk_bs_dev bs_dev,
struct spdk_lvs_opts o,
spdk_lvs_op_with_handle_complete  cb_fn,
void *  cb_arg 
)

Initialize lvolstore on given bs_bdev.

Parameters
bs_devThis is created on the given bdev by using spdk_bdev_create_bs_dev() beforehand.
oOptions for lvolstore.
cb_fnCompletion callback.
cb_argCompletion callback custom arguments.
Returns
0 on success, negative errno on failure.

◆ spdk_lvs_load()

void spdk_lvs_load ( struct spdk_bs_dev bs_dev,
spdk_lvs_op_with_handle_complete  cb_fn,
void *  cb_arg 
)

Load lvolstore from the given blobstore device.

Parameters
bs_devPointer to the blobstore device.
cb_fnCompletion callback.
cb_argCompletion callback custom arguments.

◆ spdk_lvs_opts_init()

void spdk_lvs_opts_init ( struct spdk_lvs_opts opts)

Initialize an spdk_lvs_opts structure to the defaults.

Parameters
optsPointer to the spdk_lvs_opts structure to initialize.

◆ spdk_lvs_rename()

void spdk_lvs_rename ( struct spdk_lvol_store *  lvs,
const char *  new_name,
spdk_lvs_op_complete  cb_fn,
void *  cb_arg 
)

Rename the given lvolstore.

Parameters
lvsPointer to lvolstore.
new_nameNew name of lvs.
cb_fnCompletion callback.
cb_argCompletion callback custom arguments.

◆ spdk_lvs_unload()

int spdk_lvs_unload ( struct spdk_lvol_store *  lvol_store,
spdk_lvs_op_complete  cb_fn,
void *  cb_arg 
)

Unload lvolstore.

All lvols have to be closed beforehand, when doing unload.

Parameters
lvol_storeHandle to lvolstore.
cb_fnCompletion callback.
cb_argCompletion callback custom arguments.
Returns
0 on success, negative errno on failure.