diff options
author | Alasdair Kergon <agk@redhat.com> | 2011-07-01 14:09:19 +0000 |
---|---|---|
committer | Alasdair Kergon <agk@redhat.com> | 2011-07-01 14:09:19 +0000 |
commit | 2243718faef6ae371d7ebb8e70addb23cd062ca0 (patch) | |
tree | 97821946502435ad7d059ea9f4d22e35e0167b67 /lib/activate | |
parent | b3c42d7cc1f51c4c66fe09ec6049ff7d8ee2f0bf (diff) | |
download | lvm2-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.c | 3 | ||||
-rw-r--r-- | lib/activate/dev_manager.c | 6 |
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; |