io\_uring\_prep\_fsync(3) liburing Manual io\_uring\_prep\_fsync(3)

# [NAME](#NAME)

io\_uring\_prep\_fsync - prepare an fsync request

# [SYNOPSIS](#SYNOPSIS)

```
#include <liburing.h>
```

```
void io_uring_prep_fsync(struct io_uring_sqe *sqe,
                         int fd,
                         unsigned flags);
```

# [DESCRIPTION](#DESCRIPTION)

The [**io\_uring\_prep\_fsync**(3)](/man/os/liburing/io_uring_prep_fsync.3) function prepares an fsync request. The submission queue entry *sqe* is setup to use the file descriptor *fd* that should get synced, with the modifier flags indicated by the *flags* argument.

This function prepares an fsync request. It can act either like an [**fsync**(2)](/man/os/liburing/fsync.2) operation, which is the default behavior. If **IORING\_FSYNC\_DATASYNC** is set in the *flags* argument, then it behaves like [**fdatasync**(2)](/man/os/liburing/fdatasync.2). If no range is specified, the *fd* will be synced from 0 to end-of-file.

It's possible to specify a range to sync, if one is desired. If the *off* field of the SQE is set to non-zero, then that indicates the offset to start syncing at. If *len* is set in the SQE, then that indicates the size in bytes to sync from the offset. Note that these fields are not accepted by this helper, so they have to be set manually in the SQE after calling this prep helper.

# [RETURN VALUE](#RETURN_VALUE)

None

# [ERRORS](#ERRORS)

The CQE *res* field will contain the result of the operation. See the related man page for details on possible values. Note that where synchronous system calls will return **-1** on failure and set *errno* to the actual error value, io\_uring never uses *errno*. Instead it returns the negated *errno* directly in the CQE *res* field.

# [SEE ALSO](#SEE_ALSO)

[**io\_uring\_get\_sqe**(3)](/man/os/liburing/io_uring_get_sqe.3), [**io\_uring\_submit**(3)](/man/os/liburing/io_uring_submit.3), [**fsync**(2)](/man/os/liburing/fsync.2), [**fdatasync**(2)](/man/os/liburing/fdatasync.2)

March 12, 2022 liburing-2.2

---

Document: io_uring_prep_fsync(3) from liburing 2.15-r4 (Chainguard OS)
Source: https://github.com/axboe/liburing.git
