#include <linux/sysfs.h>
#include <linux/dm-ioctl.h>
#include "dm-core.h"
#include "dm-rq.h"
struct dm_sysfs_attr { … };
#define DM_ATTR_RO(_name) …
static ssize_t dm_attr_show(struct kobject *kobj, struct attribute *attr,
char *page)
{ … }
#define DM_ATTR_RW(_name) …
static ssize_t dm_attr_store(struct kobject *kobj, struct attribute *attr,
const char *page, size_t count)
{ … }
static ssize_t dm_attr_name_show(struct mapped_device *md, char *buf)
{ … }
static ssize_t dm_attr_uuid_show(struct mapped_device *md, char *buf)
{ … }
static ssize_t dm_attr_suspended_show(struct mapped_device *md, char *buf)
{ … }
static ssize_t dm_attr_use_blk_mq_show(struct mapped_device *md, char *buf)
{ … }
static DM_ATTR_RO(name);
static DM_ATTR_RO(uuid);
static DM_ATTR_RO(suspended);
static DM_ATTR_RO(use_blk_mq);
static DM_ATTR_RW(rq_based_seq_io_merge_deadline);
static struct attribute *dm_attrs[] = …;
ATTRIBUTE_GROUPS(…);
static const struct sysfs_ops dm_sysfs_ops = …;
static const struct kobj_type dm_ktype = …;
int dm_sysfs_init(struct mapped_device *md)
{ … }
void dm_sysfs_exit(struct mapped_device *md)
{ … }