#include "dm-zoned.h"
#include <linux/module.h>
#define DM_MSG_PREFIX …
#define DMZ_MIN_BIOS …
struct dmz_bioctx { … };
struct dm_chunk_work { … };
struct dmz_target { … };
#define DMZ_FLUSH_PERIOD …
static inline void dmz_bio_endio(struct bio *bio, blk_status_t status)
{ … }
static void dmz_clone_endio(struct bio *clone)
{ … }
static int dmz_submit_bio(struct dmz_target *dmz, struct dm_zone *zone,
struct bio *bio, sector_t chunk_block,
unsigned int nr_blocks)
{ … }
static void dmz_handle_read_zero(struct dmz_target *dmz, struct bio *bio,
sector_t chunk_block, unsigned int nr_blocks)
{ … }
static int dmz_handle_read(struct dmz_target *dmz, struct dm_zone *zone,
struct bio *bio)
{ … }
static int dmz_handle_direct_write(struct dmz_target *dmz,
struct dm_zone *zone, struct bio *bio,
sector_t chunk_block,
unsigned int nr_blocks)
{ … }
static int dmz_handle_buffered_write(struct dmz_target *dmz,
struct dm_zone *zone, struct bio *bio,
sector_t chunk_block,
unsigned int nr_blocks)
{ … }
static int dmz_handle_write(struct dmz_target *dmz, struct dm_zone *zone,
struct bio *bio)
{ … }
static int dmz_handle_discard(struct dmz_target *dmz, struct dm_zone *zone,
struct bio *bio)
{ … }
static void dmz_handle_bio(struct dmz_target *dmz, struct dm_chunk_work *cw,
struct bio *bio)
{ … }
static inline void dmz_get_chunk_work(struct dm_chunk_work *cw)
{ … }
static void dmz_put_chunk_work(struct dm_chunk_work *cw)
{ … }
static void dmz_chunk_work(struct work_struct *work)
{ … }
static void dmz_flush_work(struct work_struct *work)
{ … }
static int dmz_queue_chunk_work(struct dmz_target *dmz, struct bio *bio)
{ … }
bool dmz_bdev_is_dying(struct dmz_dev *dmz_dev)
{ … }
bool dmz_check_bdev(struct dmz_dev *dmz_dev)
{ … }
static int dmz_map(struct dm_target *ti, struct bio *bio)
{ … }
static int dmz_get_zoned_device(struct dm_target *ti, char *path,
int idx, int nr_devs)
{ … }
static void dmz_put_zoned_devices(struct dm_target *ti)
{ … }
static int dmz_fixup_devices(struct dm_target *ti)
{ … }
static int dmz_ctr(struct dm_target *ti, unsigned int argc, char **argv)
{ … }
static void dmz_dtr(struct dm_target *ti)
{ … }
static void dmz_io_hints(struct dm_target *ti, struct queue_limits *limits)
{ … }
static int dmz_prepare_ioctl(struct dm_target *ti, struct block_device **bdev)
{ … }
static void dmz_suspend(struct dm_target *ti)
{ … }
static void dmz_resume(struct dm_target *ti)
{ … }
static int dmz_iterate_devices(struct dm_target *ti,
iterate_devices_callout_fn fn, void *data)
{ … }
static void dmz_status(struct dm_target *ti, status_type_t type,
unsigned int status_flags, char *result,
unsigned int maxlen)
{ … }
static int dmz_message(struct dm_target *ti, unsigned int argc, char **argv,
char *result, unsigned int maxlen)
{ … }
static struct target_type zoned_target = …;
module_dm(zoned);
MODULE_DESCRIPTION(…) …;
MODULE_AUTHOR(…) …;
MODULE_LICENSE(…) …;