hexdump: do not segfault when iterating over an empty format string

Signed-off-by: Ondrej Oprala <ooprala@redhat.com>
libblkid: add support for btrfs backup superblock

Btrfs has three superblock. The first one is placed at 64KB, the second one at
64MB, the third one at 256GB.

If the first superblock is valid except that the "magic field" is zeroed, btrfs
skips the check of the other superblocks.  If the first superblock is fully
invalid, btrfs checks for the other superblock.

So zeroing the first superblock "magic field" at the beginning seems that the
filesystem is wiped. But when the first superblock is overwritten (eg by
another filesystem), then the other two superblock may be considered valid, and
the filesystem may resurrect.

This patch allow to find and wipe the other btrfs superblocks signature.

Signed-off-by: Karel Zak <kzak@redhat.com>
build-sys: add files to distribution

To fix 'make distcheck' compilation.  The fdisks/Makemodule.am has one
new entry 'dos_part_types.h', the rest is about sorting the list.

Signed-off-by: Sami Kerola <kerolasa@iki.fi>
build-sys: ignore chkdupexe

Signed-off-by: Sami Kerola <kerolasa@iki.fi>
build-sys: cleanup --enable-most-builds list

Signed-off-by: Sami Kerola <kerolasa@iki.fi>
libblkid: make btrfs magics more readable

Signed-off-by: Karel Zak <kzak@redhat.com>
libmount: fix regression test helper

Signed-off-by: Ondrej Oprala <ondrej.oprala@gmail.com>
Signed-off-by: Karel Zak <kzak@redhat.com>
libmount: read optional mountinfo fields

[kzak@redhat.com: - rename struct member and functions from
                    "propagation" to "optional fields"
                  - split the original patch
                  - fix parser]

Signed-off-by: Ondrej Oprala <ondrej.oprala@gmail.com>
Signed-off-by: Karel Zak <kzak@redhat.com>
findmnt: add OPT-FIELDS column

Signed-off-by: Karel Zak <kzak@redhat.com>
findmnt: add ID column

Signed-off-by: Karel Zak <kzak@redhat.com>
libmount: add mnt_fs_get_propagation()

Signed-off-by: Karel Zak <kzak@redhat.com>
findmnt: add PROPAGATION column

Signed-off-by: Karel Zak <kzak@redhat.com>
findmnt: make --target usable with bind mounts

The --target <non-mount-point> functionality should be enabled only if
previous regular search found nothing to avoid collisions with bind
mounts, because to detect mountpoint we use traditional child / parent
stat.st_dev comparison which does not work for bind mounts (--bind /A
/A).

Signed-off-by: Karel Zak <kzak@redhat.com>
kill: add note about threads to the man page

Addresses: http://bugzilla.redhat.com/show_bug.cgi?id=846790
Signed-off-by: Karel Zak <kzak@redhat.com>
libmount: allow to use propagation flags in fstab

Linux kernel does not allow to change more than one propagation flag
by one mount(2) syscall. The flags also cannot be mixed with another
mount options. It means that the propagation flags cannot be stored in
/etc/fstab, manual "mount --make-* <mountpoint>" is always necessary
after successful mount. Painful...

This patch implements additional mount(2) after previous successful
mount(2) (or exec /sbin/mount.<type>).

For example:

  mount /dev/sda1 /A -o private,unbindable,ro

or fstab entry:

  /dev/sda1   /A  auto  ro,private,unbindable

is implemented by three mount(2) calls:

	- 1st mounts /dev/sda1 with MS_RDONLY
	- 2nd sets MS_PRIVATE flag
        - 3rd sets MS_UNBINDABLE flag.

It's the same as as to manually call:

  mount /dev/sda1 /A -o ro
  mount --make-private /A
  mount --make-unbindable /A

This solution is not atomic, and umount(2) is not called if
propagation flags are not successfully applied, only error is
returned.

This change does not affect libmount API, so one beautiful day when
mount(2) syscall will be improved we can drop this nasty patch.

Signed-off-by: Karel Zak <kzak@redhat.com>
mount: support multiple MS_PROPAGATION flags in one mount(8) exec

Signed-off-by: Karel Zak <kzak@redhat.com>
tests: add/improve mount shared-subtree tests

Signed-off-by: Karel Zak <kzak@redhat.com>
mount: write success messages to stdout

Signed-off-by: Karel Zak <kzak@redhat.com>
libmount: keep MS_PROPAGATION flags in mnt_context_set_mflags() result

Signed-off-by: Karel Zak <kzak@redhat.com>
mount: make --verbose more verbose about propagation

Signed-off-by: Karel Zak <kzak@redhat.com>