On Thu, 8 Jun 2006, James Bottomley wrote: > On Tue, 2006-06-06 at 11:26 -0400, Alan Stern wrote: > > When the block layer checks for new media in a drive, it uses a two-step > > procedure: First it checks for media change and then it revalidates the > > disk. When no medium is present the second step fails. > > > > However some drivers (such as the SCSI disk driver) are capable of > > detecting medium-not-present as part of the media-changed check. Doing so > > will reduce by a factor of 2 or more the amount of work done by tasks > > which, like hald, constantly poll empty drives. > > > > This patch (as694) changes the block layer core to make it recognize a > > -ENOMEDIUM error return from the media_changed method. A follow-on patch > > makes the sd driver return this code when no medium is present. > > I'm not sure there's enough buy in to make this change yet ... our media > change handling is incredibly (and quite possibly far too) complex. > > As documented in Documentation/cdrom/cdrom-standard.tex, the return > codes for media change are either 0 or 1. I can change the documentation, if necessary. On the other hand, I don't want to embark on a global alteration of the media-change handling throughout the entire kernel! :-) > Personally, I can't see a problem with overloading the true return to > have more information that the error codes provide, but before we do > this we need the buy in of the cdrom layer, since that's where this > handling came from, and we need to update the documents to reflect the > new behaviour ... someone also needs to consider what changes should be > made in the cdrom layer for this (and whether this is actually the > correct way to do this from the point of view of CDs). Agreed. That's why I cc'ed Jens. Is there anyone else I should also ask about this change? Alan Stern - : 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