On 09/04/2019 13:03, Christoph Hellwig wrote:
On Tue, Apr 09, 2019 at 10:41:53AM +0100, Andrew Price wrote:
Give gfs2-utils its own copy of gfs2_ondisk.h which uses userspace
types. This allows us to always support the latest ondisk structures and
obsoletes a lot of #ifdef GFS2_HAS_<FEATURE> blocks and configure.ac
checks.

gfs2_ondisk.h was changed simply by search-and-replace of the kernel int
types with the uintN_t, i.e.:

:%s/__u\(8\|16\|32\|64\)/uint\1_t/g
:%s/__be\(64\|32\|16\|8\)/uint\1_t/g

and the linux/types.h include replaced with stdint.h

Why?

Because I'd like to be able to build gfs2-utils on FreeBSD one day. Plus we get the handy stuff in inttypes.h to use, Linux doesn't have that.

At least the be types give you really useful type checking with
sparse, which can be trivially wired up in userspace as well.

If you mean the bitwise annotations that only sparse checks, we're fairly safe in gfs2-utils in that anything represented by a struct is going to have been parsed through one of the libgfs2/ondisk.c functions so will be the right endianness. I run sparse over this code very rarely anyway.

Also
keeping the file 1:1 the same is going to make your life much easier
in the future..

It's really no difficulty to run the above substitutions the next time the file changes, but gfs2_ondisk.h changes once in a blue moon anyway so the maintenance overhead is going to be tiny.

Andy

Reply via email to