svn commit: r246763 - in head: lib/libc/sys sys/kern

Ian Lepore ian at FreeBSD.org
Wed Feb 13 15:09:17 UTC 2013


Author: ian
Date: Wed Feb 13 15:09:16 2013
New Revision: 246763
URL: http://svnweb.freebsd.org/changeset/base/246763

Log:
  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

Modified:
  head/lib/libc/sys/fcntl.2
  head/sys/kern/kern_descrip.c

Modified: head/lib/libc/sys/fcntl.2
==============================================================================
--- head/lib/libc/sys/fcntl.2	Wed Feb 13 14:57:54 2013	(r246762)
+++ head/lib/libc/sys/fcntl.2	Wed Feb 13 15:09:16 2013	(r246763)
@@ -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,

Modified: head/sys/kern/kern_descrip.c
==============================================================================
--- head/sys/kern/kern_descrip.c	Wed Feb 13 14:57:54 2013	(r246762)
+++ head/sys/kern/kern_descrip.c	Wed Feb 13 15:09:16 2013	(r246763)
@@ -776,7 +776,7 @@ kern_fcntl(struct thread *td, int fd, in
 		}
 		fhold(fp);
 		FILEDESC_SUNLOCK(fdp);
-		if (arg != 0) {
+		if (arg >= 0) {
 			vp = fp->f_vnode;
 			error = vn_lock(vp, LK_SHARED);
 			if (error != 0) {


More information about the svn-src-head mailing list