On Sat, Jan 18, 2020 at 11:07:58PM +1100, Aleksa Sarai wrote: > Patch changelog: > v3: > * Merge changes into the original patches to make Al's life easier. > [Al Viro] > v2: > * Add include <linux/types.h> to openat2.h. [Florian Weimer] > * Move OPEN_HOW_SIZE_* constants out of UAPI. [Florian Weimer] > * Switch from __aligned_u64 to __u64 since it isn't necessary. > [David Laight] > v1: <https://lore.kernel.org/lkml/20191219105533.12508-1-cyphar@xxxxxxxxxx/> > > While openat2(2) is still not yet in Linus's tree, we can take this > opportunity to iron out some small warts that weren't noticed earlier: > > * A fix was suggested by Florian Weimer, to separate the openat2 > definitions so glibc can use the header directly. I've put the > maintainership under VFS but let me know if you'd prefer it belong > ot the fcntl folks. > > * Having heterogenous field sizes in an extensible struct results in > "padding hole" problems when adding new fields (in addition the > correct error to use for non-zero padding isn't entirely clear ). > The simplest solution is to just copy clone(3)'s model -- always use > u64s. It will waste a little more space in the struct, but it > removes a possible future headache. > > This patch is intended to replace the corresponding patches in Al's > #work.openat2 tree (and *will not* apply on Linus' tree). > > @Al: I will send some additional patches later, but they will require > proper design review since they're ABI-related features (namely, > adding a way to check what features a syscall supports as I > outlined in my talk here[1]). #work.openat2 updated, #for-next rebuilt and force-pushed. There's a massive update of #work.namei as well, also pushed out; not in #for-next yet, will post the patch series for review later today.