lkml.org 
[lkml]   [2008]   [May]   [21]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
SubjectRe: [RFC] correct flags to f_mode conversion in __dentry_open
From
Christoph Hellwig wrote:
> On Sat, Mar 15, 2008 at 05:59:52PM -0400, Alan Cox wrote:
>>> does 11 really mean and should it really always be mapped to (FMODE_READ
>>> | FMODE_WRITE) or should it continue to get mapped to 'no permission?'
>> We've always mapped 3 to "no permission" to read or write. It's a linuxism
>
> I've tripped over this recently aswell. It would for sure be useful
> to add a sumbolic O_FOO constant for this magic value '3' and document
> it in the manpage.

Late follow-up to this thread
(http://thread.gmane.org/gmane.linux.kernel/653123):
I propose to add the following text to the open(2) man page.

Unlike the other values that can be specified in flags,
the access mode values O_RDONLY, O_WRONLY, and O_RDWR, do
not specify individual bits. Rather, they define the low
order two bits of flags, and are defined respectively as
0, 1, and 2. In other words, the combination O_RDONLY |
O_WRONLY is a logical error, and certainly does not have
the same meaning as O_RDWR. Linux reserves the special,
non-standard access mode 3 (binary 11) in flags to mean:
check for read and write permission on the file and
return a descriptor that can't be used for reading or
writing. This non-standard access mode is used by some
Linux drivers to return a descriptor that is only to be
used for device-specific ioctl(2) operations.

Seem okay?

Cheers,

Michael

--
Michael Kerrisk
Linux man-pages maintainer; http://www.kernel.org/doc/man-pages/
Found a bug? http://www.kernel.org/doc/man-pages/reporting_bugs.html



\
 
 \ /
  Last update: 2008-05-21 19:57    [W:0.069 / U:0.252 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site