Commit 8a22cccc authored by Philipp Reisner's avatar Philipp Reisner
Browse files

drbd: Converted drbd_send_handshake() from mdev to tconn

parent a25b63f1
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -378,7 +378,7 @@ struct p_block_req {
 */

struct p_handshake {
	struct p_header head;	/* Note: You must always use a h80 here */
	struct p_header head;   /* Note: vnr will be ignored */
	u32 protocol_min;
	u32 feature_flags;
	u32 protocol_max;
+10 −10
Original line number Diff line number Diff line
@@ -3952,28 +3952,28 @@ static void drbd_disconnect(struct drbd_conf *mdev)
 *
 * for now, they are expected to be zero, but ignored.
 */
static int drbd_send_handshake(struct drbd_conf *mdev)
static int drbd_send_handshake(struct drbd_tconn *tconn)
{
	/* ASSERT current == mdev->tconn->receiver ... */
	struct p_handshake *p = &mdev->tconn->data.sbuf.handshake;
	struct p_handshake *p = &tconn->data.sbuf.handshake;
	int ok;

	if (mutex_lock_interruptible(&mdev->tconn->data.mutex)) {
		dev_err(DEV, "interrupted during initial handshake\n");
	if (mutex_lock_interruptible(&tconn->data.mutex)) {
		conn_err(tconn, "interrupted during initial handshake\n");
		return 0; /* interrupted. not ok. */
	}

	if (mdev->tconn->data.socket == NULL) {
		mutex_unlock(&mdev->tconn->data.mutex);
	if (tconn->data.socket == NULL) {
		mutex_unlock(&tconn->data.mutex);
		return 0;
	}

	memset(p, 0, sizeof(*p));
	p->protocol_min = cpu_to_be32(PRO_VERSION_MIN);
	p->protocol_max = cpu_to_be32(PRO_VERSION_MAX);
	ok = _drbd_send_cmd(mdev, mdev->tconn->data.socket, P_HAND_SHAKE,
	ok = _conn_send_cmd(tconn, 0, tconn->data.socket, P_HAND_SHAKE,
			    &p->head, sizeof(*p), 0);
	mutex_unlock(&mdev->tconn->data.mutex);
	mutex_unlock(&tconn->data.mutex);
	return ok;
}

@@ -3993,7 +3993,7 @@ static int drbd_do_handshake(struct drbd_conf *mdev)
	enum drbd_packet cmd;
	int rv;

	rv = drbd_send_handshake(mdev);
	rv = drbd_send_handshake(mdev->tconn);
	if (!rv)
		return 0;