diff --git a/ChangeLog b/ChangeLog index e26298a167..c4cf88279d 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +2011-03-30 Andreas Schwab + + * 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 * sysdeps/unix/sysv/linux/Versions: Rename open_by_handle to diff --git a/misc/Makefile b/misc/Makefile index ee6936180b..52b13daa72 100644 --- a/misc/Makefile +++ b/misc/Makefile @@ -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 \ diff --git a/misc/Versions b/misc/Versions index 3ffe3d138d..3a31c7fe62 100644 --- a/misc/Versions +++ b/misc/Versions @@ -143,4 +143,7 @@ libc { GLIBC_2.11 { mkstemps; mkstemps64; mkostemps; mkostemps64; } + GLIBC_2.14 { + syncfs; + } } diff --git a/misc/syncfs.c b/misc/syncfs.c new file mode 100644 index 0000000000..bd7328cf84 --- /dev/null +++ b/misc/syncfs.c @@ -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 +#include + +/* 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 diff --git a/posix/unistd.h b/posix/unistd.h index e73673121e..08a3d47463 100644 --- a/posix/unistd.h +++ b/posix/unistd.h @@ -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. */ diff --git a/sysdeps/unix/syscalls.list b/sysdeps/unix/syscalls.list index 04ed63c4d7..ad49170780 100644 --- a/sysdeps/unix/syscalls.list +++ b/sysdeps/unix/syscalls.list @@ -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