#include "dm.h"
#include "dm-path-selector.h"
#include <linux/slab.h>
#include <linux/ctype.h>
#include <linux/errno.h>
#include <linux/module.h>
#include <linux/atomic.h>
#define DM_MSG_PREFIX …
#define QL_MIN_IO …
#define QL_VERSION …
struct selector { … };
struct path_info { … };
static struct selector *alloc_selector(void)
{ … }
static int ql_create(struct path_selector *ps, unsigned int argc, char **argv)
{ … }
static void ql_free_paths(struct list_head *paths)
{ … }
static void ql_destroy(struct path_selector *ps)
{ … }
static int ql_status(struct path_selector *ps, struct dm_path *path,
status_type_t type, char *result, unsigned int maxlen)
{ … }
static int ql_add_path(struct path_selector *ps, struct dm_path *path,
int argc, char **argv, char **error)
{ … }
static void ql_fail_path(struct path_selector *ps, struct dm_path *path)
{ … }
static int ql_reinstate_path(struct path_selector *ps, struct dm_path *path)
{ … }
static struct dm_path *ql_select_path(struct path_selector *ps, size_t nr_bytes)
{ … }
static int ql_start_io(struct path_selector *ps, struct dm_path *path,
size_t nr_bytes)
{ … }
static int ql_end_io(struct path_selector *ps, struct dm_path *path,
size_t nr_bytes, u64 start_time)
{ … }
static struct path_selector_type ql_ps = …;
static int __init dm_ql_init(void)
{ … }
static void __exit dm_ql_exit(void)
{ … }
module_init(…) …;
module_exit(dm_ql_exit);
MODULE_AUTHOR(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_LICENSE(…) …;