Out of openat flag space
Kernel Apprentice
kernelapprentice at gmail.com
Wed Apr 8 04:00:15 EDT 2015
Hello,
> Hello,
>
> Now that we have O_TMPFILE and O_BENEATH added to the openat flags, there
> is no space left to add more flags since the flags variable is a 32 bit
> int. How does one resolve this issue and extend this? A new syscall with a
> 64bit wide flags support?
Maybe I'm missing something, but a signed 32 bit integer variable holds
a maximum value of
2,147,483,647
The highest value for the O_BENEATH flag that i could spot in the patch
you linked is
0x4000000
which equals
67,108,864
so there should be plenty of room for more flags?
If the limit would be reached though I guess one could adjust the flag
arguments to unsigned int types. I haven't reasearched the implications
of this though. But OR'ing them for checks shouldn't yield any side effects.
By the way there's - as far as I can tell - an invalid flag value
defined in octal notation:
diff --git a/arch/parisc/include/uapi/asm/fcntl.h
b/arch/parisc/include/uapi/asm/fcntl.h
index 34a46cbc76ed..3adadf72f929 100644
--- a/arch/parisc/include/uapi/asm/fcntl.h
+++ b/arch/parisc/include/uapi/asm/fcntl.h
@@ -21,6 +21,7 @@
#define O_PATH 020000000
#define __O_TMPFILE 040000000
+#define O_BENEATH 080000000 /* no / or .. in openat path */
#define F_GETLK64 8
#define F_SETLK64 9
I guess this should be 0100000000?
>
> http://www.spinics.net/lists/fstests/msg01064.html
>
> Thanks
>
> David
>
>
>
> _______________________________________________
> Kernelnewbies mailing list
> Kernelnewbies at kernelnewbies.org
> http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies
>
More information about the Kernelnewbies
mailing list