diff --git a/convert/common.h b/convert/common.h new file mode 100644 index 00000000..236e9a80 --- /dev/null +++ b/convert/common.h @@ -0,0 +1,55 @@ +/* + * 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. + */ + +/* + * Defines and function declarations for users of the mkfs API, no internal + * defintions. + */ + +#ifndef __BTRFS_CONVERT_COMMON_H__ +#define __BTRFS_CONVERT_COMMON_H__ + +#include "kerncompat.h" +#include "common-defs.h" + +struct btrfs_mkfs_config; + +struct btrfs_convert_context { + u32 blocksize; + u32 first_data_block; + u32 block_count; + u32 inodes_count; + u32 free_inodes_count; + u64 total_bytes; + char *volume_name; + const struct btrfs_convert_operations *convert_ops; + + /* The accurate used space of old filesystem */ + struct cache_tree used; + + /* Batched ranges which must be covered by data chunks */ + struct cache_tree data_chunks; + + /* Free space which is not covered by data_chunks */ + struct cache_tree free; + + void *fs_data; +}; + +int make_convert_btrfs(int fd, struct btrfs_mkfs_config *cfg, + struct btrfs_convert_context *cctx); + +#endif diff --git a/convert/main.c b/convert/main.c index 3135ee31..48fb2f95 100644 --- a/convert/main.c +++ b/convert/main.c @@ -39,6 +39,7 @@ #include "task-utils.h" #include "help.h" #include "mkfs/common.h" +#include "convert/common.h" #if BTRFSCONVERT_EXT2 #include diff --git a/utils.c b/utils.c index 990a9362..76e8bf05 100644 --- a/utils.c +++ b/utils.c @@ -51,6 +51,7 @@ #include "ioctl.h" #include "commands.h" #include "mkfs/common.h" +#include "convert/common.h" #ifndef BLKDISCARD #define BLKDISCARD _IO(0x12,119) diff --git a/utils.h b/utils.h index 3cb006da..b72260c4 100644 --- a/utils.h +++ b/utils.h @@ -94,36 +94,10 @@ void btrfs_parse_features_to_string(char *buf, u64 flags); void print_kernel_version(FILE *stream, u32 version); u32 get_running_kernel_version(void); -struct btrfs_mkfs_config; - -struct btrfs_convert_context { - u32 blocksize; - u32 first_data_block; - u32 block_count; - u32 inodes_count; - u32 free_inodes_count; - u64 total_bytes; - char *volume_name; - const struct btrfs_convert_operations *convert_ops; - - /* The accurate used space of old filesystem */ - struct cache_tree used; - - /* Batched ranges which must be covered by data chunks */ - struct cache_tree data_chunks; - - /* Free space which is not covered by data_chunks */ - struct cache_tree free; - - void *fs_data; -}; - #define PREP_DEVICE_ZERO_END (1U << 0) #define PREP_DEVICE_DISCARD (1U << 1) #define PREP_DEVICE_VERBOSE (1U << 2) -int make_convert_btrfs(int fd, struct btrfs_mkfs_config *cfg, - struct btrfs_convert_context *cctx); int btrfs_make_root_dir(struct btrfs_trans_handle *trans, struct btrfs_root *root, u64 objectid); int btrfs_prepare_device(int fd, const char *file, u64 *block_count_ret,