---
name: "io_uring_prep_fsync"
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_fsync"
---

# io\_uring\_prep\_fsync(3)

prepare an fsync request

## NAME

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

## SYNOPSIS

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

**void io\_uring\_prep\_fsync(struct io\_uring\_sqe \****sqe***,**                          **int** *fd***,**                          **unsigned** *flags***);**

## DESCRIPTION

The [**io\_uring\_prep\_fsync**(3)](/io_uring_prep_fsync/3.md) 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)](/fsync/2.md) operation, which is the default behavior. If **IORING\_FSYNC\_DATASYNC** is set in the *flags* argument, then it behaves like [**fdatasync**(2)](/fdatasync/2.md). 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

None

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

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