btrfs-progs: two staged filesystem creation
authorDavid Sterba <dsterba@suse.com>
Mon, 22 Aug 2016 14:32:24 +0000 (16:32 +0200)
committerDavid Sterba <dsterba@suse.com>
Wed, 24 Aug 2016 12:37:31 +0000 (14:37 +0200)
commit2ff04db5f4fbf28cf990804b4ed4ad2bd605e677
treeceec1a34bd9f49d2ede1c8cc9d9c8dcad1d50a40
parent974cfeeebb42b4911737876241c13dd12685b412
btrfs-progs: two staged filesystem creation

The filesystem existence on a device is manifested by the signature,
during the mkfs process we write it first and then create other
structures. Such filesystem is not valid and should not be registered
during device scan nor listed among devices from blkid.

This patch will introduce two staged creation. In the first phase, the
signature is wrong, but recognized as a partially created filesystem (by
open or scan helpers). Once we successfully create and write everything,
we fixup the signature. At this point automated scanning should find
a valid filesystem on all devices.

We can also rely on the partially created filesystem to do better error
handling during creation. We can just bail out and do not need to clean
up.

The partial signature is '!BHRfS_M', can be shown by

  btrfs inspect-internal dump-super -F image

Reviewed-by: Anand Jain <anand.jain@oracle.com>
Signed-off-by: David Sterba <dsterba@suse.com>
btrfs-convert.c
ctree.h
disk-io.c
disk-io.h
mkfs.c
utils.c