Synchronous I/O
By default, writes to files in JFS or JFS2 file systems are asynchronous.
However, JFS and JFS2 file systems support the following types
of synchronous I/O:
- Specified by the O_DSYNC open flag. When a file is opened using the O_DSYNC open mode, the write () system call will not return until the file data and all file system meta-data required to retrieve the file data are both written to their permanent storage locations.
- Specified by the O_SYNC open flag. In addition to items specified
by O_DSYNC, O_SYNC specifies that the write () system call will not
return until all file attributes relative to the I/O are written to
their permanent storage locations, even if the attributes are not
required to retrieve the file data.
Before the O_DSYNC open mode existed, AIX applied O_DSYNC semantics to O_SYNC. For binary compatibility reasons, this behavior still exists. If true O_SYNC behavior is required, then both O_DSYNC and O_SYNC open flags must be specified. Exporting the XPG_SUS_ENV=ON environment variable also enables true O_SYNC behavior.
- Specified by the O_RSYNC open flag, and it simply applies the behaviors associated with O_SYNC or _DSYNC to reads. For files in JFS and JFS2 file systems, only the combination of O_RSYNC | O_SYNC has meaning, indicating that the read system call will not return until the file's access time is written to its permanent storage location.