Linux and UNIX Man Pages

Linux & Unix Commands - Search Man Pages

io_prep_fsync(3) [debian man page]

io_prep_fsync(3)						       Linux							  io_prep_fsync(3)

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 synchro- nized 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). Linux 2.4 2009-06-10 io_prep_fsync(3)

Check Out this Related Man Page

io_fsync(3)							       Linux							       io_fsync(3)

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. 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 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. 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 2.4 2009-06-10 io_fsync(3)
Man Page