summaryrefslogtreecommitdiffstats
path: root/lib/libc
diff options
context:
space:
mode:
authorjhb <jhb@FreeBSD.org>2016-07-28 20:31:30 +0000
committerjhb <jhb@FreeBSD.org>2016-07-28 20:31:30 +0000
commit9b2ba0e5df123933210b18da17ec3ca2d5f5c41a (patch)
tree6047b7259e2553745848f83a2183fd0e536ddb1f /lib/libc
parente442a085d06ea3acc1ac496469c4e212774a2c5d (diff)
downloadFreeBSD-src-9b2ba0e5df123933210b18da17ec3ca2d5f5c41a.zip
FreeBSD-src-9b2ba0e5df123933210b18da17ec3ca2d5f5c41a.tar.gz
MFC 303164: Add more documentation regarding unsafe AIO requests.
The asynchronous I/O changes made previously result in different behavior out of the box. Previously all AIO requests failed with ENOSYS / SIGSYS unless aio.ko was explicitly loaded. Now, some AIO requests complete and others ("unsafe" requests) fail with EOPNOTSUPP. Reword the introductory paragraph in aio(4) to add a general description of AIO before describing the vfs.aio.enable_unsafe sysctl. Remove the ENOSYS error description from aio_fsync(2), aio_read(2), and aio_write(2) and replace it with a description of EOPNOTSUPP. Remove the ENOSYS error description from aio_mlock(2). Log a message to the system log the first time a process requests an "unsafe" AIO request that fails with EOPNOTSUPP. This is modeled on the log message used for processes using the legacy pty devices. Approved by: re (gjb)
Diffstat (limited to 'lib/libc')
-rw-r--r--lib/libc/sys/aio_fsync.210
-rw-r--r--lib/libc/sys/aio_mlock.26
-rw-r--r--lib/libc/sys/aio_read.210
-rw-r--r--lib/libc/sys/aio_write.210
4 files changed, 16 insertions, 20 deletions
diff --git a/lib/libc/sys/aio_fsync.2 b/lib/libc/sys/aio_fsync.2
index 7eb1a3b..52b47efb 100644
--- a/lib/libc/sys/aio_fsync.2
+++ b/lib/libc/sys/aio_fsync.2
@@ -24,7 +24,7 @@
.\"
.\" $FreeBSD$
.\"
-.Dd July 15, 2016
+.Dd July 21, 2016
.Dt AIO_FSYNC 2
.Os
.Sh NAME
@@ -107,10 +107,10 @@ The request was not queued because of system resource limitations.
The asynchronous notification method in
.Fa iocb->aio_sigevent.sigev_notify
is invalid or not supported.
-.It Bq Er ENOSYS
-The
-.Fn aio_fsync
-system call is not supported.
+.It Bq Er EOPNOTSUPP
+Asynchronous file synchronization operations on the file descriptor
+.Fa iocb->aio_fildes
+are unsafe and unsafe asynchronous I/O operations are disabled.
.It Bq Er EINVAL
A value of the
.Fa op
diff --git a/lib/libc/sys/aio_mlock.2 b/lib/libc/sys/aio_mlock.2
index c798a37..cc588b5 100644
--- a/lib/libc/sys/aio_mlock.2
+++ b/lib/libc/sys/aio_mlock.2
@@ -24,7 +24,7 @@
.\"
.\" $FreeBSD$
.\"
-.Dd July 15, 2016
+.Dd July 21, 2016
.Dt AIO_MLOCK 2
.Os
.Sh NAME
@@ -102,10 +102,6 @@ The request was not queued because of system resource limitations.
The asynchronous notification method in
.Fa iocb->aio_sigevent.sigev_notify
is invalid or not supported.
-.It Bq Er ENOSYS
-The
-.Fn aio_mlock
-system call is not supported.
.El
.Pp
If the request is successfully enqueued, but subsequently cancelled
diff --git a/lib/libc/sys/aio_read.2 b/lib/libc/sys/aio_read.2
index cc0133b..2f16809 100644
--- a/lib/libc/sys/aio_read.2
+++ b/lib/libc/sys/aio_read.2
@@ -24,7 +24,7 @@
.\"
.\" $FreeBSD$
.\"
-.Dd July 15, 2016
+.Dd July 21, 2016
.Dt AIO_READ 2
.Os
.Sh NAME
@@ -125,10 +125,10 @@ The request was not queued because of system resource limitations.
The asynchronous notification method in
.Fa iocb->aio_sigevent.sigev_notify
is invalid or not supported.
-.It Bq Er ENOSYS
-The
-.Fn aio_read
-system call is not supported.
+.It Bq Er EOPNOTSUPP
+Asynchronous read operations on the file descriptor
+.Fa iocb->aio_fildes
+are unsafe and unsafe asynchronous I/O operations are disabled.
.El
.Pp
The following conditions may be synchronously detected when the
diff --git a/lib/libc/sys/aio_write.2 b/lib/libc/sys/aio_write.2
index 6cbc2ab..414f98f 100644
--- a/lib/libc/sys/aio_write.2
+++ b/lib/libc/sys/aio_write.2
@@ -24,7 +24,7 @@
.\"
.\" $FreeBSD$
.\"
-.Dd July 15, 2016
+.Dd July 21, 2016
.Dt AIO_WRITE 2
.Os
.Sh NAME
@@ -129,10 +129,10 @@ The request was not queued because of system resource limitations.
The asynchronous notification method in
.Fa iocb->aio_sigevent.sigev_notify
is invalid or not supported.
-.It Bq Er ENOSYS
-The
-.Fn aio_write
-system call is not supported.
+.It Bq Er EOPNOTSUPP
+Asynchronous write operations on the file descriptor
+.Fa iocb->aio_fildes
+are unsafe and unsafe asynchronous I/O operations are disabled.
.El
.Pp
The following conditions may be synchronously detected when the
OpenPOWER on IntegriCloud