From 6184b70cf73fd045d751024cab3a71a504b30bd0 Mon Sep 17 00:00:00 2001 From: Zdenek Kabelac Date: Mon, 17 Jan 2011 15:16:55 +0000 Subject: [PATCH] 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. --- WHATS_NEW | 1 + lib/device/dev-cache.c | 14 +++++--------- 2 files changed, 6 insertions(+), 9 deletions(-) diff --git a/WHATS_NEW b/WHATS_NEW index df4da73d1..fdb74b46f 100644 --- a/WHATS_NEW +++ b/WHATS_NEW @@ -1,5 +1,6 @@ Version 2.02.81 - =================================== + Do not scan devices unnecessarily in dev_reset_error_count(). Skip unnecessary lock_vol() call after volume deactivation. Extend exec_cmd params to specify, when device sync is needed. Replace fs_unlock by sync_local_dev_names to notify local clvmd. (2.02.80) diff --git a/lib/device/dev-cache.c b/lib/device/dev-cache.c index 962aa1e00..8ba851572 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) -- 2.43.5