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

Commit 6bd054cb authored by Robert Love's avatar Robert Love Committed by James Bottomley
Browse files

[SCSI] libfc: Always reset remote port roles when receiving PRLI



Don't trust previous roles, reset them when we receive a PRLI.

Signed-off-by: default avatarRobert Love <robert.w.love@intel.com>
Signed-off-by: default avatarJames Bottomley <James.Bottomley@suse.de>
parent 9737e6a7
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
@@ -666,6 +666,9 @@ static void fc_rport_prli_resp(struct fc_seq *sp, struct fc_frame *fp,
		goto err;
	}

	/* reinitialize remote port roles */
	rdata->ids.roles = FC_RPORT_ROLE_UNKNOWN;

	op = fc_frame_payload_op(fp);
	if (op == ELS_LS_ACC) {
		pp = fc_frame_payload_get(fp, sizeof(*pp));
@@ -1173,6 +1176,9 @@ static void fc_rport_recv_prli_req(struct fc_rport_priv *rdata,
		pp->prli.prli_len = htons(len);
		len -= sizeof(struct fc_els_prli);

		/* reinitialize remote port roles */
		rdata->ids.roles = FC_RPORT_ROLE_UNKNOWN;

		/*
		 * Go through all the service parameter pages and build
		 * response.  If plen indicates longer SPP than standard,