fcntl.2, read.2, write.2: Document "Lost locks" as cause for EIO.

If an advisory lock is lost, then read/write requests on any
affected file descriptor can return EIO - for NFSv4 at least.

Signed-off-by: NeilBrown <neilb@suse.com>
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
This commit is contained in:
NeilBrown 2017-12-13 15:19:14 +11:00 committed by Michael Kerrisk
parent db4e8e25b4
commit 11cf58cda7
3 changed files with 42 additions and 0 deletions

View File

@ -669,6 +669,30 @@ and
Mandatory locking is not specified by POSIX.
Some other systems also support mandatory locking,
although the details of how to enable it vary across systems.
.SS Lost locks
When an advisory lock is obtained on a networked filesystem such as
NFS it is possible that the lock might get lost.
This may happen due to administrative action on the server, or due to a
network partition which lasts long enough for the server to assume
that the client is no longer functioning.
.PP
When the filesystem determines that a lock has been lost, future
.BR read (2)
or
.BR write (2)
requests may fail with the error
.BR EIO .
This error will persist until the lock is removed or the file
descriptor is closed.
Since Linux 3.12,
.\" commit ef1820f9be27b6ad158f433ab38002ab8131db4d
this happens at least for NFSv4 including all minor versions.
.PP
Some versions of Unix send a signal
.RB ( SIGLOST )
in this circumstance.
Linux does not define this signal, and does not provide any
asynchronous notification of lost locks.
.SS Managing signals
.BR F_GETOWN ,
.BR F_SETOWN ,

View File

@ -163,6 +163,15 @@ or its process group
is orphaned.
It may also occur when there is a low-level I/O error
while reading from a disk or tape.
A further possible cause of
.B EIO
on networked filesystems is when an advisory lock had been taken
out on the file descriptor and this lock has been lost.
See the
.I "Lost locks"
section of
.BR fcntl (2)
for further details.
.TP
.B EISDIR
.I fd

View File

@ -197,6 +197,15 @@ be reported by a subsequent
(whether or not they were also reported by
.BR write (2)).
.\" commit 088737f44bbf6378745f5b57b035e57ee3dc4750
An alternate cause of
.B EIO
on networked filesystems is when an advisory lock had been taken out
on the file descriptor and this lock has been lost.
See the
.I "Lost locks"
section of
.BR fcntl (2)
for further details.
.TP
.B ENOSPC
The device containing the file referred to by