On Mon, Jun 17, 2019 at 4:45 AM Florian Weimer <fweimer@xxxxxxxxxx> wrote: > > I wanted to introduce a new header, <asm/kernel_long_t.h>, and include > it where the definition of __kernel_long_t is needed, something like > this (incomplete, untested): So this doesn't look interesting to me: __kernel_long_t is neither interesting as a type anyway (it's just a way for user space to override "long"), nor is it a namespace violation. So honestly, user space could do whatever it wants for __kernel_long_t anyway. The thing that I think we should try to fix is just the "val[]" thing, ie > A different approach would rename <asm/posix_types.h> to something more > basic, exclude the two structs, and move all internal #includes which do > need the structs to the new header. In fact, I wouldn't even rename <posix_types.h> at all, I'd just make sure it's namespace-clean. I _think_ the only thing causing problems is '__kernel_fsid_t' due to that "val[]" thing, so just remove ity entirely, and add it to <statfs.h> instead. And yeah, then we'd need to maybe make sure that the (couple) of __kernel_fsid_t users properly include that statfs.h file. Hmm? Linus