On Fri, 02 Jan 2009, James Bottomley wrote: > On Tue, 2008-12-16 at 23:55 -0600, michaelc@xxxxxxxxxxx wrote: > > From: Mike Christie <michaelc@xxxxxxxxxxx> > > > > This patch fixes a regression in scsi-misc introduced with: > > 312efe5efcdb02d604ea37a41d965f32ca276d6a > > [SCSI] simplify scsi_io_completion(). > > > > The problem is that in previous kernels scsi_io_completion would call > > scsi_requeue_command, but now it can call scsi_queue_insert for > > something like a UNIT_ATTENTION (for netapp targets we get > > UNIT_ATTENTION when restarting a iscsi session). And scsi_queue_insert > > will call scsi_device_unbusy, but in the scsi_io_completion code path > > scsi_finish_command has already called this so we now end up > > with invalid host, target and device busy values. > > > > Patch was made over scsi-misc. > > This is a bad bug, but not quite the way I'd like to fix it. Whether > the queue should be unbusied or not is really separate from the block > action, so it should have its own flag (plus it's not really a flag many > people should be using). Since, really, the wrong use is confined to > the defining file, how about this: Hmm, with this patch I'm still running into the problems I described here: http://article.gmane.org/gmane.linux.scsi/47029 basically, I/Os returned with a DID_RESET status are being requeued in an incomplete state: [ 2362.068342] scsi(5:0:13): OVERRUN status detected 0x7-0x400 [ 2362.068345] CDB: 0x2a 0x0 0x0 0x0 0xe 0x70 [ 2362.068347] PID=0x81eeb req=0x0 xtra=0x1c00 -- returning DID_ERROR status! [ 2362.068411] scsi(5:0:13): OVERRUN status detected 0x7-0x400 [ 2362.068413] CDB: 0x2a 0x0 0x0 0x0 0xe 0x70 [ 2362.068415] PID=0x81eec req=0x0 xtra=0x1c00 -- returning DID_ERROR status! :( Thoughts? -- 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