NAME¶
io_prep_fsync - Synchronize a file's complete in-core state with that on disk
SYNOPSYS¶
#include <errno.h>
#include <libaio.h>
static inline void io_prep_fsync(struct iocb *iocb, int fd);
struct iocb {
void *data;
unsigned key;
short aio_lio_opcode;
short aio_reqprio;
int aio_fildes;
};
DESCRIPTION¶
This is an inline convenience function for setting up an
iocbv for a
FSYNC request.
The file for which
- iocb->aio_fildes = fd
- is a descriptor is set up with the command
- iocb->aio_lio_opcode = IO_CMD_FSYNC
The
io_prep_fsync() function shall set up an
IO_CMD_FSYNC
operation to asynchronously force all I/O operations associated with the file
indicated by the file descriptor
aio_fildes member of the
iocb
structure referenced by the iocb argument and queued at the time of the call
to
io_submit() to the synchronized I/O completion state. The function
call shall return when the synchronization request has been initiated or
queued to the file or device (even when the data cannot be synchronized
immediately).
All currently queued I/O operations shall be completed as if by a call to
fsync(); that is, as defined for synchronized I/O file integrity
completion. If the operation queued by
io_prep_fsync() fails, then, as
for
fsync(), outstanding I/O operations are not guaranteed to have been
completed.
If
io_prep_fsync() succeeds, then it is only the I/O that was queued at
the time of the call to
io_submit() that is guaranteed to be forced to
the relevant completion state. The completion of subsequent I/O on the file
descriptor is not guaranteed to be completed in a synchronized fashion.
This function returns immediately. To schedule the operation, the function
io_submit must be called.
Simultaneous asynchronous operations using the same iocb produce undefined
results.
RETURN VALUES¶
None.
ERRORS¶
None.
SEE ALSO¶
io(3),
io_cancel(3),
io_fsync(3),
io_getevents(3),
io_prep_pread(3),
io_prep_pwrite(3),
io_queue_init(3),
io_queue_release(3),
io_queue_run(3),
io_queue_wait(3),
io_set_callback(3),
io_submit(3),
errno(3).