write.2: Partial direct I/O writes

Direct writes can perform partial writes because large writes
can be broken into smaller chunks by the block layer. Part of
the I/O submitted can fail and the failure is returned to write
as an error in the return value. However, part of the write can
be successful which means that data at the offset is inconsistent.

Signed-off-by: Goldwyn Rodrigues <rgoldwyn@suse.com>
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
This commit is contained in:
Goldwyn Rodrigues 2018-05-21 06:32:31 -05:00 committed by Michael Kerrisk
parent 0201f48246
commit ebf120124b
1 changed files with 8 additions and 0 deletions

View File

@ -274,6 +274,14 @@ On Linux,
returning the number of bytes actually transferred.
.\" commit e28cc71572da38a5a12c1cfe4d7032017adccf69
(This is true on both 32-bit and 64-bit systems.)
.PP
An error return value while performing
.BR write()
using direct I/O does not mean the
entire write has failed. Partial data may be written
and the data at the file offset on which the
.BR write()
was attempted should be considered inconsistent.
.SH BUGS
According to POSIX.1-2008/SUSv4 Section XSI 2.9.7
("Thread Interactions with Regular File Operations"):