On Mon, 2012-12-10 at 01:21 -0800, Hiral Patel wrote: > The issue was observed when LUN Reset is issued through IOCTL or sg_reset > utility. > > fnic driver issues LUN RESET to firmware. On successful completion of device > reset, driver cleans up all the pending IOs that were issued prior to device > reset. These pending IOs are expected to be in ABTS_PENDING state. This works > fine, when the device reset operation resulted from midlayer, but not when > device reset was triggered from IOCTL path as the pending IOs were not in > ABTS_PENDING state. execution path hits panic if the pending IO is not in > ABTS_PENDING state. > > Changes: > The fix replaces BUG_ON check in fnic_clean_pending_aborts() with marking > pending IOs as ABTS_PENDING if they were not in ABTS_PENDING state and skips > if they were already in ABTS_PENDING state. An extra check is added to validate > the abort status of the commands after a delay of 2 * E_D_TOV using a > helper function. The helper function returns 1 if it finds any pending IO in > ABTS_PENDING state, belong to the LUN on which device reset was issued else 0. > With this, device reset operation returns success only if the helper funciton > returns 0, otherwise it returns failure. > > Other changes: > - Removed code in fnic_clean_pending_aborts() that returns failure if it finds > io_req NULL, instead of returning failure added code to continue with next io > - Added device reset flags for debugging in fnic_terminate_rport_io, > fnic_rport_exch_reset, and fnic_clean_pending_aborts > > Signed-off-by: Narsimhulu Musini <nmusini@xxxxxxxxx> > Signed-off-by: Hiral Patel <hiralpat@xxxxxxxxx> This one doesn't compile: drivers/scsi/fnic/fnic_scsi.c: In function ‘fnic_clean_pending_aborts’: drivers/scsi/fnic/fnic_scsi.c:1654:23: error: ‘FNIC_DEV_RST_ISSUED’ undeclared (first use in this function) drivers/scsi/fnic/fnic_scsi.c:1654:23: note: each undeclared identifier is reported only once for each function it appears in make[3]: *** [drivers/scsi/fnic/fnic_scsi.o] Error 1 And that's because FNIC_DEV_RST_ISSUED isn't #defined until PATCH 06/10 Please redo 05-10 this time making sure they compile in sequence in order to maintain bisectability Thanks, James -- To unsubscribe from this list: send the line "unsubscribe linux-scsi" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html