btrfs-progs: mkfs: Fix wrong file type for dir items and indexes when specifying...
authorQu Wenruo <quwenruo.btrfs@gmx.com>
Mon, 4 Sep 2017 03:43:19 +0000 (12:43 +0900)
committerDavid Sterba <dsterba@suse.com>
Fri, 8 Sep 2017 14:15:05 +0000 (16:15 +0200)
commit081e4e9bb83283a7fa38c13da589e103f01e5f7d
tree0ccb66418ccbed9ca283d14489bd4725536ab905
parent944e14da14af9e292c7fbd7a006bb4b556ac6766
btrfs-progs: mkfs: Fix wrong file type for dir items and indexes when specifying root directory

[Bug]
If using mkfs.btrfs with "-r" parameter and specified directory has
fifo/socket/char/block special file, then created filesystem can't pass
fsck:

------
checking fs roots
unresolved ref dir 241158 index 3 namelen 9 name S.dirmngr filetype 0 errors 80, filetype mismatch
ERROR: errors found in fs roots
------

[Reason]
Btrfs dir items/indexes records inode type, while "-r" only handles
directories, regular files and symlink, it makes such special files type
to be regular file and caused the problem.

[Fix]
Add missing types for add_directory_items(), so that result of
"mkfs.btrfs -r" can pass mkfs.

Signed-off-by: Qu Wenruo <quwenruo.btrfs@gmx.com>
Signed-off-by: David Sterba <dsterba@suse.com>
mkfs/main.c