]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
kvm tools: Don't remove any file which is not created by itself
authorLai Jiangshan <laijs@cn.fujitsu.com>
Tue, 27 Dec 2011 07:36:38 +0000 (15:36 +0800)
committerPekka Enberg <penberg@kernel.org>
Tue, 3 Jan 2012 17:07:01 +0000 (19:07 +0200)
It is user's or other program's reponsibility, not the current program.
Just try best to let the user know what happen.
Also make print_guest() keep the same behavior as do_debug()
do_pause() ...etc. when it failed.

Signed-off-by: Lai Jiangshan <laijs@cn.fujitsu.com>
Signed-off-by: Pekka Enberg <penberg@kernel.org>
tools/kvm/builtin-list.c
tools/kvm/kvm.c

index 885543f440cec94b69fbeea2858a7390a9223b5a..9299f17b6f0047549ad55a913c9858cbe79621a1 100644 (file)
@@ -77,7 +77,7 @@ static int print_guest(const char *name, int sock)
        vmstate = get_vmstate(sock);
 
        if ((int)pid < 0 || vmstate < 0)
-               goto cleanup;
+               return -1;
 
        if (vmstate == KVM_VMSTATE_PAUSED)
                printf("%5d %-20s %s\n", pid, name, KVM_INSTANCE_PAUSED);
@@ -85,10 +85,6 @@ static int print_guest(const char *name, int sock)
                printf("%5d %-20s %s\n", pid, name, KVM_INSTANCE_RUNNING);
 
        return 0;
-
-cleanup:
-       kvm__remove_socket(name);
-       return -1;
 }
 
 static int kvm_list_running_instances(void)
index 29cc4b4cf80fecdaaae58a8537bbe869ea9fb5bf..cb4e5a0d7121d8d3d6857ea65052259f05ffa060 100644 (file)
@@ -150,7 +150,6 @@ static int kvm__create_socket(struct kvm *kvm)
                return s;
        local.sun_family = AF_UNIX;
        strcpy(local.sun_path, full_name);
-       unlink(local.sun_path);
        len = strlen(local.sun_path) + sizeof(local.sun_family);
        r = bind(s, (struct sockaddr *)&local, len);
        if (r < 0)
@@ -190,8 +189,9 @@ int kvm__get_sock_by_instance(const char *name)
 
        r = connect(s, &local, len);
        if (r < 0 && errno == ECONNREFUSED) {
-               /* Clean ghost socket file */
-               unlink(sock_file);
+               /* Tell the user clean ghost socket file */
+               pr_err("\"%s\" could be a ghost socket file, please remove it",
+                               sock_file);
                return -1;
        } else if (r < 0) {
                die("Failed connecting to instance");