summaryrefslogtreecommitdiffstats
path: root/drivers/block/drbd/drbd_receiver.c
diff options
context:
space:
mode:
authorAndreas Gruenbacher2011-06-14 18:28:09 +0200
committerPhilipp Reisner2012-11-08 16:57:46 +0100
commit089c075d88ac9407b8d7c5c8fc4b21c0d940bd82 (patch)
treec68e1a24d7813abe883702255a37dc704f2ea8fd /drivers/block/drbd/drbd_receiver.c
parentdrbd: Rename DRBD_ADM_NEED_{CONN -> RESOURCE} (diff)
downloadkernel-qcow2-linux-089c075d88ac9407b8d7c5c8fc4b21c0d940bd82.tar.gz
kernel-qcow2-linux-089c075d88ac9407b8d7c5c8fc4b21c0d940bd82.tar.xz
kernel-qcow2-linux-089c075d88ac9407b8d7c5c8fc4b21c0d940bd82.zip
drbd: Convert the generic netlink interface to accept connection endpoints
Signed-off-by: Philipp Reisner <philipp.reisner@linbit.com> Signed-off-by: Lars Ellenberg <lars.ellenberg@linbit.com>
Diffstat (limited to 'drivers/block/drbd/drbd_receiver.c')
-rw-r--r--drivers/block/drbd/drbd_receiver.c21
1 files changed, 9 insertions, 12 deletions
diff --git a/drivers/block/drbd/drbd_receiver.c b/drivers/block/drbd/drbd_receiver.c
index 4ba097293278..ab1d36cb6214 100644
--- a/drivers/block/drbd/drbd_receiver.c
+++ b/drivers/block/drbd/drbd_receiver.c
@@ -626,23 +626,21 @@ static struct socket *drbd_try_connect(struct drbd_tconn *tconn)
rcu_read_unlock();
return NULL;
}
-
sndbuf_size = nc->sndbuf_size;
rcvbuf_size = nc->rcvbuf_size;
connect_int = nc->connect_int;
+ rcu_read_unlock();
- my_addr_len = min_t(int, nc->my_addr_len, sizeof(src_in6));
- memcpy(&src_in6, nc->my_addr, my_addr_len);
+ my_addr_len = min_t(int, tconn->my_addr_len, sizeof(src_in6));
+ memcpy(&src_in6, &tconn->my_addr, my_addr_len);
- if (((struct sockaddr *)nc->my_addr)->sa_family == AF_INET6)
+ if (((struct sockaddr *)&tconn->my_addr)->sa_family == AF_INET6)
src_in6.sin6_port = 0;
else
((struct sockaddr_in *)&src_in6)->sin_port = 0; /* AF_INET & AF_SCI */
- peer_addr_len = min_t(int, nc->peer_addr_len, sizeof(src_in6));
- memcpy(&peer_in6, nc->peer_addr, peer_addr_len);
-
- rcu_read_unlock();
+ peer_addr_len = min_t(int, tconn->peer_addr_len, sizeof(src_in6));
+ memcpy(&peer_in6, &tconn->peer_addr, peer_addr_len);
what = "sock_create_kern";
err = sock_create_kern(((struct sockaddr *)&src_in6)->sa_family,
@@ -714,15 +712,14 @@ static struct socket *drbd_wait_for_connect(struct drbd_tconn *tconn)
rcu_read_unlock();
return NULL;
}
-
sndbuf_size = nc->sndbuf_size;
rcvbuf_size = nc->rcvbuf_size;
connect_int = nc->connect_int;
-
- my_addr_len = min_t(int, nc->my_addr_len, sizeof(struct sockaddr_in6));
- memcpy(&my_addr, nc->my_addr, my_addr_len);
rcu_read_unlock();
+ my_addr_len = min_t(int, tconn->my_addr_len, sizeof(struct sockaddr_in6));
+ memcpy(&my_addr, &tconn->my_addr, my_addr_len);
+
what = "sock_create_kern";
err = sock_create_kern(((struct sockaddr *)&my_addr)->sa_family,
SOCK_STREAM, IPPROTO_TCP, &s_listen);