summaryrefslogtreecommitdiffstats
path: root/lib/activate
diff options
context:
space:
mode:
authorAlasdair Kergon <agk@redhat.com>2011-07-01 14:09:19 +0000
committerAlasdair Kergon <agk@redhat.com>2011-07-01 14:09:19 +0000
commit2243718faef6ae371d7ebb8e70addb23cd062ca0 (patch)
tree97821946502435ad7d059ea9f4d22e35e0167b67 /lib/activate
parentb3c42d7cc1f51c4c66fe09ec6049ff7d8ee2f0bf (diff)
downloadlvm2-2243718faef6ae371d7ebb8e70addb23cd062ca0.tar.gz
lvm2-2243718faef6ae371d7ebb8e70addb23cd062ca0.tar.xz
lvm2-2243718faef6ae371d7ebb8e70addb23cd062ca0.zip
Add framework for validation of ioctls. Doesn't do any checks yet.
dmsetup --checks libdevmapper: dm_task_enable_checks() lvm.conf: activation/checks=1
Diffstat (limited to 'lib/activate')
-rw-r--r--lib/activate/activate.c3
-rw-r--r--lib/activate/dev_manager.c6
2 files changed, 9 insertions, 0 deletions
diff --git a/lib/activate/activate.c b/lib/activate/activate.c
index 89d7b23d..712f5784 100644
--- a/lib/activate/activate.c
+++ b/lib/activate/activate.c
@@ -394,6 +394,9 @@ int target_version(const char *target_name, uint32_t *maj,
if (!(dmt = dm_task_create(DM_DEVICE_LIST_VERSIONS)))
return_0;
+ if (activation_checks() && !dm_task_enable_checks(dmt))
+ goto_out;
+
if (!dm_task_run(dmt)) {
log_debug("Failed to get %s target version", target_name);
/* Assume this was because LIST_VERSIONS isn't supported */
diff --git a/lib/activate/dev_manager.c b/lib/activate/dev_manager.c
index 018447e9..f3adcc2c 100644
--- a/lib/activate/dev_manager.c
+++ b/lib/activate/dev_manager.c
@@ -88,6 +88,9 @@ static struct dm_task *_setup_task(const char *name, const char *uuid,
if (major && !dm_task_set_major_minor(dmt, major, minor, 1))
goto_out;
+ if (activation_checks() && !dm_task_enable_checks(dmt))
+ goto_out;
+
return dmt;
out:
dm_task_destroy(dmt);
@@ -148,6 +151,9 @@ int device_is_usable(struct device *dev)
if (!dm_task_set_major_minor(dmt, MAJOR(dev->dev), MINOR(dev->dev), 1))
goto_out;
+ if (activation_checks() && !dm_task_enable_checks(dmt))
+ goto_out;
+
if (!dm_task_run(dmt)) {
log_error("Failed to get state of mapped device");
goto out;