On Fri, Dec 13, 2019 at 04:22:25PM -0800, Dennis Zhou wrote:
> Expose max_discard_size as a tunable via sysfs.
>
> Signed-off-by: Dennis Zhou <dennis@xxxxxxxxxx>
> ---
> fs/btrfs/ctree.h | 1 +
> fs/btrfs/discard.c | 1 +
> fs/btrfs/free-space-cache.c | 19 ++++++++++++-------
> fs/btrfs/sysfs.c | 31 +++++++++++++++++++++++++++++++
> 4 files changed, 45 insertions(+), 7 deletions(-)
>
> diff --git a/fs/btrfs/ctree.h b/fs/btrfs/ctree.h
> index 1b2dae5962de..bf93ddbc773f 100644
> --- a/fs/btrfs/ctree.h
> +++ b/fs/btrfs/ctree.h
> @@ -470,6 +470,7 @@ struct btrfs_discard_ctl {
> u64 prev_discard;
> atomic_t discardable_extents;
> atomic64_t discardable_bytes;
> + u64 max_discard_size;
> u32 delay;
> u32 iops_limit;
> u64 bps_limit;
> diff --git a/fs/btrfs/discard.c b/fs/btrfs/discard.c
> index 085f36808e7f..dd5143f0283f 100644
> --- a/fs/btrfs/discard.c
> +++ b/fs/btrfs/discard.c
> @@ -536,6 +536,7 @@ void btrfs_discard_init(struct btrfs_fs_info *fs_info)
> discard_ctl->prev_discard = 0;
> atomic_set(&discard_ctl->discardable_extents, 0);
> atomic64_set(&discard_ctl->discardable_bytes, 0);
> + discard_ctl->max_discard_size = BTRFS_ASYNC_DISCARD_MAX_SIZE;
BTRFS_ASYNC_DISCARD_MAX_SIZE won't be the upper limit anymore but a
default so it should be named as such.