On Tue, Dec 7, 2021 at 7:17 PM Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx> wrote: > > On Tue, Dec 7, 2021 at 7:10 AM Arnd Bergmann <arnd@xxxxxxxxxx> wrote: > > > > From: Arnd Bergmann <arnd@xxxxxxxx> > > > > Working towards a cleaner header structure, start by moving the most > > commonly embedded structures into a single header file that itself > > has only a minimum set of indirect includes. At this moment, this > > include structures for > > Ugh. I liked your 1/3 patch, but I absolutely detest this one. > > It makes no sense to me, and just makes that header file a completely > random collection of some random structure types. > > And I absolutely hate how it splits out the definition of the struct > from basic core infrastructure (initializers etc random inline > functions) for said structures. > > So no. NAK on this one. I think it's a disaster. Ok, thank you for taking a look! Here is what I'd try next based on the feedback: - reduce patch 1 somewhat to only include the types that have a strong reason to get moved to linux/types.h, describing them individually but leaving them it as a single combined patch - keep patch 3, but leave 'struct super_block' in linux/fs.h for the moment because of 'struct list_lru'. - drop patch 2, but instead find a new home for each structure (along with its initializers) if needed for defining the types in the new linux/fs_types.h without too many indirect includes. I'll skip the structs that would be needed later for mm.h/sched.h/device.h/.... for the moment. For the added headers, do you have a preference for whether to try grouping them logically or not? I could either split them out individually into many new headers (xarray_types.h, idr_types.h, percpu_rwsem_types.h, rwsem_types.h, ...), or combine some of them when they define related types. Arnd