Thread (12 messages) flat view 12 messages, 4 authors, 2017-03-30

Re: RFC: reject unknown open flags

From: Linus Torvalds <hidden>
Date: 2017-03-30 18:45:34
Also in: linux-fsdevel, lkml

On Thu, Mar 30, 2017 at 11:26 AM, Christoph Hellwig [off-list ref] wrote:
That would be nice, but still won't work as we blindly copy f_flags
into F_GETFL, not even masking our internal FMODE_ bits.
Ok, *that* is just silly of us, and we could try to just fix, and even backport.

There's no possible valid use I could see where that should break
(famous last words - user code does some damn odd things at times).

Of course, that won't fix old kernels that are out there, but then
neither would your original patch...

Side note: I think you *can* detect the O_ATOMIC support by using
F_SETFL, because F_SETFL only allows you to change flags that we
recognize. So somebody who really wants to *guarantee* that O_ATOMIC
is there and honored even with old kernels could presumable do
something like

   fd = open(..); // *no* O_ATOMIC
   fcnt(fd, F_SETFL, O_ATOMIC);
   if (fcnt(fd, F_GETFL, NULL) & O_ATOMIC)
        // Yay! We actually got it
   else
        // I guess we need to fall back on old behavior

although I agree that that is ridiculously inconvenient and not a
great thing, and it's worth trying to aim for some better model.

                    Linus
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help