Provided by: libaio-dev_0.3.110-2_amd64 bug


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


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


       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.






       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).