FAQ Search Today's Posts Mark Forums Read
» Video Reviews

» Linux Archive

Linux-archive is a website aiming to archive linux email lists and to make them easily accessible for linux users/developers.


» Sponsor

» Partners

» Sponsor

Go Back   Linux Archive > Redhat > Device-mapper Development

 
 
LinkBack Thread Tools
 
Old 04-19-2012, 09:08 AM
Hannes Reinecke
 
Default Add global udev reference pointer to config

Instead of using a local reference to udev we should be moving it
to the global config structure.

Signed-off-by: Hannes Reinecke <hare@suse.de>
---
libmultipath/config.c | 5 +++++
libmultipath/config.h | 1 +
libmultipath/uevent.c | 12 +++---------
3 files changed, 9 insertions(+), 9 deletions(-)

diff --git a/libmultipath/config.c b/libmultipath/config.c
index f99465a..75eab38 100644
--- a/libmultipath/config.c
+++ b/libmultipath/config.c
@@ -5,6 +5,7 @@
*/
#include <stdio.h>
#include <string.h>
+#include <libudev.h>

#include "checkers.h"
#include "memory.h"
@@ -427,6 +428,9 @@ free_config (struct config * conf)
if (conf->dev)
FREE(conf->dev);

+ if (conf->udev)
+ udev_unref(conf->udev);
+
if (conf->udev_dir)
FREE(conf->udev_dir);

@@ -491,6 +495,7 @@ load_config (char * file)
if (!conf->verbosity)
conf->verbosity = DEFAULT_VERBOSITY;

+ conf->udev = udev_new();
conf->dmrq = dm_drv_get_rq();
conf->dev_type = DEV_NONE;
conf->minio = DEFAULT_MINIO;
diff --git a/libmultipath/config.h b/libmultipath/config.h
index 6fcd45e..147eedf 100644
--- a/libmultipath/config.h
+++ b/libmultipath/config.h
@@ -109,6 +109,7 @@ struct config {
int reassign_maps;

char * dev;
+ struct udev * udev;
char * sysfs_dir;
char * udev_dir;
char * multipath_dir;
diff --git a/libmultipath/uevent.c b/libmultipath/uevent.c
index 3e4c4ec..4e31d4f 100644
--- a/libmultipath/uevent.c
+++ b/libmultipath/uevent.c
@@ -46,6 +46,8 @@
#include "debug.h"
#include "list.h"
#include "uevent.h"
+#include "vector.h"
+#include "config.h"

typedef int (uev_trigger)(struct uevent *, void * trigger_data);

@@ -375,7 +377,6 @@ exit:
int uevent_listen(void)
{
int err;
- struct udev *udev = NULL;
struct udev_monitor *monitor = NULL;
int fd, socket_flags;
int need_failback = 1;
@@ -391,12 +392,7 @@ int uevent_listen(void)
pthread_cond_init(uev_condp, NULL);
pthread_cleanup_push(uevq_stop, NULL);

- udev = udev_new();
- if (!udev) {
- condlog(2, "failed to create udev context");
- goto out;
- }
- monitor = udev_monitor_new_from_netlink(udev, "udev");
+ monitor = udev_monitor_new_from_netlink(conf->udev, "udev");
if (!monitor) {
condlog(2, "failed to create udev monitor");
goto out;
@@ -500,8 +496,6 @@ int uevent_listen(void)
out:
if (monitor)
udev_monitor_unref(monitor);
- if (udev)
- udev_unref(udev);
if (need_failback)
err = failback_listen();
pthread_cleanup_pop(1);
--
1.7.3.4

--
dm-devel mailing list
dm-devel@redhat.com
https://www.redhat.com/mailman/listinfo/dm-devel
 
Old 04-30-2012, 10:25 AM
Hannes Reinecke
 
Default Add global udev reference pointer to config

Instead of using a local reference to udev we should be moving it
to the global config structure.

Signed-off-by: Hannes Reinecke <hare@suse.de>
---
libmultipath/config.c | 5 +++++
libmultipath/config.h | 1 +
libmultipath/uevent.c | 12 +++---------
3 files changed, 9 insertions(+), 9 deletions(-)

diff --git a/libmultipath/config.c b/libmultipath/config.c
index f99465a..75eab38 100644
--- a/libmultipath/config.c
+++ b/libmultipath/config.c
@@ -5,6 +5,7 @@
*/
#include <stdio.h>
#include <string.h>
+#include <libudev.h>

#include "checkers.h"
#include "memory.h"
@@ -427,6 +428,9 @@ free_config (struct config * conf)
if (conf->dev)
FREE(conf->dev);

+ if (conf->udev)
+ udev_unref(conf->udev);
+
if (conf->udev_dir)
FREE(conf->udev_dir);

@@ -491,6 +495,7 @@ load_config (char * file)
if (!conf->verbosity)
conf->verbosity = DEFAULT_VERBOSITY;

+ conf->udev = udev_new();
conf->dmrq = dm_drv_get_rq();
conf->dev_type = DEV_NONE;
conf->minio = DEFAULT_MINIO;
diff --git a/libmultipath/config.h b/libmultipath/config.h
index 6fcd45e..147eedf 100644
--- a/libmultipath/config.h
+++ b/libmultipath/config.h
@@ -109,6 +109,7 @@ struct config {
int reassign_maps;

char * dev;
+ struct udev * udev;
char * sysfs_dir;
char * udev_dir;
char * multipath_dir;
diff --git a/libmultipath/uevent.c b/libmultipath/uevent.c
index 3e4c4ec..4e31d4f 100644
--- a/libmultipath/uevent.c
+++ b/libmultipath/uevent.c
@@ -46,6 +46,8 @@
#include "debug.h"
#include "list.h"
#include "uevent.h"
+#include "vector.h"
+#include "config.h"

typedef int (uev_trigger)(struct uevent *, void * trigger_data);

@@ -375,7 +377,6 @@ exit:
int uevent_listen(void)
{
int err;
- struct udev *udev = NULL;
struct udev_monitor *monitor = NULL;
int fd, socket_flags;
int need_failback = 1;
@@ -391,12 +392,7 @@ int uevent_listen(void)
pthread_cond_init(uev_condp, NULL);
pthread_cleanup_push(uevq_stop, NULL);

- udev = udev_new();
- if (!udev) {
- condlog(2, "failed to create udev context");
- goto out;
- }
- monitor = udev_monitor_new_from_netlink(udev, "udev");
+ monitor = udev_monitor_new_from_netlink(conf->udev, "udev");
if (!monitor) {
condlog(2, "failed to create udev monitor");
goto out;
@@ -500,8 +496,6 @@ int uevent_listen(void)
out:
if (monitor)
udev_monitor_unref(monitor);
- if (udev)
- udev_unref(udev);
if (need_failback)
err = failback_listen();
pthread_cleanup_pop(1);
--
1.7.3.4

--
dm-devel mailing list
dm-devel@redhat.com
https://www.redhat.com/mailman/listinfo/dm-devel
 

Thread Tools




All times are GMT. The time now is 10:06 AM.

VBulletin, Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.
Content Relevant URLs by vBSEO ©2007, Crawlability, Inc.
Copyright 2007 - 2008, www.linux-archive.org