summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZdenek Kabelac <zkabelac@redhat.com>2016-04-27 11:11:58 +0200
committerZdenek Kabelac <zkabelac@redhat.com>2016-05-05 23:34:30 +0200
commit4d116d7a28974648183623c46014b9dcff48748d (patch)
tree98aecbb8cb05f4af94929f362e063371ec3ecdf1
parentdef65507e6beab7d1830622492772cc89abe4ccb (diff)
downloadlvm2-4d116d7a28974648183623c46014b9dcff48748d.tar.gz
cleanup: gather version info with single check
As we already collect version info anyway, allow to use it through a single call (can makes logs shorter and saves ioctl).
-rw-r--r--WHATS_NEW1
-rw-r--r--lib/activate/activate.c21
-rw-r--r--lib/activate/activate.h3
3 files changed, 18 insertions, 7 deletions
diff --git a/WHATS_NEW b/WHATS_NEW
index 7291482c3..d0943f594 100644
--- a/WHATS_NEW
+++ b/WHATS_NEW
@@ -1,5 +1,6 @@
Version 2.02.153 -
==================================
+ Add function to check for target presence and version via 1 ioctl.
Version 2.02.152 - 30th April 2016
==================================
diff --git a/lib/activate/activate.c b/lib/activate/activate.c
index 5a7e99ee2..712f86c17 100644
--- a/lib/activate/activate.c
+++ b/lib/activate/activate.c
@@ -632,25 +632,32 @@ int module_present(struct cmd_context *cmd, const char *target_name)
return ret;
}
-int target_present(struct cmd_context *cmd, const char *target_name,
- int use_modprobe)
+int target_present_version(struct cmd_context *cmd, const char *target_name,
+ int use_modprobe,
+ uint32_t *maj, uint32_t *min, uint32_t *patchlevel)
{
- uint32_t maj, min, patchlevel;
-
if (!activation())
- return 0;
+ return_0;
#ifdef MODPROBE_CMD
if (use_modprobe) {
- if (target_version(target_name, &maj, &min, &patchlevel))
+ if (target_version(target_name, maj, min, patchlevel))
return 1;
if (!module_present(cmd, target_name))
return_0;
}
#endif
+ return target_version(target_name, maj, min, patchlevel);
+}
+
+int target_present(struct cmd_context *cmd, const char *target_name,
+ int use_modprobe)
+{
+ uint32_t maj, min, patchlevel;
- return target_version(target_name, &maj, &min, &patchlevel);
+ return target_present_version(cmd, target_name, use_modprobe,
+ &maj, &min, &patchlevel);
}
static int _lv_info(struct cmd_context *cmd, const struct logical_volume *lv,
diff --git a/lib/activate/activate.h b/lib/activate/activate.h
index 089355d0f..1e8d7a82b 100644
--- a/lib/activate/activate.h
+++ b/lib/activate/activate.h
@@ -92,6 +92,9 @@ int library_version(char *version, size_t size);
int lvm1_present(struct cmd_context *cmd);
int module_present(struct cmd_context *cmd, const char *target_name);
+int target_present_version(struct cmd_context *cmd, const char *target_name,
+ int use_modprobe, uint32_t *maj,
+ uint32_t *min, uint32_t *patchlevel);
int target_present(struct cmd_context *cmd, const char *target_name,
int use_modprobe);
int target_version(const char *target_name, uint32_t *maj,