File fork-io-user-lock.patch of Package glibc.4899

2014-12-10  Andreas Schwab  <schwab@suse.de>

	[BZ #12847]
	* sysdeps/nptl/fork.c (fresetlockfiles): Skip files with
	user-controlled locks.

Index: glibc-2.19/nptl/sysdeps/unix/sysv/linux/fork.c
===================================================================
--- glibc-2.19.orig/nptl/sysdeps/unix/sysv/linux/fork.c
+++ glibc-2.19/nptl/sysdeps/unix/sysv/linux/fork.c
@@ -45,7 +45,8 @@ fresetlockfiles (void)
   _IO_ITER i;
 
   for (i = _IO_iter_begin(); i != _IO_iter_end(); i = _IO_iter_next(i))
-    _IO_lock_init (*((_IO_lock_t *) _IO_iter_file(i)->_lock));
+    if ((_IO_iter_file (i)->_flags & _IO_USER_LOCK) == 0)
+      _IO_lock_init (*((_IO_lock_t *) _IO_iter_file(i)->_lock));
 }
 
 
openSUSE Build Service is sponsored by