Btrfs-progs: do not run ioctl in check_mounted

Signed-off-by: Wang Shilong <wangsl.fnst@cn.fujitsu.com>
Btrfs-progs: pass arg to decide whether run ioctls in btrfs_scan_fs_devices()

When we are trying to recover supers, we should not run iotctl in
btrfs_scan_fs_devices()

Signed-off-by: Wang Shilong <wangsl.fnst@cn.fujitsu.com>
Btrfs-progs: add btrfs-recover-superblock to recover bad supers

Until now if one of device's first superblock is corrupt,
btrfs will fail to mount. Luckily, btrfs have at least two
superblocks for every disk.

In theory, if silent corrupting happens when we are writting
superblocks into disk. we must hold at leat one good superblock.

This little program will try to correct bad superblocks from
good superblocks with max generation.

Signed-off-by: Wang Shilong <wangsl.fnst@cn.fujitsu.com>