btrfs-progs: move convert definitions to own header

Create a header for filesystem conversion API, the config and the main
entry function.

Signed-off-by: David Sterba <dsterba@suse.com>
master
David Sterba 2017-01-25 17:09:10 +01:00
parent ad7c469ac3
commit 5f276edfda
4 changed files with 57 additions and 26 deletions

55
convert/common.h 100644
View File

@ -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

View File

@ -39,6 +39,7 @@
#include "task-utils.h"
#include "help.h"
#include "mkfs/common.h"
#include "convert/common.h"
#if BTRFSCONVERT_EXT2
#include <ext2fs/ext2_fs.h>

View File

@ -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)

26
utils.h
View File

@ -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,