summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJohann Latocha2012-02-22 19:53:38 +0100
committerJohann Latocha2012-02-22 19:53:38 +0100
commit69dcfc3d4b3948da84858283a1f0851a2736839c (patch)
treea2a5faf9be705b273f207ab4ee9a98f4f80fbd7c
parent[MISC] Config file update (diff)
downloaddnbd3-69dcfc3d4b3948da84858283a1f0851a2736839c.tar.gz
dnbd3-69dcfc3d4b3948da84858283a1f0851a2736839c.tar.xz
dnbd3-69dcfc3d4b3948da84858283a1f0851a2736839c.zip
[KERNEL] Minor bugfix
-rw-r--r--src/kernel/net.c12
1 files changed, 7 insertions, 5 deletions
diff --git a/src/kernel/net.c b/src/kernel/net.c
index f8ff196..e331177 100644
--- a/src/kernel/net.c
+++ b/src/kernel/net.c
@@ -203,6 +203,7 @@ int dnbd3_net_discover(void *data)
num = dev->alt_servers_num;
dev->discover = 0;
+ strcpy(best_server, "0.0.0.0");
best_rtt = -1;
for (i=0; i < num && i < NUMBER_SERVERS; i++)
@@ -253,7 +254,7 @@ int dnbd3_net_discover(void *data)
// panic mode, take first responding server
if (dev->panic)
{
- printk("WARN: Panic mode, taking server %s\n", current_server);
+ printk("WARN: Panic mode (%s), taking server %s\n", dev->disk->disk_name, current_server);
sock_release(sock);
kfree(buf);
dev->thread_discover = NULL;
@@ -311,10 +312,14 @@ int dnbd3_net_discover(void *data)
continue;
}
+
+ if (!strcmp(best_server, "0.0.0.0") || best_rtt == (uint64_t)-1)
+ continue;
+
// take server with lowest rtt
if (num > 1 && strcmp(dev->cur_server.host, best_server))
{
- printk("INFO: Server %s is faster (%lluus), switching...\n", best_server, best_rtt);
+ printk("INFO: Server %s on %s is faster (%lluus), switching\n", best_server, dev->disk->disk_name, best_rtt);
kfree(buf);
dev->thread_discover = NULL;
dnbd3_net_disconnect(dev);
@@ -330,7 +335,6 @@ int dnbd3_net_discover(void *data)
}
kfree(buf);
- printk("INFO: dnbd3_net_discover exit\n");
return 0;
}
@@ -410,7 +414,6 @@ int dnbd3_net_send(void *data)
wake_up(&dev->process_queue_receive);
}
- printk("INFO: dnbd3_net_send exit\n");
return 0;
error:
@@ -551,7 +554,6 @@ int dnbd3_net_receive(void *data)
}
}
- printk("INFO: dnbd3_net_receive exit\n");
return 0;
error: