Add syncfs syscall.

This commit is contained in:
Andreas Schwab 2011-04-01 13:08:28 -04:00 committed by Ulrich Drepper
parent 00e5419f8e
commit 81a5726bd2
6 changed files with 53 additions and 2 deletions

View File

@ -1,3 +1,10 @@
2011-03-30 Andreas Schwab <schwab@redhat.com>
* misc/syncfs.c: New file.
* misc/Makefile (routines): Add syncfs.
* posix/unistd.h: Declare syncfs.
* sysdeps/unix/syscalls.list: Add syncfs.
2011-04-01 Andreas Schwab <schwab@redhat.com>
* sysdeps/unix/sysv/linux/Versions: Rename open_by_handle to

View File

@ -1,4 +1,4 @@
# Copyright (C) 1991-2006, 2007, 2009 Free Software Foundation, Inc.
# Copyright (C) 1991-2006, 2007, 2009, 2011 Free Software Foundation, Inc.
# This file is part of the GNU C Library.
# The GNU C Library is free software; you can redistribute it and/or
@ -41,7 +41,7 @@ routines := brk sbrk sstk ioctl \
getdtsz \
gethostname sethostname getdomain setdomain \
select pselect \
acct chroot fsync sync fdatasync reboot \
acct chroot fsync sync fdatasync syncfs reboot \
gethostid sethostid \
revoke vhangup \
swapon swapoff mktemp mkstemp mkstemp64 mkdtemp \

View File

@ -143,4 +143,7 @@ libc {
GLIBC_2.11 {
mkstemps; mkstemps64; mkostemps; mkostemps64;
}
GLIBC_2.14 {
syncfs;
}
}

33
misc/syncfs.c Normal file
View File

@ -0,0 +1,33 @@
/* Copyright (C) 2011 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, write to the Free
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
02111-1307 USA. */
#include <errno.h>
#include <unistd.h>
/* Make all changes done to all files on the file system associated
with FD actually appear on disk. */
int
syncfs (int fd)
{
__set_errno (ENOSYS);
return -1;
}
stub_warning (syncfs)
#include <stub-tag.h>

View File

@ -977,6 +977,13 @@ extern int fsync (int __fd);
#endif /* Use BSD || X/Open || Unix98. */
#ifdef __USE_GNU
/* Make all changes done to all files on the file system associated
with FD actually appear on disk. */
extern int syncfs (int __fd) __THROW;
#endif
#if defined __USE_BSD || defined __USE_XOPEN_EXTENDED
/* Return identifier for the current host. */

View File

@ -55,6 +55,7 @@ swapoff - swapoff i:s swapoff
swapon - swapon i:s swapon
symlink - symlink i:ss __symlink symlink
sync - sync i: sync
syncfs - syncfs i:i syncfs
sys_fstat fxstat fstat i:ip __syscall_fstat
sys_mknod xmknod mknod i:sii __syscall_mknod
sys_stat xstat stat i:sp __syscall_stat