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); +} - 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_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,