|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [UNIKRAFT PATCH 03/10] lib/vfscore: Register `fallocate` to syscall_shim
Registers `fallocate` system call to syscall_shim library.
Signed-off-by: Constantin Raducanu <raducanu.costi@xxxxxxxxx>
---
lib/vfscore/Makefile.uk | 1 +
lib/vfscore/exportsyms.uk | 2 ++
lib/vfscore/main.c | 11 +++++------
3 files changed, 8 insertions(+), 6 deletions(-)
diff --git a/lib/vfscore/Makefile.uk b/lib/vfscore/Makefile.uk
index da45140..1cae643 100644
--- a/lib/vfscore/Makefile.uk
+++ b/lib/vfscore/Makefile.uk
@@ -36,3 +36,4 @@ UK_PROVIDED_SYSCALLS-$(CONFIG_LIBVFSCORE) += ftruncate-2
UK_PROVIDED_SYSCALLS-$(CONFIG_LIBVFSCORE) += truncate-2
UK_PROVIDED_SYSCALLS-$(CONFIG_LIBVFSCORE) += access-2
UK_PROVIDED_SYSCALLS-$(CONFIG_LIBVFSCORE) += faccessat-4
+UK_PROVIDED_SYSCALLS-$(CONFIG_LIBVFSCORE) += fallocate-4
diff --git a/lib/vfscore/exportsyms.uk b/lib/vfscore/exportsyms.uk
index 41c8f3c..b897aa7 100644
--- a/lib/vfscore/exportsyms.uk
+++ b/lib/vfscore/exportsyms.uk
@@ -98,6 +98,8 @@ readlink
uk_syscall_e_readlink
uk_syscall_r_readlink
fallocate
+uk_syscall_e_fallocate
+uk_syscall_r_fallocate
lseek
uk_syscall_e_lseek
uk_syscall_r_lseek
diff --git a/lib/vfscore/main.c b/lib/vfscore/main.c
index 588c4eb..eb007b9 100644
--- a/lib/vfscore/main.c
+++ b/lib/vfscore/main.c
@@ -1785,7 +1785,7 @@ UK_TRACEPOINT(trace_vfs_fallocate, "%d %d 0x%x 0x%x",
int, int, loff_t, loff_t);
UK_TRACEPOINT(trace_vfs_fallocate_ret, "");
UK_TRACEPOINT(trace_vfs_fallocate_err, "%d", int);
-int fallocate(int fd, int mode, loff_t offset, loff_t len)
+UK_SYSCALL_R_DEFINE(int, fallocate, int, fd, int, mode, loff_t, offset,
loff_t, len)
{
struct vfscore_file *fp;
int error;
@@ -1793,20 +1793,19 @@ int fallocate(int fd, int mode, loff_t offset, loff_t
len)
trace_vfs_fallocate(fd, mode, offset, len);
error = fget(fd, &fp);
if (error)
- goto out_errno;
+ goto out_error;
error = sys_fallocate(fp, mode, offset, len);
fdrop(fp);
if (error)
- goto out_errno;
+ goto out_error;
trace_vfs_fallocate_ret();
return 0;
- out_errno:
+ out_error:
trace_vfs_fallocate_err(error);
- errno = error;
- return -1;
+ return -error;
}
LFS64(fallocate);
--
2.17.1
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |