pub struct Fsync { /* private fields */ }Expand description
File sync. See also fsync(2).
Optionally offset and len can be used to specify a range
within the file to be synced rather than syncing the entire file, which is the default
behavior.
Note that, while I/O is initiated in the order in which it appears in the submission queue,
completions are unordered. For example, an application which places a write I/O followed by
an fsync in the submission queue cannot expect the fsync to apply to the write. The two
operations execute in parallel, so the fsync may complete before the write is issued to the
storage. The same is also true for previously issued writes that have not completed prior to
the fsync. To enforce ordering one may utilize linked SQEs, IOSQE_IO_DRAIN or wait for the
arrival of CQEs of requests which have to be ordered before a given request before
submitting its SQE.
Implementations§
Source§impl Fsync
impl Fsync
Sourcepub const CODE: u8
pub const CODE: u8
The opcode of the operation. This can be passed to
Probe::is_supported to check if this operation is
supported with the current kernel.
pub fn new(fd: impl UseFixed) -> Self
Sourcepub const fn offset(self, offset: u64) -> Self
pub const fn offset(self, offset: u64) -> Self
Offset within the file to start the sync range. Together with len, this
selects a byte range; when both are zero (the default), the entire file is synced.
Sourcepub const fn len(self, len: u32) -> Self
pub const fn len(self, len: u32) -> Self
Length of the range to sync, in bytes. When zero (the default) with
offset also zero, the entire file is synced.
Sourcepub const fn flags(self, flags: FsyncFlags) -> Self
pub const fn flags(self, flags: FsyncFlags) -> Self
The flags bit mask may contain either 0, for a normal file integrity sync,
or types::FsyncFlags::DATASYNC to provide data sync only semantics.
See the descriptions of O_SYNC and O_DSYNC in the open(2) manual page for more information.