diff options
author | Zdenek Kabelac <zkabelac@redhat.com> | 2011-01-17 15:16:55 +0000 |
---|---|---|
committer | Zdenek Kabelac <zkabelac@redhat.com> | 2011-01-17 15:16:55 +0000 |
commit | 6184b70cf73fd045d751024cab3a71a504b30bd0 (patch) | |
tree | 77221a50e843fea493a42f8b6d67c3489e00494d /lib/device | |
parent | 888d273f9a639bb2349706efb01e71721017caa1 (diff) | |
download | lvm2-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.c | 14 |
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) |