io_uring_prep_setxattr(3)
β¨ io_uring_prep_setxattr β bestie edition β¨
okay so this page lives in the liburing manual, and it's about two lil functions that go hand in hand: io_uring_prep_setxattr and io_uring_prep_fsetxattr. they prepare a request to set an extended attribute value. yes, xattrs, we love them, we respect them π
πΈ NAME πΈ
io_uring_prep_setxattr, io_uring_prep_fsetxattr β prepare a request to set an extended attribute value π
π¦ SYNOPSIS π¦
#include <liburing.h>
void io_uring_prep_setxattr(struct io_uring_sqe *sqe,
const char *name,
const char *value,
const char *path,
int flags,
unsigned int len);
void io_uring_prep_fsetxattr(struct io_uring_sqe *sqe,
int fd,
const char *name,
const char *value,
int flags,
unsigned int len);
π DESCRIPTION π
so io_uring_prep_setxattr(3) is the function that gets a request ready to set an extended attribute value. it takes your submission queue entry, that's the sqe, and sets it up so it'll set the value of the extended attribute identified by name, which is associated with the given path in the filesystem, with the modifier flags flags. and the len argument? that one specifies the size (in bytes) of value. yes bestie, bytes, we're measuring π
and io_uring_prep_fsetxattr(3) is literally identical to io_uring_prep_setxattr(3), with exactly one glow-up: instead of path, the extended attribute gets set on the open file referred to by fd. that's the whole difference. iconic. π
fr fr, this function prepares an async setxattr(2) request. so go read that man page for the details, it's giving lore.
β RETURN VALUE β
None. that's it. nothing. it returns nothing, it's not that kind of function, and honestly? respect. π«Ά
π SEE ALSO π
and that's the whole page, bestie!! π this one came from liburing-2.4 and it was dated January 23, 2023 β go forth and set those extended attributes, no cap π¦β¨π
π¦ where this page comes from
- alpine 3.22: liburing-doc 2.9-r0 Β· LGPL-2.1-or-later OR MIT
- alpine 3.23: liburing-doc 2.12-r0 Β· LGPL-2.1-or-later OR MIT
- alpine 3.24: liburing-doc 2.14-r0 Β· LGPL-2.1-or-later OR MIT
- arch rolling: liburing 2.15-1 Β· GPL-2.0-only WITH Linux-syscall-note OR MIT AND LGPL-2.0-or-later AND MIT
- centos-stream 10: liburing-devel 2.12-1.el10 Β· (GPLv2 with exceptions and LGPLv2+) or MIT
- centos-stream 9: liburing-devel 2.12-1.el9 Β· (GPLv2 with exceptions and LGPLv2+) or MIT
- centos-stream 9: liburing-devel 2.12-1.el9 Β· (GPLv2 with exceptions and LGPLv2+) or MIT
- debian trixie: liburing-dev 2.9-1
- fedora 43: liburing-devel 2.9-2.fc43 Β· (GPL-2.0-only WITH Linux-syscall-note OR MIT) AND (LGPL-2.0-or-later OR MIT)
- fedora 43: liburing-devel 2.9-2.fc43 Β· (GPL-2.0-only WITH Linux-syscall-note OR MIT) AND (LGPL-2.0-or-later OR MIT)
- fedora 44: liburing-devel 2.13-2.fc44 Β· (GPL-2.0-only WITH Linux-syscall-note OR MIT) AND (LGPL-2.0-or-later OR MIT)
- fedora 44: liburing-devel 2.13-2.fc44 Β· (GPL-2.0-only WITH Linux-syscall-note OR MIT) AND (LGPL-2.0-or-later OR MIT)
- nixpkgs unstable: liburing 2.14
- opensuse-leap 16.0: liburing-devel 2.8-160000.3.1 Β· (GPL-2.0-only AND LGPL-2.1-or-later) OR MIT
- opensuse-leap 16.0: liburing-devel 2.8-160000.3.1 Β· (GPL-2.0-only AND LGPL-2.1-or-later) OR MIT
- opensuse-leap 16.0: liburing-devel 2.8-160000.3.1 Β· (GPL-2.0-only AND LGPL-2.1-or-later) OR MIT
- opensuse-leap 16.0: liburing-devel 2.8-160000.3.1 Β· (GPL-2.0-only AND LGPL-2.1-or-later) OR MIT
- ubuntu noble: liburing-dev 2.5-1build1
- ubuntu questing: liburing-dev 2.11-1
- ubuntu resolute: liburing-dev 2.14-1
- ubuntu stonking: liburing-dev 2.15-1
- π the page's license: LGPL-2.0-or-later
- Copyright (C) 2023 Rutvik Patel <heyrutvik@gmail.com>
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms