btrfs-progs: print fs features filtered by a mask

mkfs and convert will not support the same features, -O will print only
the list according to the given mask.

Signed-off-by: David Sterba <dsterba@suse.cz>
master
David Sterba 2015-03-23 19:49:51 +01:00
parent 7ea86ad282
commit 39b3d7c77a
3 changed files with 6 additions and 4 deletions

2
mkfs.c
View File

@ -1208,7 +1208,7 @@ int main(int ac, char **av)
}
free(orig);
if (features & BTRFS_FEATURE_LIST_ALL) {
btrfs_list_all_fs_features();
btrfs_list_all_fs_features(0);
exit(0);
}
break;

View File

@ -606,14 +606,16 @@ void btrfs_process_fs_features(u64 flags)
}
}
void btrfs_list_all_fs_features(void)
void btrfs_list_all_fs_features(u64 mask_disallowed)
{
int i;
fprintf(stderr, "Filesystem features available at mkfs time:\n");
fprintf(stderr, "Filesystem features available:\n");
for (i = 0; i < ARRAY_SIZE(mkfs_features) - 1; i++) {
char *is_default = "";
if (mkfs_features[i].flag & mask_disallowed)
continue;
if (mkfs_features[i].flag & BTRFS_MKFS_DEFAULT_FEATURES)
is_default = ", default";
fprintf(stderr, "%-20s- %s (0x%llx%s)\n",

View File

@ -85,7 +85,7 @@ void set_argv0(char **argv);
void units_set_mode(unsigned *units, unsigned mode);
void units_set_base(unsigned *units, unsigned base);
void btrfs_list_all_fs_features(void);
void btrfs_list_all_fs_features(u64 mask_disallowed);
char* btrfs_parse_fs_features(char *namelist, u64 *flags);
void btrfs_process_fs_features(u64 flags);