linux/fs/btrfs/discard.h
<<
>>
Prefs
   1/* SPDX-License-Identifier: GPL-2.0 */
   2
   3#ifndef BTRFS_DISCARD_H
   4#define BTRFS_DISCARD_H
   5
   6#include <linux/sizes.h>
   7
   8struct btrfs_fs_info;
   9struct btrfs_discard_ctl;
  10struct btrfs_block_group;
  11
  12/* Discard size limits */
  13#define BTRFS_ASYNC_DISCARD_DEFAULT_MAX_SIZE            (SZ_64M)
  14#define BTRFS_ASYNC_DISCARD_MAX_FILTER                  (SZ_1M)
  15#define BTRFS_ASYNC_DISCARD_MIN_FILTER                  (SZ_32K)
  16
  17/* List operations */
  18void btrfs_discard_check_filter(struct btrfs_block_group *block_group, u64 bytes);
  19
  20/* Work operations */
  21void btrfs_discard_cancel_work(struct btrfs_discard_ctl *discard_ctl,
  22                               struct btrfs_block_group *block_group);
  23void btrfs_discard_queue_work(struct btrfs_discard_ctl *discard_ctl,
  24                              struct btrfs_block_group *block_group);
  25void btrfs_discard_schedule_work(struct btrfs_discard_ctl *discard_ctl,
  26                                 bool override);
  27bool btrfs_run_discard_work(struct btrfs_discard_ctl *discard_ctl);
  28
  29/* Update operations */
  30void btrfs_discard_calc_delay(struct btrfs_discard_ctl *discard_ctl);
  31void btrfs_discard_update_discardable(struct btrfs_block_group *block_group);
  32
  33/* Setup/cleanup operations */
  34void btrfs_discard_punt_unused_bgs_list(struct btrfs_fs_info *fs_info);
  35void btrfs_discard_resume(struct btrfs_fs_info *fs_info);
  36void btrfs_discard_stop(struct btrfs_fs_info *fs_info);
  37void btrfs_discard_init(struct btrfs_fs_info *fs_info);
  38void btrfs_discard_cleanup(struct btrfs_fs_info *fs_info);
  39
  40#endif
  41