Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit df93ffcd authored by Mike Christie's avatar Mike Christie Committed by James Bottomley
Browse files

[SCSI] iscsi_tcp: fix setting of r2t



If we negotiate for X r2ts we have to use only X r2ts. We cannot
round up (we could send less though). It is ok to fail if it
is not something the driver can handle, so this patch just does
that.

Signed-off-by: default avatarMike Christie <michaelc@cs.wisc.edu>
Signed-off-by: default avatarJames Bottomley <James.Bottomley@HansenPartnership.com>
parent 11836572
Loading
Loading
Loading
Loading
+3 −3
Original line number Original line Diff line number Diff line
@@ -1774,12 +1774,12 @@ iscsi_conn_set_param(struct iscsi_cls_conn *cls_conn, enum iscsi_param param,
		break;
		break;
	case ISCSI_PARAM_MAX_R2T:
	case ISCSI_PARAM_MAX_R2T:
		sscanf(buf, "%d", &value);
		sscanf(buf, "%d", &value);
		if (session->max_r2t == roundup_pow_of_two(value))
		if (value <= 0 || !is_power_of_2(value))
			return -EINVAL;
		if (session->max_r2t == value)
			break;
			break;
		iscsi_r2tpool_free(session);
		iscsi_r2tpool_free(session);
		iscsi_set_param(cls_conn, param, buf, buflen);
		iscsi_set_param(cls_conn, param, buf, buflen);
		if (session->max_r2t & (session->max_r2t - 1))
			session->max_r2t = roundup_pow_of_two(session->max_r2t);
		if (iscsi_r2tpool_alloc(session))
		if (iscsi_r2tpool_alloc(session))
			return -ENOMEM;
			return -ENOMEM;
		break;
		break;