#include "dm-zoned.h"
#include <linux/module.h>
#define DM_MSG_PREFIX …
struct dmz_reclaim { … };
enum { … };
#define DMZ_IDLE_PERIOD …
#define DMZ_RECLAIM_LOW_UNMAP_ZONES …
#define DMZ_RECLAIM_HIGH_UNMAP_ZONES …
static int dmz_reclaim_align_wp(struct dmz_reclaim *zrc, struct dm_zone *zone,
sector_t block)
{ … }
static void dmz_reclaim_kcopy_end(int read_err, unsigned long write_err,
void *context)
{ … }
static int dmz_reclaim_copy(struct dmz_reclaim *zrc,
struct dm_zone *src_zone, struct dm_zone *dst_zone)
{ … }
static int dmz_reclaim_buf(struct dmz_reclaim *zrc, struct dm_zone *dzone)
{ … }
static int dmz_reclaim_seq_data(struct dmz_reclaim *zrc, struct dm_zone *dzone)
{ … }
static int dmz_reclaim_rnd_data(struct dmz_reclaim *zrc, struct dm_zone *dzone)
{ … }
static void dmz_reclaim_empty(struct dmz_reclaim *zrc, struct dm_zone *dzone)
{ … }
static inline int dmz_target_idle(struct dmz_reclaim *zrc)
{ … }
static int dmz_do_reclaim(struct dmz_reclaim *zrc)
{ … }
static unsigned int dmz_reclaim_percentage(struct dmz_reclaim *zrc)
{ … }
static bool dmz_should_reclaim(struct dmz_reclaim *zrc, unsigned int p_unmap)
{ … }
static void dmz_reclaim_work(struct work_struct *work)
{ … }
int dmz_ctr_reclaim(struct dmz_metadata *zmd,
struct dmz_reclaim **reclaim, int idx)
{ … }
void dmz_dtr_reclaim(struct dmz_reclaim *zrc)
{ … }
void dmz_suspend_reclaim(struct dmz_reclaim *zrc)
{ … }
void dmz_resume_reclaim(struct dmz_reclaim *zrc)
{ … }
void dmz_reclaim_bio_acc(struct dmz_reclaim *zrc)
{ … }
void dmz_schedule_reclaim(struct dmz_reclaim *zrc)
{ … }