diff options
author | Dimitri John Ledkov <dimitri.j.ledkov@linux.intel.com> | 2015-08-30 00:19:30 +0100 |
---|---|---|
committer | Dimitri John Ledkov <dimitri.j.ledkov@linux.intel.com> | 2015-08-30 00:25:33 +0100 |
commit | aeb9dfe76e4f258530a96e0f0706d74b8ddc908f (patch) | |
tree | ebc1cdf1b7ece2d44d0e6c525f087cdfdbc360b1 /utils.h | |
parent | be43ab4aba187cb2848f1b8d91977d7acdcafad5 (diff) |
New upstream release.debian/4.1.2-1
Diffstat (limited to 'utils.h')
-rw-r--r-- | utils.h | 49 |
1 files changed, 36 insertions, 13 deletions
@@ -30,6 +30,19 @@ (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) #define BTRFS_SCAN_MOUNTED (1ULL << 0) @@ -56,6 +69,8 @@ #define GETOPT_VAL_GBYTES 262 #define GETOPT_VAL_TBYTES 263 +#define GETOPT_VAL_HELP 270 + int check_argc_exact(int nargs, int expected); int check_argc_min(int nargs, int expected); int check_argc_max(int nargs, int expected); @@ -88,10 +103,20 @@ void units_set_base(unsigned *units, unsigned base); 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); - -int make_btrfs(int fd, const char *device, const char *label, - char *fs_uuid, u64 blocks[6], u64 num_bytes, u32 nodesize, - u32 sectorsize, u32 stripesize, u64 features); +void btrfs_parse_features_to_string(char *buf, u64 flags); + +struct btrfs_mkfs_config { + char *label; + char *fs_uuid; + u64 blocks[8]; + u64 num_bytes; + u32 nodesize; + u32 sectorsize; + u32 stripesize; + u64 features; +}; + +int make_btrfs(int fd, struct btrfs_mkfs_config *cfg); int btrfs_make_root_dir(struct btrfs_trans_handle *trans, struct btrfs_root *root, u64 objectid); int btrfs_prepare_device(int fd, char *file, int zero_end, u64 *block_count_ret, @@ -113,18 +138,13 @@ int btrfs_device_already_in_root(struct btrfs_root *root, int fd, int pretty_size_snprintf(u64 size, char *str, size_t str_bytes, unsigned unit_mode); #define pretty_size(size) pretty_size_mode(size, UNITS_DEFAULT) -#define pretty_size_mode(size, mode) \ - ({ \ - static __thread char _str[32]; \ - (void)pretty_size_snprintf((size), _str, sizeof(_str), (mode)); \ - _str; \ - }) +const char *pretty_size_mode(u64 size, unsigned mode); int get_mountpt(char *dev, char *mntpt, size_t size); -int btrfs_scan_block_devices(int run_ioctl); u64 parse_size(char *s); u64 parse_qgroupid(const char *p); u64 arg_strtou64(const char *str); +int arg_copy_path(char *dest, const char *src, int destlen); int open_file_or_dir(const char *fname, DIR **dirstream); int open_file_or_dir3(const char *fname, DIR **dirstream, int open_flags); void close_file_or_dir(int fd, DIR *dirstream); @@ -141,10 +161,11 @@ int open_path_or_dev_mnt(const char *path, DIR **dirstream); u64 btrfs_device_size(int fd, struct stat *st); /* Helper to always get proper size of the destination string */ #define strncpy_null(dest, src) __strncpy__null(dest, src, sizeof(dest)) -int test_dev_for_mkfs(char *file, int force_overwrite, char *estr); +int test_dev_for_mkfs(char *file, int force_overwrite); int get_label_mounted(const char *mount_path, char *labelp); int test_num_disk_vs_raid(u64 metadata_profile, u64 data_profile, - u64 dev_cnt, int mixed, char *estr); + u64 dev_cnt, int mixed); +int group_profile_max_safe_loss(u64 flags); int is_vol_small(char *file); int csum_tree_block(struct btrfs_root *root, struct extent_buffer *buf, int verify); @@ -221,4 +242,6 @@ static inline u64 div_factor(u64 num, int factor) int btrfs_tree_search2_ioctl_supported(int fd); int btrfs_check_nodesize(u32 nodesize, u32 sectorsize); +const char *get_argv0_buf(void); + #endif |