summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZdenek Kabelac <zkabelac@redhat.com>2015-10-12 11:37:36 +0200
committerZdenek Kabelac <zkabelac@redhat.com>2015-10-13 15:56:03 +0200
commitf9926e7e6c102319575c186e8eef0012cb9c36cc (patch)
treeb71f27da51d9e7ee82bd0ba3e1a88fe9ac029e78
parent76ea01dd207ce185891418c3f8ffdcff14bf2672 (diff)
downloadlvm2-f9926e7e6c102319575c186e8eef0012cb9c36cc.tar.gz
dmeventd: introduce macro for init
Simplify commonly used pool creation.
-rw-r--r--daemons/dmeventd/plugins/lvm2/dmeventd_lvm.h34
1 files changed, 33 insertions, 1 deletions
diff --git a/daemons/dmeventd/plugins/lvm2/dmeventd_lvm.h b/daemons/dmeventd/plugins/lvm2/dmeventd_lvm.h
index 5691c8776..d193edaa0 100644
--- a/daemons/dmeventd/plugins/lvm2/dmeventd_lvm.h
+++ b/daemons/dmeventd/plugins/lvm2/dmeventd_lvm.h
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2010 Red Hat, Inc. All rights reserved.
+ * Copyright (C) 2010-2015 Red Hat, Inc. All rights reserved.
*
* This file is part of LVM2.
*
@@ -39,4 +39,36 @@ struct dm_pool *dmeventd_lvm2_pool(void);
int dmeventd_lvm2_command(struct dm_pool *mem, char *buffer, size_t size,
const char *cmd, const char *device);
+#define dmeventd_lvm2_run_with_lock(cmdline) \
+ ({\
+ int rc;\
+ dmeventd_lvm2_lock();\
+ rc = dmeventd_lvm2_run(cmdline);\
+ dmeventd_lvm2_unlock();\
+ rc;\
+ })
+
+#define dmeventd_lvm2_init_with_pool(name, st) \
+ ({\
+ struct dm_pool *mem;\
+ st = NULL;\
+ if (dmeventd_lvm2_init()) {\
+ if ((mem = dm_pool_create(name, 2048)) &&\
+ (st = dm_pool_zalloc(mem, sizeof(*st))))\
+ st->mem = mem;\
+ else {\
+ if (mem)\
+ dm_pool_destroy(mem);\
+ dmeventd_lvm2_exit();\
+ }\
+ }\
+ st;\
+ })
+
+#define dmeventd_lvm2_exit_with_pool(pool) \
+ do {\
+ dm_pool_destroy(pool->mem);\
+ dmeventd_lvm2_exit();\
+ } while(0)
+
#endif /* _DMEVENTD_LVMWRAP_H */