summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorian <ian@FreeBSD.org>2013-02-13 15:09:16 +0000
committerian <ian@FreeBSD.org>2013-02-13 15:09:16 +0000
commitcfdf5de93930131e16cdced2079ea1053227da4e (patch)
treebf0113357e441ed9f83ec9dd0e2f3647620223c6
parenta40dc60f62a62caf12c402fff2a0756a7550a72e (diff)
downloadFreeBSD-src-cfdf5de93930131e16cdced2079ea1053227da4e.zip
FreeBSD-src-cfdf5de93930131e16cdced2079ea1053227da4e.tar.gz
Make the F_READAHEAD option to fcntl(2) work as documented: a value of zero
now disables read-ahead. It used to effectively restore the system default readahead hueristic if it had been changed; a negative value now restores the default. Reviewed by: kib
-rw-r--r--lib/libc/sys/fcntl.24
-rw-r--r--sys/kern/kern_descrip.c2
2 files changed, 3 insertions, 3 deletions
diff --git a/lib/libc/sys/fcntl.2 b/lib/libc/sys/fcntl.2
index c174563..8e0ca73 100644
--- a/lib/libc/sys/fcntl.2
+++ b/lib/libc/sys/fcntl.2
@@ -28,7 +28,7 @@
.\" @(#)fcntl.2 8.2 (Berkeley) 1/12/94
.\" $FreeBSD$
.\"
-.Dd July 27, 2012
+.Dd February 8, 2013
.Dt FCNTL 2
.Os
.Sh NAME
@@ -171,7 +171,7 @@ argument,
which is rounded up to the nearest block size.
A zero value in
.Fa arg
-turns off read ahead.
+turns off read ahead, a negative value restores the system default.
.It Dv F_RDAHEAD
Equivalent to Darwin counterpart which sets read ahead amount of 128KB
when the third argument,
diff --git a/sys/kern/kern_descrip.c b/sys/kern/kern_descrip.c
index 87d75ea..fc74bdb 100644
--- a/sys/kern/kern_descrip.c
+++ b/sys/kern/kern_descrip.c
@@ -776,7 +776,7 @@ kern_fcntl(struct thread *td, int fd, int cmd, intptr_t arg)
}
fhold(fp);
FILEDESC_SUNLOCK(fdp);
- if (arg != 0) {
+ if (arg >= 0) {
vp = fp->f_vnode;
error = vn_lock(vp, LK_SHARED);
if (error != 0) {
OpenPOWER on IntegriCloud