Commit-ID: 4568fef30e457281bac396427a17d72218cc39c3 Gitweb: http://git.kernel.org/tip/4568fef30e457281bac396427a17d72218cc39c3 Author: Lai Jiangshan <laijs@xxxxxxxxxxxxxx> AuthorDate: Tue, 27 Dec 2011 15:36:37 +0800 Committer: Pekka Enberg <penberg@xxxxxxxxxx> CommitDate: Tue, 3 Jan 2012 19:07:01 +0200 kvm tools: Check the state before pause/resume Let the user know what happened Signed-off-by: Lai Jiangshan <laijs@xxxxxxxxxxxxxx> Signed-off-by: Pekka Enberg <penberg@xxxxxxxxxx> --- tools/kvm/builtin-list.c | 2 +- tools/kvm/builtin-pause.c | 10 ++++++++++ tools/kvm/builtin-resume.c | 10 ++++++++++ tools/kvm/include/kvm/builtin-list.h | 1 + 4 files changed, 22 insertions(+), 1 deletions(-) diff --git a/tools/kvm/builtin-list.c b/tools/kvm/builtin-list.c index dbd6d98..885543f 100644 --- a/tools/kvm/builtin-list.c +++ b/tools/kvm/builtin-list.c @@ -51,7 +51,7 @@ static pid_t get_pid(int sock) return pid; } -static int get_vmstate(int sock) +int get_vmstate(int sock) { int vmstate; int r; diff --git a/tools/kvm/builtin-pause.c b/tools/kvm/builtin-pause.c index 436963f..c08595a 100644 --- a/tools/kvm/builtin-pause.c +++ b/tools/kvm/builtin-pause.c @@ -1,6 +1,7 @@ #include <kvm/util.h> #include <kvm/kvm-cmd.h> #include <kvm/builtin-pause.h> +#include <kvm/builtin-list.h> #include <kvm/kvm.h> #include <kvm/parse-options.h> #include <kvm/kvm-ipc.h> @@ -42,6 +43,15 @@ void kvm_pause_help(void) static int do_pause(const char *name, int sock) { int r; + int vmstate; + + vmstate = get_vmstate(sock); + if (vmstate < 0) + return vmstate; + if (vmstate == KVM_VMSTATE_PAUSED) { + printf("Guest %s is already paused.\n", name); + return 0; + } r = kvm_ipc__send(sock, KVM_IPC_PAUSE); if (r) diff --git a/tools/kvm/builtin-resume.c b/tools/kvm/builtin-resume.c index 033a05b..0e954b4 100644 --- a/tools/kvm/builtin-resume.c +++ b/tools/kvm/builtin-resume.c @@ -1,6 +1,7 @@ #include <kvm/util.h> #include <kvm/kvm-cmd.h> #include <kvm/builtin-resume.h> +#include <kvm/builtin-list.h> #include <kvm/kvm.h> #include <kvm/parse-options.h> #include <kvm/kvm-ipc.h> @@ -42,6 +43,15 @@ void kvm_resume_help(void) static int do_resume(const char *name, int sock) { int r; + int vmstate; + + vmstate = get_vmstate(sock); + if (vmstate < 0) + return vmstate; + if (vmstate == KVM_VMSTATE_RUNNING) { + printf("Guest %s is still running.\n", name); + return 0; + } r = kvm_ipc__send(sock, KVM_IPC_RESUME); if (r) diff --git a/tools/kvm/include/kvm/builtin-list.h b/tools/kvm/include/kvm/builtin-list.h index 7b697f6..47029ca 100644 --- a/tools/kvm/include/kvm/builtin-list.h +++ b/tools/kvm/include/kvm/builtin-list.h @@ -5,5 +5,6 @@ int kvm_cmd_list(int argc, const char **argv, const char *prefix); void kvm_list_help(void) NORETURN; +int get_vmstate(int sock); #endif -- To unsubscribe from this list: send the line "unsubscribe linux-tip-commits" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html