summaryrefslogtreecommitdiffstats
path: root/sys/kern
diff options
context:
space:
mode:
authorpjd <pjd@FreeBSD.org>2007-04-05 21:10:53 +0000
committerpjd <pjd@FreeBSD.org>2007-04-05 21:10:53 +0000
commit4718e01f98485788a9f7b2defc77a984780db526 (patch)
treec358a7e9b774044c343bcf2b36dc569901065d03 /sys/kern
parent7e73da14eb8410d6878c1e60cdb665d8a8c74c47 (diff)
downloadFreeBSD-src-4718e01f98485788a9f7b2defc77a984780db526.zip
FreeBSD-src-4718e01f98485788a9f7b2defc77a984780db526.tar.gz
Implement SEEK_DATA and SEEK_HOLE extensions to lseek(2) as found in
OpenSolaris. For more information please refer to: http://blogs.sun.com/bonwick/entry/seek_hole_and_seek_data
Diffstat (limited to 'sys/kern')
-rw-r--r--sys/kern/vfs_syscalls.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/sys/kern/vfs_syscalls.c b/sys/kern/vfs_syscalls.c
index c7b278e..72a3f4e 100644
--- a/sys/kern/vfs_syscalls.c
+++ b/sys/kern/vfs_syscalls.c
@@ -54,6 +54,7 @@ __FBSDID("$FreeBSD$");
#include <sys/kernel.h>
#include <sys/fcntl.h>
#include <sys/file.h>
+#include <sys/filio.h>
#include <sys/limits.h>
#include <sys/linker.h>
#include <sys/stat.h>
@@ -1740,6 +1741,12 @@ lseek(td, uap)
break;
case L_SET:
break;
+ case SEEK_DATA:
+ error = fo_ioctl(fp, FIOSEEKDATA, &offset, cred, td);
+ break;
+ case SEEK_HOLE:
+ error = fo_ioctl(fp, FIOSEEKHOLE, &offset, cred, td);
+ break;
default:
error = EINVAL;
}
OpenPOWER on IntegriCloud