Messages in this thread | | | From | Andrey Borzenkov <> | Subject | Re: 2.6.1: media change check fails for busy unplugged device | Date | Mon, 26 Jan 2004 22:16:42 +0300 |
| |
On Tuesday 20 January 2004 02:36, Mike Anderson wrote: > Andrey Borzenkov [arvidjaar@mail.ru] wrote: > > If we unplug busy device (consider mounted USB stick) media change check > > always returns true (no media change happened). It happens because > > > > - device state is set to SDEV_DEL and scsi_prep_fn silently kills any > > request including TEST_UNIT_READY sent by sd_media_changed without > > propagating any information back to caller > > The silently kill would appear to be the issue. The addition of any > number of additional checks prior to calling scsi_ioctl would not ensure > that as soon as the last check is done the device state has not changed. >
But why sdev->online remains set after device has been deleted? It is definitely cannot accept any command after that point?
Is it possible to clear sdev->online in scsi_remove_device? That would solve the problem.
thank you
-andrey
> We need a change in scsi_wait_req to differentiate that we where not woken > up from scsi_wait_done, but from end_that_request_last. > > One way would be to check if rq_status == RQ_SCSI_DONE. I did not see > anything on the request to indicate it was BLKPREP_KILL'd. > > James has worked more on the scsi_prep_fn so maybe he has another > suggestion. > > -andmike > -- > Michael Anderson > andmike@us.ibm.com
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |