summaryrefslogtreecommitdiffstats
path: root/lib/device
diff options
context:
space:
mode:
authorZdenek Kabelac <zkabelac@redhat.com>2011-01-17 15:16:55 +0000
committerZdenek Kabelac <zkabelac@redhat.com>2011-01-17 15:16:55 +0000
commit6184b70cf73fd045d751024cab3a71a504b30bd0 (patch)
tree77221a50e843fea493a42f8b6d67c3489e00494d /lib/device
parent888d273f9a639bb2349706efb01e71721017caa1 (diff)
downloadlvm2-6184b70cf73fd045d751024cab3a71a504b30bd0.tar.gz
lvm2-6184b70cf73fd045d751024cab3a71a504b30bd0.tar.xz
lvm2-6184b70cf73fd045d751024cab3a71a504b30bd0.zip
Do not scan devices unnecessarily for reseting error counter
For reseting error counter use directly btree cached elements and do not create whole dev_iterator.
Diffstat (limited to 'lib/device')
-rw-r--r--lib/device/dev-cache.c14
1 files changed, 5 insertions, 9 deletions
diff --git a/lib/device/dev-cache.c b/lib/device/dev-cache.c
index 962aa1e0..8ba85157 100644
--- a/lib/device/dev-cache.c
+++ b/lib/device/dev-cache.c
@@ -850,18 +850,14 @@ struct device *dev_iter_get(struct dev_iter *iter)
void dev_reset_error_count(struct cmd_context *cmd)
{
- struct dev_iter *iter;
- struct device *dev;
+ struct dev_iter iter;
- if (!(iter = dev_iter_create(cmd->filter, 0))) {
- log_error("Resetting device error count failed");
+ if (!_cache.devices)
return;
- }
-
- for (dev = dev_iter_get(iter); dev; dev = dev_iter_get(iter))
- dev->error_count = 0;
- dev_iter_destroy(iter);
+ iter.current = btree_first(_cache.devices);
+ while (iter.current)
+ _iter_next(&iter)->error_count = 0;
}
int dev_fd(struct device *dev)