device-mapper-multipath/0020-RHBZ-907360-static-pthread-init.patch
Benjamin Marzinski 0a249b06ae device-mapper-multipath-0.4.9-46
Add 0020-RHBZ-907360-static-pthread-init.patch
  * statically initialize the uevent pthread structures
2013-03-28 07:24:22 -05:00

40 lines
1.2 KiB
Diff

---
libmultipath/uevent.c | 10 ++++------
1 file changed, 4 insertions(+), 6 deletions(-)
Index: multipath-tools-130222/libmultipath/uevent.c
===================================================================
--- multipath-tools-130222.orig/libmultipath/uevent.c
+++ multipath-tools-130222/libmultipath/uevent.c
@@ -53,8 +53,10 @@ typedef int (uev_trigger)(struct uevent
pthread_t uevq_thr;
LIST_HEAD(uevq);
-pthread_mutex_t uevq_lock, *uevq_lockp = &uevq_lock;
-pthread_cond_t uev_cond, *uev_condp = &uev_cond;
+pthread_mutex_t uevq_lock = PTHREAD_MUTEX_INITIALIZER;
+pthread_mutex_t *uevq_lockp = &uevq_lock;
+pthread_cond_t uev_cond = PTHREAD_COND_INITIALIZER;
+pthread_cond_t *uev_condp = &uev_cond;
uev_trigger *my_uev_trigger;
void * my_trigger_data;
int servicing_uev;
@@ -411,8 +413,6 @@ int uevent_listen(void)
*/
INIT_LIST_HEAD(&uevq);
- pthread_mutex_init(uevq_lockp, NULL);
- pthread_cond_init(uev_condp, NULL);
pthread_cleanup_push(uevq_stop, NULL);
monitor = udev_monitor_new_from_netlink(conf->udev, "udev");
@@ -525,8 +525,6 @@ out:
if (need_failback)
err = failback_listen();
pthread_cleanup_pop(1);
- pthread_mutex_destroy(uevq_lockp);
- pthread_cond_destroy(uev_condp);
return err;
}