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));
}