Skip to contentSkip to conversation

commit 1b6ac5e3f "fnic: Using rport->dd_data to check rport online instead of rport_lookup."

DISCUSSION Joe Jin 2 participants 2 messages Mar 31, 2017 – Apr 20, 2017 SCSI

lore
Share & tools
lore

Joe Jin

author
#0 lore raw

Hi Satish,

My customer hit below error when issue LIP to fnic controller:

[94702.898408] sd 2:0:4:1: [sdx] tag#1 FAILED Result: hostbyte=DID_NO_CONNECT driverbyte=DRIVER_OK
[94702.898416] sd 2:0:4:1: [sdx] tag#1 CDB: Write(10) 2a 00 04 56 c0 08 00 00 08 00
[94702.898420] blk_update_request: I/O error, dev sdx, sector 72794120
[94702.898455] sd 2:0:4:10: [sdy] tag#2 FAILED Result: hostbyte=DID_NO_CONNECT driverbyte=DRIVER_OK
[94702.898459] sd 2:0:4:10: [sdy] tag#2 CDB: Read(10) 28 00 00 00 08 a8 00 00 02 00
[94702.898462] blk_update_request: I/O error, dev sdy, sector 2216

Looked at all changes of fnic I found it caused by commit 1b6ac5e3f "fnic:
Using rport->dd_data to check rport online instead of rport_lookup.", a question is why changed state check from RPORT_ST_DELETE to RPORT_ST_READY here?

- if (!rdata || (rdata->rp_state == RPORT_ST_DELETE)) {
- FNIC_SCSI_DBG(KERN_DEBUG, fnic->lport->host,
- "returning IO as rport is removed\n");

-               atomic64_inc(&fnic_stats->misc_stats.rport_not_ready);
-               sc->result = DID_NO_CONNECT;
-               done(sc);
-               return 0;

+ if (rport) {
+ struct fc_rport_libfc_priv *rp = rport->dd_data;
+
+ if (!rp || rp->rp_state != RPORT_ST_READY) {
+ FNIC_SCSI_DBG(KERN_DEBUG, fnic->lport->host,
+ "returning DID_NO_CONNECT for IO as rport is removed\n");

Thanks,
Joe

#1 lore raw
Quoted 11 lines · Joe Jin

My customer hit below error when issue LIP to fnic controller:

[94702.898408] sd 2:0:4:1: [sdx] tag#1 FAILED Result:
hostbyte=DID_NO_CONNECT driverbyte=DRIVER_OK
[94702.898416] sd 2:0:4:1: [sdx] tag#1 CDB: Write(10) 2a 00 04 56 c0 08 00 00 08 00
[94702.898420] blk_update_request: I/O error, dev sdx, sector 72794120
[94702.898455] sd 2:0:4:10: [sdy] tag#2 FAILED Result:
hostbyte=DID_NO_CONNECT driverbyte=DRIVER_OK
[94702.898459] sd 2:0:4:10: [sdy] tag#2 CDB: Read(10) 28 00 00 00 08 a8 00 00 02 00
[94702.898462] blk_update_request: I/O error, dev sdy, sector 2216
Quoted 4 lines

Looked at all changes of fnic I found it caused by commit 1b6ac5e3f "fnic:
Using rport->dd_data to check rport online instead of rport_lookup.", a question is why changed state check from RPORT_ST_DELETE to RPORT_ST_READY here?

Satish?

Signature · 1 line
Martin K. Petersen	Oracle Linux Engineering