19888c340SDavid Sterba /* SPDX-License-Identifier: GPL-2.0 */ 2ff023aacSStefan Behrens /* 3ff023aacSStefan Behrens * Copyright (C) STRATO AG 2012. All rights reserved. 4ff023aacSStefan Behrens */ 5ff023aacSStefan Behrens 69888c340SDavid Sterba #ifndef BTRFS_DEV_REPLACE_H 79888c340SDavid Sterba #define BTRFS_DEV_REPLACE_H 8ff023aacSStefan Behrens 9e93c89c1SStefan Behrens struct btrfs_ioctl_dev_replace_args; 10d6921739SJosef Bacik struct btrfs_fs_info; 11d6921739SJosef Bacik struct btrfs_trans_handle; 12d6921739SJosef Bacik struct btrfs_dev_replace; 13d6921739SJosef Bacik struct btrfs_block_group; 14e93c89c1SStefan Behrens 15e93c89c1SStefan Behrens int btrfs_init_dev_replace(struct btrfs_fs_info *fs_info); 162b584c68SDavid Sterba int btrfs_run_dev_replace(struct btrfs_trans_handle *trans); 172ff7e61eSJeff Mahoney int btrfs_dev_replace_by_ioctl(struct btrfs_fs_info *fs_info, 18e93c89c1SStefan Behrens struct btrfs_ioctl_dev_replace_args *args); 19e93c89c1SStefan Behrens void btrfs_dev_replace_status(struct btrfs_fs_info *fs_info, 20e93c89c1SStefan Behrens struct btrfs_ioctl_dev_replace_args *args); 2118e67c73SAnand Jain int btrfs_dev_replace_cancel(struct btrfs_fs_info *fs_info); 22e93c89c1SStefan Behrens void btrfs_dev_replace_suspend_for_unmount(struct btrfs_fs_info *fs_info); 23e93c89c1SStefan Behrens int btrfs_resume_dev_replace_async(struct btrfs_fs_info *fs_info); 24e1f60a65SDavid Sterba int __pure btrfs_dev_replace_is_ongoing(struct btrfs_dev_replace *dev_replace); 2578ce9fc2SNaohiro Aota bool btrfs_finish_block_group_to_copy(struct btrfs_device *srcdev, 2678ce9fc2SNaohiro Aota struct btrfs_block_group *cache, 2778ce9fc2SNaohiro Aota u64 physical); 28*77407dc0SJosef Bacik void btrfs_bio_counter_inc_blocked(struct btrfs_fs_info *fs_info); 29*77407dc0SJosef Bacik void btrfs_bio_counter_sub(struct btrfs_fs_info *fs_info, s64 amount); 30*77407dc0SJosef Bacik btrfs_bio_counter_dec(struct btrfs_fs_info * fs_info)31*77407dc0SJosef Bacikstatic inline void btrfs_bio_counter_dec(struct btrfs_fs_info *fs_info) 32*77407dc0SJosef Bacik { 33*77407dc0SJosef Bacik btrfs_bio_counter_sub(fs_info, 1); 34*77407dc0SJosef Bacik } 35*77407dc0SJosef Bacik 36e93c89c1SStefan Behrens 37ff023aacSStefan Behrens #endif 38