Provided by: libaio-dev_0.3.113-6build1.1_amd64 bug

NAME

       io_fsync - Synchronize a file's complete in-core state with that on disk

SYNOPSIS

       #include <errno.h>

       #include <libaio.h>

       int io_fsync(io_context_t ctx, struct iocb *iocb, io_callback_t cb, int fd);

       struct iocb {
            void      *data;
            unsigned  key;
            short          aio_lio_opcode;
            short          aio_reqprio;
            int       aio_fildes;
       };

       typedef void (*io_callback_t)(io_context_t ctx, struct iocb *iocb, long res, long res2);

DESCRIPTION

       When dealing with asynchronous operations it is sometimes necessary to get into a consistent state.  This
       would mean for AIO that one wants to know whether a certain request or a group of request were processed.
       This could be done by waiting for the notification sent by the system after the operation terminated, but
       this sometimes would mean wasting resources (mainly computation time).

       Calling  this  function  forces  all  I/O  operations  operating  queued at the time of the function call
       operating on the file descriptor  iocb->io_fildes  into  the  synchronized  I/O  completion  state.   The
       io_fsync()  function returns immediately but the notification through the method described in io_callback
       will happen only  after  all  requests  for  this  file  descriptor  have  terminated  and  the  file  is
       synchronized.   This  also  means that requests for this very same file descriptor which are queued after
       the synchronization request are not affected.

RETURN VALUES

       Returns 0, otherwise returns errno.

ERRORS

       EFAULT iocbs referenced data outside of the program's accessible address space.

       EINVAL ctx refers to an uninitialized aio context, the iocb pointed to by iocbs  contains  an  improperly
              initialized iocb,

       EBADF  The iocb contains a file descriptor that does not exist.

       EINVAL The file specified in the iocb does not support the given io operation.

SEE ALSO

       io(3),    io_cancel(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).

Linux                                              2019-07-23                                        io_fsync(3)