From 14f9565c11828841274c516c71d11ab6a9e2fe58 Mon Sep 17 00:00:00 2001 From: David Sterba Date: Thu, 26 Jan 2017 13:13:36 +0100 Subject: btrfs-progs: move fs features declarations to own header from utils Signed-off-by: David Sterba --- fsfeatures.h | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 fsfeatures.h (limited to 'fsfeatures.h') diff --git a/fsfeatures.h b/fsfeatures.h new file mode 100644 index 00000000..513ed1e7 --- /dev/null +++ b/fsfeatures.h @@ -0,0 +1,50 @@ +/* + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public + * License v2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 021110-1307, USA. + */ + +#ifndef __BTRFS_FSFEATURES_H__ +#define __BTRFS_FSFEATURES_H__ + +#include "kerncompat.h" + +#define BTRFS_MKFS_DEFAULT_NODE_SIZE SZ_16K +#define BTRFS_MKFS_DEFAULT_FEATURES \ + (BTRFS_FEATURE_INCOMPAT_EXTENDED_IREF \ + | BTRFS_FEATURE_INCOMPAT_SKINNY_METADATA) + +/* + * Avoid multi-device features (RAID56) and mixed block groups + */ +#define BTRFS_CONVERT_ALLOWED_FEATURES \ + (BTRFS_FEATURE_INCOMPAT_MIXED_BACKREF \ + | BTRFS_FEATURE_INCOMPAT_DEFAULT_SUBVOL \ + | BTRFS_FEATURE_INCOMPAT_COMPRESS_LZO \ + | BTRFS_FEATURE_INCOMPAT_COMPRESS_LZOv2 \ + | BTRFS_FEATURE_INCOMPAT_BIG_METADATA \ + | BTRFS_FEATURE_INCOMPAT_EXTENDED_IREF \ + | BTRFS_FEATURE_INCOMPAT_SKINNY_METADATA \ + | BTRFS_FEATURE_INCOMPAT_NO_HOLES) + +#define BTRFS_FEATURE_LIST_ALL (1ULL << 63) + +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); +void btrfs_parse_features_to_string(char *buf, u64 flags); +void print_kernel_version(FILE *stream, u32 version); +u32 get_running_kernel_version(void); +int btrfs_check_nodesize(u32 nodesize, u32 sectorsize, u64 features); + +#endif -- cgit v1.2.3