[lvm-devel] master - polldaemon: move dev_close_all out of poll_get_copy_vg
okozina
okozina at fedoraproject.org
Tue May 19 19:02:49 UTC 2015
Gitweb: http://git.fedorahosted.org/git/?p=lvm2.git;a=commitdiff;h=e5e0e220223edf0789d38a0a98341d745cf95b15
Commit: e5e0e220223edf0789d38a0a98341d745cf95b15
Parent: e27182249a2cef2518fbbab1037810ed5c9a6d37
Author: Ondrej Kozina <okozina at redhat.com>
AuthorDate: Tue May 19 11:37:39 2015 +0200
Committer: Ondrej Kozina <okozina at redhat.com>
CommitterDate: Tue May 19 20:55:22 2015 +0200
polldaemon: move dev_close_all out of poll_get_copy_vg
let's call dev_close_all() only before we're about to 'sleep'
for at least one second during the polling.
(it's questionable whether to call dev_close_all() at all in
polldaemon code. Natural extension would be to drop it completely)
---
tools/polldaemon.c | 11 +++++++++--
1 files changed, 9 insertions(+), 2 deletions(-)
diff --git a/tools/polldaemon.c b/tools/polldaemon.c
index 83497b0..7f25887 100644
--- a/tools/polldaemon.c
+++ b/tools/polldaemon.c
@@ -59,8 +59,6 @@ struct volume_group *poll_get_copy_vg(struct cmd_context *cmd,
const char *uuid __attribute__((unused)),
uint32_t flags)
{
- dev_close_all();
-
if (name && !strchr(name, '/'))
return vg_read(cmd, name, NULL, flags);
@@ -153,6 +151,7 @@ static void _nanosleep(unsigned secs, unsigned allow_zero_time)
static void _sleep_and_rescan_devices(struct daemon_parms *parms)
{
if (parms->interval && !parms->aborting) {
+ dev_close_all();
_nanosleep(parms->interval, 1);
/* Devices might have changed while we slept */
init_full_scan_done(0);
@@ -362,6 +361,8 @@ static void _poll_for_all_vgs(struct cmd_context *cmd,
process_each_vg(cmd, 0, NULL, READ_FOR_UPDATE, handle, _poll_vg);
if (!parms->outstanding_count)
break;
+ if (parms->interval)
+ dev_close_all();
_nanosleep(parms->interval, 1);
}
}
@@ -487,6 +488,9 @@ static void _lvmpolld_poll_for_all_vgs(struct cmd_context *cmd,
report_progress(cmd, idl->id, lpdp.parms);
}
+ if (lpdp.parms->interval)
+ dev_close_all();
+
_nanosleep(lpdp.parms->interval, 0);
}
@@ -513,6 +517,9 @@ static int _lvmpoll_daemon(struct cmd_context *cmd, struct poll_operation_id *id
(!parms->aborting && !(r = report_progress(cmd, id, parms))))
break;
+ if (parms->interval)
+ dev_close_all();
+
_nanosleep(parms->interval, 0);
}
}
More information about the lvm-devel
mailing list