From db8eab04e34305136af6ba4ac2519f358334b32a Mon Sep 17 00:00:00 2001 From: Alasdair Kergon Date: Wed, 30 Sep 2009 18:15:06 +0000 Subject: [PATCH] Make poll_mirror_progress a function that can be replaced. --- tools/lvconvert.c | 1 + tools/polldaemon.c | 9 +-------- tools/polldaemon.h | 17 +++++++++++++++++ tools/pvmove.c | 1 + 4 files changed, 20 insertions(+), 8 deletions(-) diff --git a/tools/lvconvert.c b/tools/lvconvert.c index 79a459cd1..c003c82af 100644 --- a/tools/lvconvert.c +++ b/tools/lvconvert.c @@ -315,6 +315,7 @@ out: static struct poll_functions _lvconvert_mirror_fns = { .get_copy_vg = _get_lvconvert_vg, .get_copy_lv = _get_lvconvert_lv, + .poll_progress = poll_mirror_progress, .update_metadata = _update_lvconvert_mirror, .finish_copy = _finish_lvconvert_mirror, }; diff --git a/tools/polldaemon.c b/tools/polldaemon.c index 4a529fd13..a600345be 100644 --- a/tools/polldaemon.c +++ b/tools/polldaemon.c @@ -63,13 +63,6 @@ static int _become_daemon(struct cmd_context *cmd) return 1; } -typedef enum { - PROGRESS_CHECK_FAILED = 0, - PROGRESS_UNFINISHED = 1, - PROGRESS_FINISHED_SEGMENT = 2, - PROGRESS_FINISHED_ALL = 3 -} progress_t; - progress_t poll_mirror_progress(struct cmd_context *cmd, struct logical_volume *lv, const char *name, struct daemon_parms *parms) @@ -122,7 +115,7 @@ static int _check_lv_status(struct cmd_context *cmd, return 0; } - progress = poll_mirror_progress(cmd, lv, name, parms); + progress = parms->poll_fns->poll_progress(cmd, lv, name, parms); if (progress == PROGRESS_CHECK_FAILED) return_0; diff --git a/tools/polldaemon.h b/tools/polldaemon.h index 1b7e18611..f8afbbe08 100644 --- a/tools/polldaemon.h +++ b/tools/polldaemon.h @@ -18,6 +18,15 @@ #include "metadata-exported.h" +typedef enum { + PROGRESS_CHECK_FAILED = 0, + PROGRESS_UNFINISHED = 1, + PROGRESS_FINISHED_SEGMENT = 2, + PROGRESS_FINISHED_ALL = 3 +} progress_t; + +struct daemon_parms; + struct poll_functions { const char *(*get_copy_name_from_lv) (struct logical_volume *lv); struct volume_group *(*get_copy_vg) (struct cmd_context *cmd, @@ -28,6 +37,10 @@ struct poll_functions { const char *name, const char *uuid, uint32_t lv_type); + progress_t (*poll_progress)(struct cmd_context *cmd, + struct logical_volume *lv, + const char *name, + struct daemon_parms *parms); int (*update_metadata) (struct cmd_context *cmd, struct volume_group *vg, struct logical_volume *lv, @@ -54,4 +67,8 @@ int poll_daemon(struct cmd_context *cmd, const char *name, const char *uuid, uint32_t lv_type, struct poll_functions *poll_fns, const char *progress_title); +progress_t poll_mirror_progress(struct cmd_context *cmd, + struct logical_volume *lv, const char *name, + struct daemon_parms *parms); + #endif diff --git a/tools/pvmove.c b/tools/pvmove.c index 2490863fe..7a63862d2 100644 --- a/tools/pvmove.c +++ b/tools/pvmove.c @@ -562,6 +562,7 @@ static struct poll_functions _pvmove_fns = { .get_copy_name_from_lv = get_pvmove_pvname_from_lv_mirr, .get_copy_vg = _get_move_vg, .get_copy_lv = find_pvmove_lv_from_pvname, + .poll_progress = poll_mirror_progress, .update_metadata = _update_metadata, .finish_copy = _finish_pvmove, }; -- 2.43.5