Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 05 Apr 2011 16:19:35 +0300
From:      Andriy Gapon <avg@FreeBSD.org>
To:        FreeBSD Arch <freebsd-arch@FreeBSD.org>, FreeBSD Hackers <freebsd-hackers@FreeBSD.org>
Cc:        freebsd-scsi@FreeBSD.org
Subject:   Re: looking for error codes
Message-ID:  <4D9B16E7.2070208@FreeBSD.org>
In-Reply-To: <4D95E162.40605@FreeBSD.org>
References:  <4D95E162.40605@FreeBSD.org>

next in thread | previous in thread | raw e-mail | index | archive | help
on 01/04/2011 17:29 Andriy Gapon said the following:
> 
> I am looking for error codes that would unambiguously signal that a disk drive has
> readonly or write-protected media and that disk drive has no media at the moment.
> I foresee these error codes being used mostly between disk peripheral drivers and
> filesystem drivers.
> 
> I will appreciate your suggestions.
> 
> P.S.
> I see that Linux uses EROFS and ENOMEDIUM for these purposes.
> I am not sure about EROFS in this role.
> And we don't have ENOMEDIUM (nor EMEDIUMTYPE).

Thanks for all the error code suggestions so far :-)

It seems that ENODEV could be a good choice for signaling readonly or
write-protected media on write access:
19 ENODEV Operation not supported by device.  An attempt was made to
        apply an inappropriate function to a device, for example, trying
        to read a write-only device such as a printer.

BTW, SCSI code currently maps that condition to EACCES, but I don't think that
that is the best choice - the error could be also produced by
"permissions-related" checks.  E.g. from intro(2):
13 EACCES Permission denied.  An attempt was made to access a file in a
        way forbidden by its file access permissions.

As for the ENOMEDIUM, I don't think that adding a distinct error code here would
provide any new useful abilities.  So, ENXIO should still be a good option.

-- 
Andriy Gapon



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?4D9B16E7.2070208>