#include "dm-cache-background-tracker.h"
#define DM_MSG_PREFIX …
struct bt_work { … };
struct background_tracker { … };
struct background_tracker *btracker_create(unsigned int max_work)
{ … }
EXPORT_SYMBOL_GPL(…);
void btracker_destroy(struct background_tracker *b)
{ … }
EXPORT_SYMBOL_GPL(…);
static int cmp_oblock(dm_oblock_t lhs, dm_oblock_t rhs)
{ … }
static bool __insert_pending(struct background_tracker *b,
struct bt_work *nw)
{ … }
static struct bt_work *__find_pending(struct background_tracker *b,
dm_oblock_t oblock)
{ … }
static void update_stats(struct background_tracker *b, struct policy_work *w, int delta)
{ … }
unsigned int btracker_nr_writebacks_queued(struct background_tracker *b)
{ … }
EXPORT_SYMBOL_GPL(…);
unsigned int btracker_nr_demotions_queued(struct background_tracker *b)
{ … }
EXPORT_SYMBOL_GPL(…);
static bool max_work_reached(struct background_tracker *b)
{ … }
static struct bt_work *alloc_work(struct background_tracker *b)
{ … }
int btracker_queue(struct background_tracker *b,
struct policy_work *work,
struct policy_work **pwork)
{ … }
EXPORT_SYMBOL_GPL(…);
int btracker_issue(struct background_tracker *b, struct policy_work **work)
{ … }
EXPORT_SYMBOL_GPL(…);
void btracker_complete(struct background_tracker *b,
struct policy_work *op)
{ … }
EXPORT_SYMBOL_GPL(…);
bool btracker_promotion_already_present(struct background_tracker *b,
dm_oblock_t oblock)
{ … }
EXPORT_SYMBOL_GPL(…);