diff options
author | Johann Latocha | 2012-05-08 23:40:35 +0200 |
---|---|---|
committer | Johann Latocha | 2012-05-08 23:40:35 +0200 |
commit | e94396f4cf420642f551b8815e031c45bd0aaa7f (patch) | |
tree | 8d85c04413802fcdc338a50c864c84785bc3bc51 /src/kernel/net.c | |
parent | [KERNEL] rtt measurement improved (diff) | |
download | dnbd3-e94396f4cf420642f551b8815e031c45bd0aaa7f.tar.gz dnbd3-e94396f4cf420642f551b8815e031c45bd0aaa7f.tar.xz dnbd3-e94396f4cf420642f551b8815e031c45bd0aaa7f.zip |
[KERNEL] Set proper exit status on connection
Diffstat (limited to 'src/kernel/net.c')
-rw-r--r-- | src/kernel/net.c | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/src/kernel/net.c b/src/kernel/net.c index bc2f510..0bfca6f 100644 --- a/src/kernel/net.c +++ b/src/kernel/net.c @@ -24,7 +24,7 @@ #include <linux/time.h> -void dnbd3_net_connect(dnbd3_device_t *dev) +int dnbd3_net_connect(dnbd3_device_t *dev) { struct sockaddr_in sin; struct request *req0 = kmalloc(sizeof(struct request), GFP_ATOMIC); @@ -39,18 +39,18 @@ void dnbd3_net_connect(dnbd3_device_t *dev) { printk("FATAL: Kmalloc failed.\n"); memset(dev->cur_server.host, '\0', sizeof(dev->cur_server.host)); - return; + return -1; } if (!dev->cur_server.host || !dev->cur_server.port || (dev->vid == 0)) { printk("FATAL: Host, port or vid not set.\n"); memset(dev->cur_server.host, '\0', sizeof(dev->cur_server.host)); - return; + return -1; } if (dev->cur_server.sock) { printk("ERROR: Device %s is already connected to %s.\n", dev->disk->disk_name, dev->cur_server.host); - return; + return -1; } printk("INFO: Connecting device %s to %s\n", dev->disk->disk_name, dev->cur_server.host); @@ -61,7 +61,7 @@ void dnbd3_net_connect(dnbd3_device_t *dev) printk("ERROR: Couldn't create socket.\n"); dev->cur_server.sock = NULL; memset(dev->cur_server.host, '\0', sizeof(dev->cur_server.host)); - return; + return -1; } kernel_setsockopt(dev->cur_server.sock, SOL_SOCKET, SO_SNDTIMEO, (char *) &timeout, sizeof(timeout)); kernel_setsockopt(dev->cur_server.sock, SOL_SOCKET, SO_RCVTIMEO, (char *) &timeout, sizeof(timeout)); @@ -74,7 +74,7 @@ void dnbd3_net_connect(dnbd3_device_t *dev) printk("ERROR: Couldn't connect to host %s:%s\n", dev->cur_server.host, dev->cur_server.port); dev->cur_server.sock = NULL; memset(dev->cur_server.host, '\0', sizeof(dev->cur_server.host)); - return; + return -1; } dev->panic = 0; @@ -113,6 +113,7 @@ void dnbd3_net_connect(dnbd3_device_t *dev) dev->hb_timer.expires = jiffies + TIMER_INTERVAL_HEARTBEAT; add_timer(&dev->hb_timer); + return 0; } void dnbd3_net_disconnect(dnbd3_device_t *dev) |