From 60b2ba6ef9ed779d750958b6422f05c93a4a2d91 Mon Sep 17 00:00:00 2001 From: sr Date: Mon, 3 Sep 2012 21:00:26 +0200 Subject: [SERVER] Check which dnbd3 devices are idle and ready to use for proxy mode [SERVER] Skeleton of server-to-server communication [SERVER] Update access-time of images in use by actual clients [*] Add dnbd3_host_t type to handle address+port+addrtype consistently across the project --- src/kernel/blk.c | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) (limited to 'src/kernel/blk.c') diff --git a/src/kernel/blk.c b/src/kernel/blk.c index bc138c3..4282295 100644 --- a/src/kernel/blk.c +++ b/src/kernel/blk.c @@ -140,9 +140,9 @@ int dnbd3_blk_ioctl(struct block_device *bdev, fmode_t mode, unsigned int cmd, u } else { - memcpy(dev->cur_server.hostaddr, msg->addr, 16); - dev->cur_server.port = msg->port; - dev->cur_server.hostaddrtype = msg->addrtype; + if (sizeof(msg->host) != sizeof(dev->cur_server.host)) + printk("Odd size bug#1 triggered in IOCTL\n"); + memcpy(&dev->cur_server.host, &msg->host, sizeof(msg->host)); dev->cur_server.failures = 0; memcpy(&dev->initial_server, &dev->cur_server, sizeof(dev->initial_server)); dev->imgname = imgname; @@ -176,9 +176,7 @@ int dnbd3_blk_ioctl(struct block_device *bdev, fmode_t mode, unsigned int cmd, u case IOCTL_SWITCH: dnbd3_net_disconnect(dev); - memcpy(dev->cur_server.hostaddr, msg->addr, 16); - dev->cur_server.port = msg->port; - dev->cur_server.hostaddrtype = msg->addrtype; + memcpy(&dev->cur_server.host, &msg->host, sizeof(msg->host)); result = dnbd3_net_connect(dev); break; @@ -195,9 +193,7 @@ int dnbd3_blk_ioctl(struct block_device *bdev, fmode_t mode, unsigned int cmd, u result = -EAGAIN; else { - memcpy(dev->new_servers[dev->new_servers_num].hostaddr, msg->addr, 16); - dev->new_servers[dev->new_servers_num].port = msg->port; - dev->new_servers[dev->new_servers_num].hostaddrtype = msg->addrtype; + memcpy(&dev->new_servers[dev->new_servers_num].host, &msg->host, sizeof(msg->host)); dev->new_servers[dev->new_servers_num].failures = (cmd == IOCTL_ADD_SRV ? 0 : 1); // 0 = ADD, 1 = REM ++dev->new_servers_num; result = 0; -- cgit v1.2.3-55-g7522