diff options
author | sr | 2012-09-03 21:00:26 +0200 |
---|---|---|
committer | sr | 2012-09-03 21:00:26 +0200 |
commit | 60b2ba6ef9ed779d750958b6422f05c93a4a2d91 (patch) | |
tree | 46fdacf6a9439947e91af4c3d9de3006d41e5380 /src/kernel/blk.c | |
parent | [*] Fixed and unified formatting (diff) | |
download | dnbd3-60b2ba6ef9ed779d750958b6422f05c93a4a2d91.tar.gz dnbd3-60b2ba6ef9ed779d750958b6422f05c93a4a2d91.tar.xz dnbd3-60b2ba6ef9ed779d750958b6422f05c93a4a2d91.zip |
[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
Diffstat (limited to 'src/kernel/blk.c')
-rw-r--r-- | src/kernel/blk.c | 14 |
1 files changed, 5 insertions, 9 deletions
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; |