This is the mail archive of the glibc-cvs@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

GNU C Library master sources branch, master, updated. glibc-2.13-60-g3167dad


This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU C Library master sources".

The branch, master has been updated
       via  3167dad07cf528e7464320c160a61eba0df747c8 (commit)
      from  748876bf1c45cd10f998f8578c434156eae53b7e (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=3167dad07cf528e7464320c160a61eba0df747c8

commit 3167dad07cf528e7464320c160a61eba0df747c8
Author: Ulrich Drepper <drepper@gmail.com>
Date:   Fri Apr 1 11:33:14 2011 -0400

    Also make x86 sync_file_range a cancellation point.

diff --git a/ChangeLog b/ChangeLog
index 806732d..aa6277a 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -9,7 +9,14 @@
 	* sysdeps/unix/sysv/linux/wordsize-64/fallocate.c: Likewise.
 	* sysdeps/unix/sysv/linux/sync_file_range.c: Likewise.
 	* sysdeps/unix/sysv/linux/wordsize-64/syscalls.list: Mark
-	sync_file_range as cancellation point.
+	sync_file_range as cancellation point
+	* sysdeps/unix/sysv/linux/i386/sync_file_range.c: New file.  This is
+	now a wrapper around __call_sync_file_range with cancellation handling.
+	* sysdeps/unix/sysv/linux/i386/sync_file_range.S: Renamed to ...
+	* sysdeps/unix/sysv/linux/i386/call_sync_file_range.S: ...this.  Change
+	function name to __call_sync_file_range.
+	* sysdeps/unix/sysv/linux/i386/Makefile [subdir=io] (sysdep_routines):
+	Add call_sync_file_range.
 
 2011-04-01  Andreas Schwab  <schwab@redhat.com>
 
diff --git a/sysdeps/unix/sysv/linux/i386/Makefile b/sysdeps/unix/sysv/linux/i386/Makefile
index f52ee89..fc5a524 100644
--- a/sysdeps/unix/sysv/linux/i386/Makefile
+++ b/sysdeps/unix/sysv/linux/i386/Makefile
@@ -6,7 +6,10 @@ endif
 ifeq ($(subdir),elf)
 sysdep-others += lddlibc4
 install-bin += lddlibc4
+endif
 
+ifeq ($(subdir),io)
+sysdep_routines += call_sync_file_range
 endif
 
 ifeq ($(subdir),resource)
diff --git a/sysdeps/unix/sysv/linux/i386/sync_file_range.S b/sysdeps/unix/sysv/linux/i386/call_sync_file_range.S
similarity index 92%
rename from sysdeps/unix/sysv/linux/i386/sync_file_range.S
rename to sysdeps/unix/sysv/linux/i386/call_sync_file_range.S
index 8544703..fb0ab49 100644
--- a/sysdeps/unix/sysv/linux/i386/sync_file_range.S
+++ b/sysdeps/unix/sysv/linux/i386/call_sync_file_range.S
@@ -1,5 +1,5 @@
 /* Selective file content synch'ing.
-   Copyright (C) 2006, 2007 Free Software Foundation, Inc.
+   Copyright (C) 2006, 2007, 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
@@ -23,7 +23,7 @@
 
 
 	.text
-ENTRY (sync_file_range)
+ENTRY (__call_sync_file_range)
 #ifdef __NR_sync_file_range
 	pushl	%ebx
 	cfi_adjust_cfa_offset (4)
@@ -69,4 +69,4 @@ ENTRY (sync_file_range)
 #endif
 L(pseudo_end):
 	ret
-PSEUDO_END (sync_file_range)
+PSEUDO_END (__call_sync_file_range)
diff --git a/sysdeps/unix/sysv/linux/i386/sync_file_range.c b/sysdeps/unix/sysv/linux/i386/sync_file_range.c
new file mode 100644
index 0000000..c10e996
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/i386/sync_file_range.c
@@ -0,0 +1,44 @@
+/* Selective file content synch'ing.
+   Copyright (C) 2006, 2007, 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 <fcntl.h>
+#include <sysdep-cancel.h>
+
+
+extern int __call_sync_file_range (int fd, off64_t offset, off64_t nbytes,
+				   unsigned int flags)
+     attribute_hidden;
+
+
+int
+sync_file_range (int fd, __off64_t from, __off64_t to, unsigned int flags)
+{
+  if (SINGLE_THREAD_P)
+    return __call_sync_file_range (fd, from, to, flags);
+
+  int result;
+  int oldtype = LIBC_CANCEL_ASYNC ();
+
+  result = __call_sync_file_range (fd, from, to, flags);
+
+  LIBC_CANCEL_RESET (oldtype);
+
+  return result;
+}

-----------------------------------------------------------------------

Summary of changes:
 ChangeLog                                          |    9 +++++++-
 sysdeps/unix/sysv/linux/i386/Makefile              |    3 ++
 .../{sync_file_range.S => call_sync_file_range.S}  |    6 ++--
 .../fallocate.c => i386/sync_file_range.c}         |   21 +++++++++----------
 4 files changed, 24 insertions(+), 15 deletions(-)
 rename sysdeps/unix/sysv/linux/i386/{sync_file_range.S => call_sync_file_range.S} (92%)
 copy sysdeps/unix/sysv/linux/{wordsize-64/fallocate.c => i386/sync_file_range.c} (70%)


hooks/post-receive
-- 
GNU C Library master sources


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]