From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andrew Price Date: Tue, 9 Apr 2019 13:18:12 +0100 Subject: [Cluster-devel] [PATCH] libgfs2: Import gfs2_ondisk.h In-Reply-To: <20190409120304.GA16296@infradead.org> References: <20190409094153.3343-1-anprice@redhat.com> <20190409120304.GA16296@infradead.org> Message-ID: List-Id: To: cluster-devel.redhat.com MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit 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_ 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