nbd_aio_block_status_643
Send block status command, with 64-bit callback
Usage
#include <libnbd.h>typedef struct {int (*callback) (void *user_data,const char *metacontext,uint64_t offset, nbd_extent *entries,size_t nr_entries, int *error);void *user_data;void (*free) (void *user_data);} nbd_extent64_callback;typedef struct {int (*callback) (void *user_data, int *error);void *user_data;void (*free) (void *user_data);} nbd_completion_callback;int64_t nbd_aio_block_status_64 (struct nbd_handle *h, uint64_t count,uint64_t offset,nbd_extent64_callback extent64_callback,nbd_completion_callback completion_callback,uint32_t flags);
Overview
Send the block status command to the NBD server.
To check if the command completed, call nbd_aio_command_completed(3). Or supply the optional "completion_callback" which will be invoked as described in "Completion callbacks" in libnbd(3).
Other parameters behave as documented in nbd_block_status_64(3).
By default, libnbd will reject attempts to use this function with parameters that are likely to result in server failure, such as requesting an unknown command flag. The nbd_set_strict_mode(3) function can be used to alter which scenarios should await a server reply rather than failing fast.
Return value
This call returns the 64 bit cookie of the command. The cookie is ≥ 1. Cookies are unique (per libnbd handle, not globally).
Errors
On error -1 is returned.
Refer to "ERROR HANDLING" in libnbd(3) for how to get further details of the error.
The following parameters must not be NULL: "h". For more information see "Non-NULL parameters" in libnbd(3).
Handle state
nbd_aio_block_status_64 can be called when the handle is in the following state:
┌─────────────────────────────────────┬─────────────────────────┐│ Handle created, before connecting │ ❌ error ││ Connecting │ ❌ error ││ Connecting & handshaking (opt_mode) │ ❌ error ││ Connected to the server │ ✅ allowed ││ Connection shut down │ ❌ error ││ Handle dead │ ❌ error │└─────────────────────────────────────┴─────────────────────────┘
Version
This function first appeared in libnbd 1.18.
If you need to test if this function is available at compile time check if the following macro is defined:
#define LIBNBD_HAVE_NBD_AIO_BLOCK_STATUS_64 1
Releases
2 releases since Debian 13 (Trixie); the text changed 1 time.