nbd_aio_cache3
Send cache (prefetch) command to the nbd server
Usage
#include <libnbd.h>typedef struct {int (*callback) (void *user_data, int *error);void *user_data;void (*free) (void *user_data);} nbd_completion_callback;int64_t nbd_aio_cache (struct nbd_handle *h, uint64_t count,uint64_t offset,nbd_completion_callback completion_callback,uint32_t flags);
Overview
Issue the cache (prefetch) 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_cache(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_cache 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.0.
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_CACHE 1
Releases
4 releases since Debian 11 (Bullseye); the text changed 3 times.