---
name: "io_uring_prep_fsetxattr"
section: "3"
platform: "linux"
package: "liburing"
version: "2.15-1"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/io_uring_prep_fsetxattr"
---

# io\_uring\_prep\_fsetxattr(3)

prepare a request to set an extended attribute value

## 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

The [**io\_uring\_prep\_setxattr**(3)](/io_uring_prep_setxattr/3.md) function prepares a request to set an extended attribute value. The submission  queue entry  *sqe* is setup to set the *value* of the extended attribute identified by *name* and associated with the given *path* in the filesystem with modifier flags *flags*. The *len* argument specifies the size (in bytes) of *value*.

[**io\_uring\_prep\_fsetxattr**(3)](/io_uring_prep_fsetxattr/3.md) is identical to  [**io\_uring\_prep\_setxattr**(3)](/io_uring_prep_setxattr/3.md), only the extended attribute is set on the open file referred to by *fd* in place of *path*.

This function prepares an async  [**setxattr**(2)](/setxattr/2.md) request. See that man page for details.

## RETURN VALUE

None

## SEE ALSO

[**io\_uring\_get\_sqe**(3)](/io_uring_get_sqe/3.md), [**setxattr**(2)](/setxattr/2.md)
