From owner-freebsd-scsi Thu Aug 22 21:40:12 2002 Delivered-To: freebsd-scsi@hub.freebsd.org Received: from mx1.FreeBSD.org (mx1.FreeBSD.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 1BB5E37B400 for ; Thu, 22 Aug 2002 21:40:08 -0700 (PDT) Received: from freefall.freebsd.org (freefall.FreeBSD.org [216.136.204.21]) by mx1.FreeBSD.org (Postfix) with ESMTP id C570743E6E for ; Thu, 22 Aug 2002 21:40:07 -0700 (PDT) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (gnats@localhost [127.0.0.1]) by freefall.freebsd.org (8.12.4/8.12.4) with ESMTP id g7N4e7JU060739 for ; Thu, 22 Aug 2002 21:40:07 -0700 (PDT) (envelope-from gnats@freefall.freebsd.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.12.4/8.12.4/Submit) id g7N4e72K060737; Thu, 22 Aug 2002 21:40:07 -0700 (PDT) Date: Thu, 22 Aug 2002 21:40:07 -0700 (PDT) Message-Id: <200208230440.g7N4e72K060737@freefall.freebsd.org> To: freebsd-scsi@FreeBSD.org Cc: From: "Kenneth D. Merry" Subject: Re: kern/15608: acd0 / cd0 give inconsistent errors on empty tray open() Reply-To: "Kenneth D. Merry" Sender: owner-freebsd-scsi@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.org The following reply was made to PR kern/15608; it has been noted by GNATS. From: "Kenneth D. Merry" To: Bruce Evans Cc: "M. Warner Losh" , johan@FreeBSD.ORG, nsayer@quack.kfu.com, freebsd-gnats-submit@FreeBSD.ORG, freebsd-scsi@FreeBSD.ORG, freebsd-standards@FreeBSD.ORG, sos@FreeBSD.ORG Subject: Re: kern/15608: acd0 / cd0 give inconsistent errors on empty tray open() Date: Thu, 22 Aug 2002 22:32:04 -0600 On Fri, Aug 23, 2002 at 12:41:28 +1000, Bruce Evans wrote: > On Thu, 22 Aug 2002, M. Warner Losh wrote: > > > In message: <20020822150931.A10866@panzer.kdm.org> > > "Kenneth D. Merry" writes: > > : So is there any opinion on -standards as to what sort of error we should > > : return on open if there is no media in a drive? > > > > EIO means "The device is there, but the driver had problems > > interacting with it" while ENXIO means "the device isn't there at > > all." As such, EIO is the more correct error to return in this case. > > No, EIO means that an input/output arror occurred. open.2 only documents > EIO for creating files. Otherwise open() normally doesn't do any i/o. > So ENXIO is the more correct error. Cool. > I think the bug is that the open doesn't succeed. The device is > reported as being there at boot time, and there is enough of it there > to tell which parts of it aren't there, so why not open() it so that > you do things like ioctl() on it to close its door and make it there? There is no ioctl in the interface for loading a CD. None of the other ioctls, I think, make much sense without media in the drive. The reason we need to do a read capacity in the open() routine, which is why the open fails when there is no media, is so we can fill in the d_secsize and d_secperunit fields in the disklabel. > > I don't know if the standards speak to this specific issue (no or bad > > media in a device with removable media). > > POSIX doesn't say anything much different from open.2 about this. > > Bruce Ken -- Kenneth Merry ken@kdm.org To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-scsi" in the body of the message