libext2fs: revamp bitmap types to fix LTO warnings

We play games with pointers to incomplete types to handle subclassing
using the C language, use the first four bytes (the magic number)
field to disambiguate between different subclasses.  The way we were
doing it before, we relied defining the structure differently
depending on the C file implementing different backend subclasses.

This triggers LTO warnings, since it appears (and in fact, we are)
using functions defined with different types than how they were
defined by calling C file.

Fix the LTO warnings by using an explicit base bitmap structure, and
then casting it to the 32-bit or 64-bit variant as needed.

Signed-off-by: Theodore Ts'o <tytso@mit.edu>
7 files changed