Add syncfs syscall.
authorAndreas Schwab <schwab@redhat.com>
Fri, 1 Apr 2011 17:08:28 +0000 (13:08 -0400)
committerUlrich Drepper <drepper@gmail.com>
Fri, 1 Apr 2011 17:08:28 +0000 (13:08 -0400)
ChangeLog
misc/Makefile
misc/Versions
misc/syncfs.c [new file with mode: 0644]
posix/unistd.h
sysdeps/unix/syscalls.list

index e26298a..c4cf882 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -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
index ee69361..52b13da 100644 (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 \
index 3ffe3d1..3a31c7f 100644 (file)
@@ -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 (file)
index 0000000..bd7328c
--- /dev/null
@@ -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>
index e736731..08a3d47 100644 (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.  */
index 04ed63c..ad49170 100644 (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