Commit | Line | Data |
---|---|---|
b0643e59 DZ |
1 | // SPDX-License-Identifier: GPL-2.0 |
2 | ||
3 | #ifndef BTRFS_DISCARD_H | |
4 | #define BTRFS_DISCARD_H | |
5 | ||
4aa9ad52 DZ |
6 | #include <linux/sizes.h> |
7 | ||
b0643e59 DZ |
8 | struct btrfs_fs_info; |
9 | struct btrfs_discard_ctl; | |
10 | struct btrfs_block_group; | |
11 | ||
4aa9ad52 DZ |
12 | /* Discard size limits */ |
13 | #define BTRFS_ASYNC_DISCARD_MAX_SIZE (SZ_64M) | |
14 | ||
6e80d4f8 | 15 | /* Work operations */ |
b0643e59 DZ |
16 | void btrfs_discard_cancel_work(struct btrfs_discard_ctl *discard_ctl, |
17 | struct btrfs_block_group *block_group); | |
18 | void btrfs_discard_queue_work(struct btrfs_discard_ctl *discard_ctl, | |
19 | struct btrfs_block_group *block_group); | |
20 | void btrfs_discard_schedule_work(struct btrfs_discard_ctl *discard_ctl, | |
21 | bool override); | |
22 | bool btrfs_run_discard_work(struct btrfs_discard_ctl *discard_ctl); | |
23 | ||
dfb79ddb | 24 | /* Update operations */ |
a2309300 | 25 | void btrfs_discard_calc_delay(struct btrfs_discard_ctl *discard_ctl); |
dfb79ddb DZ |
26 | void btrfs_discard_update_discardable(struct btrfs_block_group *block_group, |
27 | struct btrfs_free_space_ctl *ctl); | |
28 | ||
6e80d4f8 DZ |
29 | /* Setup/cleanup operations */ |
30 | void btrfs_discard_punt_unused_bgs_list(struct btrfs_fs_info *fs_info); | |
b0643e59 DZ |
31 | void btrfs_discard_resume(struct btrfs_fs_info *fs_info); |
32 | void btrfs_discard_stop(struct btrfs_fs_info *fs_info); | |
33 | void btrfs_discard_init(struct btrfs_fs_info *fs_info); | |
34 | void btrfs_discard_cleanup(struct btrfs_fs_info *fs_info); | |
35 | ||
36 | #endif |