Add preliminary fallocate system call implementation

to emulate posix_fallocate() function.

Differential Revision:	https://reviews.freebsd.org/D1523
Reviewed by:	emaste
This commit is contained in:
Dmitry Chagin 2015-05-24 17:33:21 +00:00
parent 16ac71bc4f
commit b6aeb7d5dd
7 changed files with 21 additions and 8 deletions

View File

@ -102,7 +102,6 @@ DUMMY(utimensat);
DUMMY(epoll_pwait);
DUMMY(signalfd);
DUMMY(timerfd);
DUMMY(fallocate);
DUMMY(timerfd_settime);
DUMMY(timerfd_gettime);
DUMMY(signalfd4);

View File

@ -474,7 +474,8 @@
282 AUE_NULL STD { int linux_signalfd(void); }
283 AUE_NULL STD { int linux_timerfd(void); }
284 AUE_NULL STD { int linux_eventfd(l_uint initval); }
285 AUE_NULL STD { int linux_fallocate(void); }
285 AUE_NULL STD { int linux_fallocate(l_int fd, l_int mode, \
l_loff_t offset, l_loff_t len); }
286 AUE_NULL STD { int linux_timerfd_settime(void); }
287 AUE_NULL STD { int linux_timerfd_gettime(void); }
288 AUE_ACCEPT STD { int linux_accept4(l_int s, l_uintptr_t addr, \

View File

@ -107,8 +107,6 @@ DUMMY(epoll_pwait);
DUMMY(utimensat);
DUMMY(signalfd);
DUMMY(timerfd_create);
/* linux 2.6.23: */
DUMMY(fallocate);
/* linux 2.6.25: */
DUMMY(timerfd_settime);
DUMMY(timerfd_gettime);

View File

@ -538,7 +538,8 @@
322 AUE_NULL STD { int linux_timerfd_create(void); }
323 AUE_NULL STD { int linux_eventfd(l_uint initval); }
; linux 2.6.23:
324 AUE_NULL STD { int linux_fallocate(void); }
324 AUE_NULL STD { int linux_fallocate(l_int fd, l_int mode, \
l_loff_t offset, l_loff_t len); }
; linux 2.6.25:
325 AUE_NULL STD { int linux_timerfd_settime(void); }
326 AUE_NULL STD { int linux_timerfd_gettime(void); }

View File

@ -1636,3 +1636,18 @@ linux_dup3(struct thread *td, struct linux_dup3_args *args)
newfd = args->newfd;
return (kern_fcntl(td, args->oldfd, cmd, newfd));
}
int
linux_fallocate(struct thread *td, struct linux_fallocate_args *args)
{
/*
* We emulate only posix_fallocate system call for which
* mode should be 0.
*/
if (args->mode != 0)
return (ENOSYS);
return (kern_posix_fallocate(td, args->fd, args->offset,
args->len));
}

View File

@ -103,8 +103,6 @@ DUMMY(epoll_pwait);
DUMMY(utimensat);
DUMMY(signalfd);
DUMMY(timerfd_create);
/* linux 2.6.23: */
DUMMY(fallocate);
/* linux 2.6.25: */
DUMMY(timerfd_settime);
DUMMY(timerfd_gettime);

View File

@ -546,7 +546,8 @@
322 AUE_NULL STD { int linux_timerfd_create(void); }
323 AUE_NULL STD { int linux_eventfd(l_uint initval); }
; linux 2.6.23:
324 AUE_NULL STD { int linux_fallocate(void); }
324 AUE_NULL STD { int linux_fallocate(l_int fd, l_int mode, \
l_loff_t offset, l_loff_t len); }
; linux 2.6.25:
325 AUE_NULL STD { int linux_timerfd_settime(void); }
326 AUE_NULL STD { int linux_timerfd_gettime(void); }