lsm_volume_create(3)

πŸ“¦
version 1.10.3 Β· 3 versions
, in fedora 43, fedora 44

πŸ’– lsm_volume_create β€” bestie edition πŸ’–

okay so we're in the Libstoragemgmt C API Manual and today's main character is lsm_volume_create(3). yes that's the whole page name, we're doing this properly πŸ’…


✨ NAME ✨

lsm_volume_create β€” creates a new volume πŸŽ€


🌸 SYNOPSIS 🌸

int lsm_volume_create (lsm_connect *conn, lsm_pool *pool, const char
*volume_name, uint64_t size, lsm_volume_provision_type provisioning,
lsm_volume **new_volume, char **job, lsm_flag flags);

like. look at all those arguments. we love a function with range πŸ’œ


πŸ¦‹ ARGUMENTS πŸ¦‹

  • conn β€” a valid lsm_connect pointer. has to be valid bestie, no fake ones πŸ™ˆ
  • pool β€” pointer of lsm_pool. that's the pool we're pulling from 🏊
  • volume_name β€” string. it's a human recognizable name, but heads up: some storage systems might alter it or straight up ignore it 😭 so don't get attached
  • size β€” uint64_t. size of the new volume in bytes. ngl the actual size might be bigger than what you asked for, because it gets based on array rounding to block size. it's giving "close enough" ✨
  • provisioning β€” lsm_volume_provision_type. the type of volume provisioning to use. valid values are:
    • LSM_VOLUME_PROVISION_DEFAULT β€” let the storage system decide. we love a delegator πŸ‘‘
    • LSM_VOLUME_PROVISION_FULL β€” create a new fully allocated volume. no crumbs, all in πŸ”₯
    • LSM_VOLUME_PROVISION_THIN β€” create a new thin provisioning volume. light and airy 🧚
  • new_volume β€” output pointer of lsm_volume. it will be NULL if the storage system supports asynchronous action on this. the memory must be freed with a call to lsm_volume_record_free. do not forget, i'm literally begging 🫢
  • job β€” output pointer of string. if the storage system supports asynchronous action on this, a job will be created and could be tracked via lsm_job_status_volume_get. it's NULL if the storage system does not support asynchronous action on this ⭐
  • flags β€” reserved for future use, must be LSM_CLIENT_FLAG_RSVD. it's a placeholder bestie, don't put anything else in there πŸ’€

πŸ’œ VERSION πŸ’œ

1.0


🌈 DESCRIPTION 🌈

Creates a new volume (also known as a LUN). that's it, that's the vibe ✨


πŸ‘‘ CAPABILITY πŸ‘‘

LSM_CAP_VOLUME_CREATE


πŸ’… RETURN πŸ’…

the error code, as enumerated by lsm_error_number:

  • LSM_ERR_OK β€” on success. slay πŸŽ‰
  • LSM_ERR_JOB_STARTED β€” a job is started. please check the job output pointer. go look at it, fr fr πŸ‘€
  • LSM_ERR_INVALID_ARGUMENT β€” when any argument is NULL, or not a valid lsm_connect pointer, or invalid flags, or invalid provisioning type. basically when something's off πŸ™ˆ
  • LSM_ERR_NOT_FOUND_POOL β€” when pool not found. where is she 😭
  • LSM_ERR_NOT_ENOUGH_SPACE β€” pool does not have enough space. the pool said no πŸ“
  • LSM_ERR_POOL_NOT_READY β€” pool is not ready for volume creation. give her a minute πŸ§–
  • LSM_ERR_NO_SUPPORT β€” not supported. it's not giving what it needs to give πŸ’€

okay that's the whole page, nothing skipped, every single detail accounted for. you ate this. periodt πŸ’–

and that's a wrap on lsm_volume_create(3) from the Libstoragemgmt C API Manual, dated February 2026 β€” source and version notes delivered, cute sign-off included, mwah 🫢✨

πŸ“¦ where this page comes from