summaryrefslogtreecommitdiffstats
path: root/src/kernel/blk.c
diff options
context:
space:
mode:
authorsr2012-09-03 21:00:26 +0200
committersr2012-09-03 21:00:26 +0200
commit60b2ba6ef9ed779d750958b6422f05c93a4a2d91 (patch)
tree46fdacf6a9439947e91af4c3d9de3006d41e5380 /src/kernel/blk.c
parent[*] Fixed and unified formatting (diff)
downloaddnbd3-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.c14
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;