mirror of https://gitee.com/openkylin/linux.git
[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: Mike Christie <michaelc@cs.wisc.edu> Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
This commit is contained in:
parent
1183657217
commit
df93ffcd74
|
@ -1774,12 +1774,12 @@ iscsi_conn_set_param(struct iscsi_cls_conn *cls_conn, enum iscsi_param param,
|
|||
break;
|
||||
case ISCSI_PARAM_MAX_R2T:
|
||||
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;
|
||||
iscsi_r2tpool_free(session);
|
||||
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))
|
||||
return -ENOMEM;
|
||||
break;
|
||||
|
|
Loading…
Reference in New Issue