[dm-devel] RFC: dm-switch target [v3]
Mike Snitzer
snitzer at redhat.com
Thu Oct 27 18:52:23 UTC 2011
On Fri, Oct 21 2011 at 4:22pm -0400,
Jim Ramsay <jim_ramsay at dell.com> wrote:
> Note: This is a repost with a few important implementation improvements.
...
> - Added a sysfs file so userland applications can easily check the version of
> this module.
...
> static ssize_t sysfs_version_show(struct kobject *kobj,
> struct attribute *attr, char *buff)
> {
> return snprintf(buff, PAGE_SIZE, "%d.%d.%d\n",
> __g_switch_target.version[0],
> __g_switch_target.version[1],
> __g_switch_target.version[2]);
> }
>
> static ssize_t sysfs_version_store(struct kobject *kobj,
> struct attribute *attr, const char *buff,
> size_t size)
> {
> return -EINVAL;
> }
>
> static const struct _sysfs_attr_ops __g_sysfs_version = {
> .attr = {"version", 0444},
> .ops = {&sysfs_version_show, &sysfs_version_store}
> };
One would hope that this "version" file isn't needed. DM already
provides the ability to query the version of targets via the
DM_LIST_VERSIONS dm-ioctl. E.g.:
# dmsetup targets
thin-pool v1.0.0
thin v1.0.0
mirror v1.12.1
multipath v1.3.0
striped v1.4.0
linear v1.1.0
error v1.0.1
But we don't have the ability to ask for a specific target's version.
(lvm2's tools/dmsetup.c:_targets() illustrates how to collect the
targets and access their versions -- would require linking against
libdm).
But we could add a --target flag to dmsetup targets (like 'dmsetup ls'
allows), e.g.: dmsetup targets --target switch
Mike
More information about the dm-devel
mailing list