2018-04-03 20:16:55 +03:00
/* SPDX-License-Identifier: GPL-2.0 */
2012-11-06 14:43:11 +04:00
/*
* Copyright ( C ) STRATO AG 2012. All rights reserved .
*/
2018-04-03 20:16:55 +03:00
# ifndef BTRFS_DEV_REPLACE_H
# define BTRFS_DEV_REPLACE_H
2012-11-06 14:43:11 +04:00
2012-11-05 20:33:06 +04:00
struct btrfs_ioctl_dev_replace_args ;
2022-09-15 02:04:51 +03:00
struct btrfs_fs_info ;
struct btrfs_trans_handle ;
struct btrfs_dev_replace ;
struct btrfs_block_group ;
2012-11-05 20:33:06 +04:00
int btrfs_init_dev_replace ( struct btrfs_fs_info * fs_info ) ;
2019-03-20 18:51:44 +03:00
int btrfs_run_dev_replace ( struct btrfs_trans_handle * trans ) ;
2016-06-23 01:54:24 +03:00
int btrfs_dev_replace_by_ioctl ( struct btrfs_fs_info * fs_info ,
2012-11-05 20:33:06 +04:00
struct btrfs_ioctl_dev_replace_args * args ) ;
void btrfs_dev_replace_status ( struct btrfs_fs_info * fs_info ,
struct btrfs_ioctl_dev_replace_args * args ) ;
2018-02-12 18:33:31 +03:00
int btrfs_dev_replace_cancel ( struct btrfs_fs_info * fs_info ) ;
2012-11-05 20:33:06 +04:00
void btrfs_dev_replace_suspend_for_unmount ( struct btrfs_fs_info * fs_info ) ;
int btrfs_resume_dev_replace_async ( struct btrfs_fs_info * fs_info ) ;
2019-10-01 20:57:39 +03:00
int __pure btrfs_dev_replace_is_ongoing ( struct btrfs_dev_replace * dev_replace ) ;
2021-02-04 13:22:11 +03:00
bool btrfs_finish_block_group_to_copy ( struct btrfs_device * srcdev ,
struct btrfs_block_group * cache ,
u64 physical ) ;
2022-10-26 22:08:36 +03:00
void btrfs_bio_counter_inc_blocked ( struct btrfs_fs_info * fs_info ) ;
void btrfs_bio_counter_sub ( struct btrfs_fs_info * fs_info , s64 amount ) ;
static inline void btrfs_bio_counter_dec ( struct btrfs_fs_info * fs_info )
{
btrfs_bio_counter_sub ( fs_info , 1 ) ;
}
2012-11-05 20:33:06 +04:00
2012-11-06 14:43:11 +04:00
# endif