libblkid: Detect external XFS log device

Detects external XFS log devices with a minimum size of 10MB.  It's possible to
craft a smaller log, but that would be very unlikely; it'd require a small XFS
filesystem and an intentionally small log, which would defeat the performance
goal of an external log in the first place.

[kzak@redhat.com: - use UUID_LOG variable name for the log uuid]

Signed-off-by: Eric Sandeen <sandeen@redhat.com>
Signed-off-by: Karel Zak <kzak@redhat.com>
libblkid: rename UUID_LOG to LOGUUID

 * the goal is to make the uuid visible and usable it as mount
   variable/spec, then LOGUUID= seems better than UUID_LOG=

 * we already have PARTUUID=

 * the UUID_RAW and UUID_SUB are not used by mount(8)

Signed-off-by: Karel Zak <kzak@redhat.com>
libblkid: populate jbd LOGUUID in addition to UUID

The LOGUUID is alias for UUID, this alias is necessary to standardize
the tag name (we want to use the same tag LOGUUID= for all external
logs on all filesystems).

Note that for another filesystems (e.g. xfs) we have to differentiate
between the journal and filesystem uuids to avoid collisions, because
both devices use the same uuid.

Signed-off-by: Karel Zak <kzak@redhat.com>
libblkid: diffs between errors and failed probing in silicon raid

Signed-off-by: Karel Zak <kzak@redhat.com>
libblkid: diffs between errors and failed probing in via raid

Signed-off-by: Karel Zak <kzak@redhat.com>
libblkid: don't interpret regual XFS as external xfs log

 $ blkid -o udev -p tests/output/blkid/images-fs/xfs.img
 ID_FS_AMBIVALENT=filesystem:xfs other:xfs_external_log

it seems that regular XFS with internal log may be interpreted as log
device. This is incorrect.

This patch checks for XFS magic string to avoid this collision.

Signed-off-by: Karel Zak <kzak@redhat.com>
libblkid: don't use UUID= for xfs external log

The log UUID is usually the same as filesystem UUID, it is bad idea to
have two devices with the same UUID in the system. It seems batter to
use only LOGUUID= for xfs external log.

 # mkfs.xfs -l logdev=/dev/sdb1 /dev/sdb2

 # blkid -p -o udev /dev/sdb1 | grep FS
 ID_FS_LOGUUID=4063d453-5c01-46ce-b92f-9523d64aecc7
 ID_FS_TYPE=xfs_external_log
 ID_FS_USAGE=other

 # blkid -p -o udev /dev/sdb2 | grep FS
 ID_FS_UUID=4063d453-5c01-46ce-b92f-9523d64aecc7
 ID_FS_TYPE=xfs
 ID_FS_USAGE=filesystem

The filesystem (sdb2) uses UUID= and log (sdb1) uses LOGUUID=.

Signed-off-by: Karel Zak <kzak@redhat.com>
tests: add XFS log image

Signed-off-by: Karel Zak <kzak@redhat.com>
tests: refresh jbd blkid test

Signed-off-by: Karel Zak <kzak@redhat.com>
tests: use stable MBR ID

Signed-off-by: Karel Zak <kzak@redhat.com>
libblkid: use separate function to verify checksums

 * consolidate "incorrect checksum" debug messages
 * verify all on one place

Based on patch from Gabriel de Perthuis <g2p.code@gmail.com>

Signed-off-by: Karel Zak <kzak@redhat.com>
wipefs: Also wipe superblocks with bad checksums

[kzak@redhat.com: - move BLKID_SUBLKS_BADCSUM login to
                    blkid_probe_verify_csum()]

Signed-off-by: Gabriel de Perthuis <g2p.code@gmail.com>
Signed-off-by: Karel Zak <kzak@redhat.com>
lib: add crc64()

Based on bcache code from Rolf Fokkens.

Signed-off-by: Karel Zak <kzak@redhat.com>
libblkid: Add bcache support

From https://bugzilla.redhat.com/show_bug.cgi?id=1001120#c11

[kzak@redhat.com: - move crc64 code to lib/ by separate patch,
                  - use BLKID_USAGE_OTHER rather than _RAID]

Signed-off-by: Karel Zak <kzak@redhat.com>
tests: add bcache images

 images generated by Rolf Fokkens <rolf@rolffokkens.nl>

Signed-off-by: Karel Zak <kzak@redhat.com>
libblkid: export info about bad csum

If a bad check sum is detected and BLKID_SUBLKS_BADCSUM is enabled
than SBBADCSUM=1 is added to the probing result.

Signed-off-by: Karel Zak <kzak@redhat.com>
agetty: only use EXTA/EXTB macros if B19200/B38400 macros are not present
agetty: add baud rates available from glibc that are not already supported

This adds userspace support for baud rates reater than 230400, provided the tty
also supports it.
tests: lscpu: add CPU max MHz to test results

Commit 44320710bdb98a3036e8297d0e0af043fb72d702 changed default output.

Signed-off-by: Sami Kerola <kerolasa@iki.fi>
rev: fix new line regression

Commit 4b4eb34004378fe70259acd8f2f859e7b5cc3726 made output incorrect for
input lines that does not have new line.  For example

$ printf "a b c\n1 2 3" | rev
c b a
 2 13

Signed-off-by: Sami Kerola <kerolasa@iki.fi>