mirror of
git://sourceware.org/git/lvm2.git
synced 2024-12-21 13:34:40 +03:00
dm: introduce DM_GET_TARGET_VERSION
Adds support for the DM_GET_TARGET_VERSION to dmsetup. It introduces a new comman "target-version" that will accept list of targets and print their version. Signed-off-by: Mikulas Patocka <mpatocka@redhat.com>
This commit is contained in:
parent
ebc9274be0
commit
667b33dd3b
@ -121,7 +121,9 @@ enum {
|
|||||||
|
|
||||||
DM_DEVICE_SET_GEOMETRY,
|
DM_DEVICE_SET_GEOMETRY,
|
||||||
|
|
||||||
DM_DEVICE_ARM_POLL
|
DM_DEVICE_ARM_POLL,
|
||||||
|
|
||||||
|
DM_GET_TARGET_VERSION
|
||||||
};
|
};
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -119,6 +119,9 @@ static struct cmd_data _cmd_data_v4[] = {
|
|||||||
#ifdef DM_DEV_ARM_POLL
|
#ifdef DM_DEV_ARM_POLL
|
||||||
{"armpoll", DM_DEV_ARM_POLL, {4, 36, 0}},
|
{"armpoll", DM_DEV_ARM_POLL, {4, 36, 0}},
|
||||||
#endif
|
#endif
|
||||||
|
#ifdef DM_GET_TARGET_VERSION
|
||||||
|
{"target-version", DM_GET_TARGET_VERSION, {4, 41, 0}},
|
||||||
|
#endif
|
||||||
};
|
};
|
||||||
/* *INDENT-ON* */
|
/* *INDENT-ON* */
|
||||||
|
|
||||||
|
@ -244,6 +244,7 @@ enum {
|
|||||||
DM_TARGET_MSG_CMD,
|
DM_TARGET_MSG_CMD,
|
||||||
DM_DEV_SET_GEOMETRY_CMD,
|
DM_DEV_SET_GEOMETRY_CMD,
|
||||||
DM_DEV_ARM_POLL_CMD,
|
DM_DEV_ARM_POLL_CMD,
|
||||||
|
DM_GET_TARGET_VERSION_CMD,
|
||||||
};
|
};
|
||||||
|
|
||||||
#define DM_IOCTL 0xfd
|
#define DM_IOCTL 0xfd
|
||||||
@ -270,6 +271,8 @@ enum {
|
|||||||
#define DM_TARGET_MSG _IOWR(DM_IOCTL, DM_TARGET_MSG_CMD, struct dm_ioctl)
|
#define DM_TARGET_MSG _IOWR(DM_IOCTL, DM_TARGET_MSG_CMD, struct dm_ioctl)
|
||||||
#define DM_DEV_SET_GEOMETRY _IOWR(DM_IOCTL, DM_DEV_SET_GEOMETRY_CMD, struct dm_ioctl)
|
#define DM_DEV_SET_GEOMETRY _IOWR(DM_IOCTL, DM_DEV_SET_GEOMETRY_CMD, struct dm_ioctl)
|
||||||
|
|
||||||
|
#define DM_GET_TARGET_VERSION _IOWR(DM_IOCTL, DM_GET_TARGET_VERSION_CMD, struct dm_ioctl)
|
||||||
|
|
||||||
#define DM_VERSION_MAJOR 4
|
#define DM_VERSION_MAJOR 4
|
||||||
#define DM_VERSION_MINOR 36
|
#define DM_VERSION_MINOR 36
|
||||||
#define DM_VERSION_PATCHLEVEL 0
|
#define DM_VERSION_PATCHLEVEL 0
|
||||||
|
@ -2589,6 +2589,33 @@ out:
|
|||||||
return r;
|
return r;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Show target names and their version numbers */
|
||||||
|
static int _target_version(CMD_ARGS)
|
||||||
|
{
|
||||||
|
int r = 0;
|
||||||
|
struct dm_task *dmt;
|
||||||
|
struct dm_versions *target;
|
||||||
|
|
||||||
|
if (!(dmt = dm_task_create(DM_GET_TARGET_VERSION)))
|
||||||
|
return_0;
|
||||||
|
|
||||||
|
if (!dm_task_set_name(dmt, argv[0]))
|
||||||
|
goto_out;
|
||||||
|
|
||||||
|
if (!_task_run(dmt))
|
||||||
|
goto_out;
|
||||||
|
|
||||||
|
target = dm_task_get_versions(dmt);
|
||||||
|
printf("%-16s v%d.%d.%d\n", target->name, target->version[0],
|
||||||
|
target->version[1], target->version[2]);
|
||||||
|
|
||||||
|
r = 1;
|
||||||
|
|
||||||
|
out:
|
||||||
|
dm_task_destroy(dmt);
|
||||||
|
return r;
|
||||||
|
}
|
||||||
|
|
||||||
static int _info(CMD_ARGS)
|
static int _info(CMD_ARGS)
|
||||||
{
|
{
|
||||||
int r = 0;
|
int r = 0;
|
||||||
@ -6241,6 +6268,7 @@ static struct command _dmsetup_commands[] = {
|
|||||||
{"udevcomplete", "<cookie>", 1, 1, 0, 0, _udevcomplete},
|
{"udevcomplete", "<cookie>", 1, 1, 0, 0, _udevcomplete},
|
||||||
{"udevcomplete_all", "[<age_in_minutes>]", 0, 1, 0, 0, _udevcomplete_all},
|
{"udevcomplete_all", "[<age_in_minutes>]", 0, 1, 0, 0, _udevcomplete_all},
|
||||||
{"udevcookies", "", 0, 0, 0, 0, _udevcookies},
|
{"udevcookies", "", 0, 0, 0, 0, _udevcookies},
|
||||||
|
{"target-version", "[<target>...]", 1, -1, 1, 0, _target_version},
|
||||||
{"targets", "", 0, 0, 0, 0, _targets},
|
{"targets", "", 0, 0, 0, 0, _targets},
|
||||||
{"version", "", 0, 0, 0, 0, _version},
|
{"version", "", 0, 0, 0, 0, _version},
|
||||||
{"setgeometry", "<device> <cyl> <head> <sect> <start>", 5, 5, 0, 0, _setgeometry},
|
{"setgeometry", "<device> <cyl> <head> <sect> <start>", 5, 5, 0, 0, _setgeometry},
|
||||||
|
@ -118,6 +118,9 @@ static struct cmd_data _cmd_data_v4[] = {
|
|||||||
#ifdef DM_DEV_ARM_POLL
|
#ifdef DM_DEV_ARM_POLL
|
||||||
{"armpoll", DM_DEV_ARM_POLL, {4, 36, 0}},
|
{"armpoll", DM_DEV_ARM_POLL, {4, 36, 0}},
|
||||||
#endif
|
#endif
|
||||||
|
#ifdef DM_GET_TARGET_VERSION
|
||||||
|
{"target-version", DM_GET_TARGET_VERSION, {4, 41, 0}},
|
||||||
|
#endif
|
||||||
};
|
};
|
||||||
/* *INDENT-ON* */
|
/* *INDENT-ON* */
|
||||||
|
|
||||||
|
@ -121,7 +121,9 @@ enum {
|
|||||||
|
|
||||||
DM_DEVICE_SET_GEOMETRY,
|
DM_DEVICE_SET_GEOMETRY,
|
||||||
|
|
||||||
DM_DEVICE_ARM_POLL
|
DM_DEVICE_ARM_POLL,
|
||||||
|
|
||||||
|
DM_GET_TARGET_VERSION
|
||||||
};
|
};
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -244,6 +244,7 @@ enum {
|
|||||||
DM_TARGET_MSG_CMD,
|
DM_TARGET_MSG_CMD,
|
||||||
DM_DEV_SET_GEOMETRY_CMD,
|
DM_DEV_SET_GEOMETRY_CMD,
|
||||||
DM_DEV_ARM_POLL_CMD,
|
DM_DEV_ARM_POLL_CMD,
|
||||||
|
DM_GET_TARGET_VERSION_CMD,
|
||||||
};
|
};
|
||||||
|
|
||||||
#define DM_IOCTL 0xfd
|
#define DM_IOCTL 0xfd
|
||||||
@ -269,6 +270,7 @@ enum {
|
|||||||
|
|
||||||
#define DM_TARGET_MSG _IOWR(DM_IOCTL, DM_TARGET_MSG_CMD, struct dm_ioctl)
|
#define DM_TARGET_MSG _IOWR(DM_IOCTL, DM_TARGET_MSG_CMD, struct dm_ioctl)
|
||||||
#define DM_DEV_SET_GEOMETRY _IOWR(DM_IOCTL, DM_DEV_SET_GEOMETRY_CMD, struct dm_ioctl)
|
#define DM_DEV_SET_GEOMETRY _IOWR(DM_IOCTL, DM_DEV_SET_GEOMETRY_CMD, struct dm_ioctl)
|
||||||
|
#define DM_GET_TARGET_VERSION _IOWR(DM_IOCTL, DM_GET_TARGET_VERSION_CMD, struct dm_ioctl)
|
||||||
|
|
||||||
#define DM_VERSION_MAJOR 4
|
#define DM_VERSION_MAJOR 4
|
||||||
#define DM_VERSION_MINOR 36
|
#define DM_VERSION_MINOR 36
|
||||||
|
Loading…
Reference in New Issue
Block a user