mirror of https://gitee.com/openkylin/linux.git
111 lines
2.9 KiB
ReStructuredText
111 lines
2.9 KiB
ReStructuredText
====================
|
|
device-mapper uevent
|
|
====================
|
|
|
|
The device-mapper uevent code adds the capability to device-mapper to create
|
|
and send kobject uevents (uevents). Previously device-mapper events were only
|
|
available through the ioctl interface. The advantage of the uevents interface
|
|
is the event contains environment attributes providing increased context for
|
|
the event avoiding the need to query the state of the device-mapper device after
|
|
the event is received.
|
|
|
|
There are two functions currently for device-mapper events. The first function
|
|
listed creates the event and the second function sends the event(s)::
|
|
|
|
void dm_path_uevent(enum dm_uevent_type event_type, struct dm_target *ti,
|
|
const char *path, unsigned nr_valid_paths)
|
|
|
|
void dm_send_uevents(struct list_head *events, struct kobject *kobj)
|
|
|
|
|
|
The variables added to the uevent environment are:
|
|
|
|
Variable Name: DM_TARGET
|
|
------------------------
|
|
:Uevent Action(s): KOBJ_CHANGE
|
|
:Type: string
|
|
:Description:
|
|
:Value: Name of device-mapper target that generated the event.
|
|
|
|
Variable Name: DM_ACTION
|
|
------------------------
|
|
:Uevent Action(s): KOBJ_CHANGE
|
|
:Type: string
|
|
:Description:
|
|
:Value: Device-mapper specific action that caused the uevent action.
|
|
PATH_FAILED - A path has failed;
|
|
PATH_REINSTATED - A path has been reinstated.
|
|
|
|
Variable Name: DM_SEQNUM
|
|
------------------------
|
|
:Uevent Action(s): KOBJ_CHANGE
|
|
:Type: unsigned integer
|
|
:Description: A sequence number for this specific device-mapper device.
|
|
:Value: Valid unsigned integer range.
|
|
|
|
Variable Name: DM_PATH
|
|
----------------------
|
|
:Uevent Action(s): KOBJ_CHANGE
|
|
:Type: string
|
|
:Description: Major and minor number of the path device pertaining to this
|
|
event.
|
|
:Value: Path name in the form of "Major:Minor"
|
|
|
|
Variable Name: DM_NR_VALID_PATHS
|
|
--------------------------------
|
|
:Uevent Action(s): KOBJ_CHANGE
|
|
:Type: unsigned integer
|
|
:Description:
|
|
:Value: Valid unsigned integer range.
|
|
|
|
Variable Name: DM_NAME
|
|
----------------------
|
|
:Uevent Action(s): KOBJ_CHANGE
|
|
:Type: string
|
|
:Description: Name of the device-mapper device.
|
|
:Value: Name
|
|
|
|
Variable Name: DM_UUID
|
|
----------------------
|
|
:Uevent Action(s): KOBJ_CHANGE
|
|
:Type: string
|
|
:Description: UUID of the device-mapper device.
|
|
:Value: UUID. (Empty string if there isn't one.)
|
|
|
|
An example of the uevents generated as captured by udevmonitor is shown
|
|
below
|
|
|
|
1.) Path failure::
|
|
|
|
UEVENT[1192521009.711215] change@/block/dm-3
|
|
ACTION=change
|
|
DEVPATH=/block/dm-3
|
|
SUBSYSTEM=block
|
|
DM_TARGET=multipath
|
|
DM_ACTION=PATH_FAILED
|
|
DM_SEQNUM=1
|
|
DM_PATH=8:32
|
|
DM_NR_VALID_PATHS=0
|
|
DM_NAME=mpath2
|
|
DM_UUID=mpath-35333333000002328
|
|
MINOR=3
|
|
MAJOR=253
|
|
SEQNUM=1130
|
|
|
|
2.) Path reinstate::
|
|
|
|
UEVENT[1192521132.989927] change@/block/dm-3
|
|
ACTION=change
|
|
DEVPATH=/block/dm-3
|
|
SUBSYSTEM=block
|
|
DM_TARGET=multipath
|
|
DM_ACTION=PATH_REINSTATED
|
|
DM_SEQNUM=2
|
|
DM_PATH=8:32
|
|
DM_NR_VALID_PATHS=1
|
|
DM_NAME=mpath2
|
|
DM_UUID=mpath-35333333000002328
|
|
MINOR=3
|
|
MAJOR=253
|
|
SEQNUM=1131
|