File: io_prep_fsync.3

package info (click to toggle)
libaio 0.3.110-1
  • links: PTS, VCS
  • area: main
  • in suites: jessie, jessie-kfreebsd
  • size: 1,132 kB
  • ctags: 749
  • sloc: ansic: 1,931; makefile: 195; sh: 14
file content (90 lines) | stat: -rw-r--r-- 2,569 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
.\" static inline void io_prep_fsync(struct iocb *iocb, int fd)
.\" {
.\" 	memset(iocb, 0, sizeof(*iocb));
.\" 	iocb->aio_fildes = fd;
.\" 	iocb->aio_lio_opcode = IO_CMD_FSYNC;
.\" 	iocb->aio_reqprio = 0;
.\" }
.TH io_prep_fsync 3 2009-06-10 "Linux 2.4" Linux AIO"
.SH NAME
io_prep_fsync \- Synchronize a file's complete in-core state with that on disk
.SH SYNOPSYS
.nf
.B #include <errno.h>
.br
.sp
.B #include <libaio.h>
.br
.sp
.BI "static inline void io_prep_fsync(struct iocb *" iocb ", int " fd ");"
.sp
struct iocb {
	void		*data;
	unsigned	key;
	short		aio_lio_opcode;
	short		aio_reqprio;
	int		aio_fildes;
};
.sp
.fi
.SH DESCRIPTION
This is an inline convenience function for setting up an \fIiocbv\fP for a
\fBFSYNC\fP request.
.br
The file for which
.TP 
.IR "iocb->aio_fildes = fd" 
is a descriptor is set up with
the command
.TP 
.IR "iocb->aio_lio_opcode = IO_CMD_FSYNC"
.
.PP
The \fBio_prep_fsync\fP() function shall set up an \fBIO_CMD_FSYNC\fP operation
to asynchronously force all I/O
operations associated with the file indicated by the file
descriptor \fIaio_fildes\fP member of the \fIiocb\fP structure referenced by
the iocb argument and queued at the time of the call to
\fBio_submit\fP() 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 \fBfsync\fP(); that is, as defined for synchronized I/O file
integrity completion. If the
operation queued by \fBio_prep_fsync\fP() fails, then, as for \fBfsync\fP(),
outstanding I/O operations are not guaranteed to have
been completed.

If \fBio_prep_fsync\fP() succeeds, then it is only the I/O that was queued
at the time of the call to \fBio_submit\fP() 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.
.PP
This function returns immediately. To schedule the operation, the
function
.IR io_submit
must be called.
.PP
Simultaneous asynchronous operations using the same iocb produce
undefined results.
.SH "RETURN VALUES"
None.
.SH ERRORS
None.
.SH "SEE ALSO"
.BR io (3),
.BR io_cancel (3),
.BR io_fsync (3),
.BR io_getevents (3),
.BR io_prep_pread (3),
.BR io_prep_pwrite (3),
.BR io_queue_init (3),
.BR io_queue_release (3),
.BR io_queue_run (3),
.BR io_queue_wait (3),
.BR io_set_callback (3),
.BR io_submit (3),
.BR errno (3).