mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-11 21:38:32 +08:00
btrfs: make btrfs_check_uuid_tree private to disk-io.c
It's used only during filesystem mount as such it can be made private to disk-io.c file. Also use the occasion to move btrfs_uuid_rescan_kthread as btrfs_check_uuid_tree is its sole caller. Reviewed-by: Josef Bacik <josef@toxicpanda.com> Signed-off-by: Nikolay Borisov <nborisov@suse.com> Reviewed-by: David Sterba <dsterba@suse.com> Signed-off-by: David Sterba <dsterba@suse.com>
This commit is contained in:
parent
560b7a4aa2
commit
97f4dd09da
@ -2835,6 +2835,41 @@ fail:
|
||||
return ret;
|
||||
}
|
||||
|
||||
static int btrfs_uuid_rescan_kthread(void *data)
|
||||
{
|
||||
struct btrfs_fs_info *fs_info = (struct btrfs_fs_info *)data;
|
||||
int ret;
|
||||
|
||||
/*
|
||||
* 1st step is to iterate through the existing UUID tree and
|
||||
* to delete all entries that contain outdated data.
|
||||
* 2nd step is to add all missing entries to the UUID tree.
|
||||
*/
|
||||
ret = btrfs_uuid_tree_iterate(fs_info);
|
||||
if (ret < 0) {
|
||||
btrfs_warn(fs_info, "iterating uuid_tree failed %d", ret);
|
||||
up(&fs_info->uuid_tree_rescan_sem);
|
||||
return ret;
|
||||
}
|
||||
return btrfs_uuid_scan_kthread(data);
|
||||
}
|
||||
|
||||
static int btrfs_check_uuid_tree(struct btrfs_fs_info *fs_info)
|
||||
{
|
||||
struct task_struct *task;
|
||||
|
||||
down(&fs_info->uuid_tree_rescan_sem);
|
||||
task = kthread_run(btrfs_uuid_rescan_kthread, fs_info, "btrfs-uuid");
|
||||
if (IS_ERR(task)) {
|
||||
/* fs_info->update_uuid_tree_gen remains 0 in all error case */
|
||||
btrfs_warn(fs_info, "failed to start uuid_rescan task");
|
||||
up(&fs_info->uuid_tree_rescan_sem);
|
||||
return PTR_ERR(task);
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
int __cold open_ctree(struct super_block *sb, struct btrfs_fs_devices *fs_devices,
|
||||
char *options)
|
||||
{
|
||||
|
@ -4313,7 +4313,7 @@ int btrfs_cancel_balance(struct btrfs_fs_info *fs_info)
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int btrfs_uuid_scan_kthread(void *data)
|
||||
int btrfs_uuid_scan_kthread(void *data)
|
||||
{
|
||||
struct btrfs_fs_info *fs_info = data;
|
||||
struct btrfs_root *root = fs_info->tree_root;
|
||||
@ -4442,25 +4442,6 @@ out:
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int btrfs_uuid_rescan_kthread(void *data)
|
||||
{
|
||||
struct btrfs_fs_info *fs_info = (struct btrfs_fs_info *)data;
|
||||
int ret;
|
||||
|
||||
/*
|
||||
* 1st step is to iterate through the existing UUID tree and
|
||||
* to delete all entries that contain outdated data.
|
||||
* 2nd step is to add all missing entries to the UUID tree.
|
||||
*/
|
||||
ret = btrfs_uuid_tree_iterate(fs_info);
|
||||
if (ret < 0) {
|
||||
btrfs_warn(fs_info, "iterating uuid_tree failed %d", ret);
|
||||
up(&fs_info->uuid_tree_rescan_sem);
|
||||
return ret;
|
||||
}
|
||||
return btrfs_uuid_scan_kthread(data);
|
||||
}
|
||||
|
||||
int btrfs_create_uuid_tree(struct btrfs_fs_info *fs_info)
|
||||
{
|
||||
struct btrfs_trans_handle *trans;
|
||||
@ -4503,22 +4484,6 @@ int btrfs_create_uuid_tree(struct btrfs_fs_info *fs_info)
|
||||
return 0;
|
||||
}
|
||||
|
||||
int btrfs_check_uuid_tree(struct btrfs_fs_info *fs_info)
|
||||
{
|
||||
struct task_struct *task;
|
||||
|
||||
down(&fs_info->uuid_tree_rescan_sem);
|
||||
task = kthread_run(btrfs_uuid_rescan_kthread, fs_info, "btrfs-uuid");
|
||||
if (IS_ERR(task)) {
|
||||
/* fs_info->update_uuid_tree_gen remains 0 in all error case */
|
||||
btrfs_warn(fs_info, "failed to start uuid_rescan task");
|
||||
up(&fs_info->uuid_tree_rescan_sem);
|
||||
return PTR_ERR(task);
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
/*
|
||||
* shrinking a device means finding all of the device extents past
|
||||
* the new size, and then following the back refs to the chunks.
|
||||
|
@ -459,7 +459,7 @@ int btrfs_recover_balance(struct btrfs_fs_info *fs_info);
|
||||
int btrfs_pause_balance(struct btrfs_fs_info *fs_info);
|
||||
int btrfs_cancel_balance(struct btrfs_fs_info *fs_info);
|
||||
int btrfs_create_uuid_tree(struct btrfs_fs_info *fs_info);
|
||||
int btrfs_check_uuid_tree(struct btrfs_fs_info *fs_info);
|
||||
int btrfs_uuid_scan_kthread(void *data);
|
||||
int btrfs_chunk_readonly(struct btrfs_fs_info *fs_info, u64 chunk_offset);
|
||||
int find_free_dev_extent(struct btrfs_device *device, u64 num_bytes,
|
||||
u64 *start, u64 *max_avail);
|
||||
|
Loading…
Reference in New Issue
Block a user