summaryrefslogtreecommitdiffstats
path: root/tools/vgchange.c
diff options
context:
space:
mode:
authorZdenek Kabelac <zkabelac@redhat.com>2011-09-07 08:41:47 +0000
committerZdenek Kabelac <zkabelac@redhat.com>2011-09-07 08:41:47 +0000
commit4144938350038b024872ca38be9233dbbdb0432f (patch)
treec320864799d4d6703666143c9daa40d1ec2fbe6b /tools/vgchange.c
parentbeecb1e160c5d2df1a70a5b446dfe0fa7d106ccd (diff)
downloadlvm2-4144938350038b024872ca38be9233dbbdb0432f.tar.gz
lvm2-4144938350038b024872ca38be9233dbbdb0432f.tar.xz
lvm2-4144938350038b024872ca38be9233dbbdb0432f.zip
Support break for vgchange and vgrefresh operation
Allow to break some lengthy vgchange and vgrefresh operation.
Diffstat (limited to 'tools/vgchange.c')
-rw-r--r--tools/vgchange.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/tools/vgchange.c b/tools/vgchange.c
index 5deb1298..f36f27d4 100644
--- a/tools/vgchange.c
+++ b/tools/vgchange.c
@@ -90,7 +90,11 @@ static int _activate_lvs_in_vg(struct cmd_context *cmd,
struct logical_volume *lv;
int count = 0, expected_count = 0;
+ sigint_allow();
dm_list_iterate_items(lvl, &vg->lvs) {
+ if (sigint_caught())
+ return_0;
+
lv = lvl->lv;
if (!lv_is_visible(lv))
@@ -160,6 +164,8 @@ static int _activate_lvs_in_vg(struct cmd_context *cmd,
count++;
}
+ sigint_restore();
+
if (expected_count)
log_verbose("%s %d logical volumes in volume group %s",
(activate == CHANGE_AN || activate == CHANGE_ALN)?