Provided by: libaio-dev_0.3.106-5ubuntu2_i386 bug
 

NAME

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

SYNOPSYS

        #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.
        Returns 0, otherwise returns errno.
 

ERRORS

        EFAULT iocbs  referenced  data  outside  of  the  program’s  accessible
               address space.
 
        EINVAL ctx refers to an unitialized 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.
        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)