svn commit: r352696 - head/lib/libc/sys
Kyle Evans
kevans at FreeBSD.org
Wed Sep 25 17:33:13 UTC 2019
Author: kevans
Date: Wed Sep 25 17:33:12 2019
New Revision: 352696
URL: https://svnweb.freebsd.org/changeset/base/352696
Log:
Update fcntl(2) after r352695
Modified:
head/lib/libc/sys/fcntl.2
Modified: head/lib/libc/sys/fcntl.2
==============================================================================
--- head/lib/libc/sys/fcntl.2 Wed Sep 25 17:32:43 2019 (r352695)
+++ head/lib/libc/sys/fcntl.2 Wed Sep 25 17:33:12 2019 (r352696)
@@ -28,7 +28,7 @@
.\" @(#)fcntl.2 8.2 (Berkeley) 1/12/94
.\" $FreeBSD$
.\"
-.Dd Nov 15, 2018
+.Dd September 4, 2019
.Dt FCNTL 2
.Os
.Sh NAME
@@ -180,6 +180,11 @@ is non-zero.
A zero value in
.Fa arg
turns off read ahead.
+.It Dv F_ADD_SEALS
+Add seals to the file as described below, if the underlying filesystem supports
+seals.
+.It Dv F_GET_SEALS
+Get seals associated with the file, if the underlying filesystem supports seals.
.El
.Pp
The flags for the
@@ -217,6 +222,37 @@ when I/O is possible, e.g.,
upon availability of data to be read.
.El
.Pp
+The seals that may be applied with
+.Dv F_ADD_SEALS
+are as follows:
+.Bl -tag -width F_SEAL_SHRINK
+.It Dv F_SEAL_SEAL
+Prevent any further seals from being applied to the file.
+.It Dv F_SEAL_SHRINK
+Prevent the file from being shrunk with
+.Xr ftruncate 2 .
+.It Dv F_SEAL_GROW
+Prevent the file from being enlarged with
+.Xr ftruncate 2 .
+.It Dv F_SEAL_WRITE
+Prevent any further
+.Xr write 2
+calls to the file.
+Any writes in progress will finish before
+.Fn fcntl
+returns.
+If any writeable mappings exist, F_ADD_SEALS will fail and return
+.Dv EBUSY .
+.El
+.Pp
+Seals are on a per-inode basis and require support by the underlying filesystem.
+If the underlying filesystem does not support seals,
+.Dv F_ADD_SEALS
+and
+.Dv F_GET_SEALS
+will fail and return
+.Dv EINVAL .
+.Pp
Several commands are available for doing advisory file locking;
they all operate on the following structure:
.Bd -literal
@@ -528,6 +564,14 @@ is an exclusive lock
and
.Fa fd
is not a valid file descriptor open for writing.
+.It Bq Er EBUSY
+The argument
+.Fa cmd
+is
+.Dv F_ADD_SEALS ,
+attempting to set
+.Dv F_SEAL_WRITE ,
+and writeable mappings of the file exist.
.It Bq Er EDEADLK
The argument
.Fa cmd
@@ -565,6 +609,14 @@ points is not valid.
.Pp
The argument
.Fa cmd
+is
+.Dv F_ADD_SEALS
+or
+.Dv F_GET_SEALS ,
+and the underlying filesystem does not support sealing.
+.Pp
+The argument
+.Fa cmd
is invalid.
.It Bq Er EMFILE
The argument
@@ -624,6 +676,15 @@ is
and
the process ID or process group given as an argument is in a
different session than the caller.
+.Pp
+The
+.Fa cmd
+argument
+is
+.Dv F_ADD_SEALS
+and the
+.Dv F_SEAL_SEAL
+seal has already been set.
.It Bq Er ESRCH
The
.Fa cmd
More information about the svn-src-all
mailing list