nbd_aio_trim(3)
π nbd_aio_trim β girl help, we're sending a trim command to the NBD server
okay so real talk: this page is nbd_aio_trim(3) from the LIBNBD manual, and it's literally the async version of trim. bestie, let's get into it π
β¨ NAME β¨
nbd_aio_trim β send trim command to the NBD server π
πΈ SYNOPSIS πΈ
#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_trim (
struct nbd_handle *h, uint64_t count,
uint64_t offset,
nbd_completion_callback completion_callback,
uint32_t flags
);
like, that's the whole vibe right there β¨
π¦ DESCRIPTION π¦
So what this does is issue a trim command to the NBD server. That's it, that's the girl π«Ά
Wanna know if the command actually completed? You've got two options, bestie:
- call
nbd_aio_command_completed(3)and check for yourself, or - supply the optional
"completion_callback"β it gets invoked exactly as described in"Completion callbacks"inlibnbd(3). iconique π
The other parameters behave as documented in nbd_trim(3). no cap, go read that one too.
β RETURN VALUE β
This call returns the 64 bit cookie πͺ of the command. The cookie is β₯ 1. Cookies are unique β but heads up, that's unique per libnbd handle, not globally. iykyk π
π ERRORS π
On error, -1 is returned. not the vibe, but okay.
Refer to "ERROR HANDLING" in libnbd(3) for how to get further details of the error π
Also: the following parameters must not be NULL β "h". Fr fr. For more info see "Non-NULL parameters" in libnbd(3).
π¨ not me passing a NULL handleβ¦ bestie don't do it, it's literally on the must-not-be-NULL list.
π§ NOTES π§
π Strict call
By default, libnbd will reject attempts to use this function with parameters that are likely to result in server failure β like 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. main character energy for real.
π HANDLE STATE π
nbd_aio_trim can be called when the handle is in the following state β vibe check time:
- Handle created, before connecting β β error
- Connecting β β error
- Connecting & handshaking (opt_mode) β β error
- Connected to the server β β allowed
- Connection shut down β β error
- Handle dead β β error
so basically: connected to the server or it's a no from her π
π VERSION π
This function first appeared in libnbd 1.0. a classic, an original, we stan β
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_TRIM 1
π₯ SEE ALSO π₯
nbd_aio_command_completed(3), nbd_can_trim(3), nbd_create(3), nbd_set_strict_mode(3), nbd_trim(3), "Issuing asynchronous commands" in libnbd(3), libnbd(3). go read the whole little family, they ate π
π«Ά AUTHORS π«Ά
Eric Blake
Richard W.M. Jones
(absolute icons, both of them π)
πΈ COPYRIGHT πΈ
Copyright Red Hat
π LICENSE π
This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
π· okay that's the whole page, drink some water, and remember: this one's from libnbd-1.25.8, dated 2026-10-13. catch you on the next manpage, bestie β mwah πβ¨
π¦ where this page comes from
- centos-stream 10: libnbd-devel 1.25.8-1.el10 Β· LGPL-2.0-or-later AND BSD-3-Clause
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms