Re: [PATCH v3] xfsprogs: blkid is now mandatory

Jan Tulak
2015-08-06T13:14:33Z

----- Original Message -----
> From: "Eric Sandeen" <sandeen@sandeen.net>
> > Signature detection (if I understand you correctly 'signature of existing
> > FS') could be really disabled, I think. That would take care of
> > check_overwrite(). However, blkid is also used in get_topology. That one
> > calls blkid_get_topology, which uses blkid's functions for finding out
> > sector and io sizes.
>
> Well, it would be sane to default to 512 sectors; if that fails it'll
> be obvious fairly quickly, and the user can always use the command line
> to specify 4k sectors (or stripe alignment, etc) manually.
>
> > What I really can do is to say "on osx, you can mkfs only files," and cut
>
> bleah! ;)
>
> > out the blkid parts. But it limits the usage on OS X even further.
> > Although, the removed code for non-blkid systems used platform_findsizes
> > as fallback. Are there some ugly, terrible monsters who would jump from
> > under the bed when doing that?
>
> Well, the old findsizes was there for this reason, but now it's gone ;)

platform_findsizes is still there, in the "is file" branch. Small ifdef can
put it instead of blkid...

>
> > However, this patch affects only mkfs. It still should be possible to use
> > xfs_db and xfs_repair even on block devices.
>
> I don't know how invasive it'd be, but I think in the absence of blkid,
> we should still work, but lose signature detection, and fall back to geometry
> defaults.

It looks like it works. Though I need to do some testing before I send the patch.
Unfortunately, making FS tests without the ability to mount it on the machine
requires USB drive shuffling and it is hard to automate it... :-)

What I think about is whether to write some warning in autoconf. Because it is
easy to forget to install libblkid-dev package on linux and with this patch,
it chancan change the behaviour unexpectedly when using autoconf for blkid
detection.

Or maybe I could require blkid by default, and disable it with an argument
like LOCAL_CONFIGURE_OPTIONS="--enable-blkid=no".

I think the config option is a better way - it can't happen you disable it just
because you forget to install a package.

Cheers,
Jan

--
Jan Tulak
jtulak@redhat.com