1*6cf2a73cSMauro Carvalho Chehab==================== 2*6cf2a73cSMauro Carvalho Chehabdevice-mapper uevent 3*6cf2a73cSMauro Carvalho Chehab==================== 4*6cf2a73cSMauro Carvalho Chehab 5*6cf2a73cSMauro Carvalho ChehabThe device-mapper uevent code adds the capability to device-mapper to create 6*6cf2a73cSMauro Carvalho Chehaband send kobject uevents (uevents). Previously device-mapper events were only 7*6cf2a73cSMauro Carvalho Chehabavailable through the ioctl interface. The advantage of the uevents interface 8*6cf2a73cSMauro Carvalho Chehabis the event contains environment attributes providing increased context for 9*6cf2a73cSMauro Carvalho Chehabthe event avoiding the need to query the state of the device-mapper device after 10*6cf2a73cSMauro Carvalho Chehabthe event is received. 11*6cf2a73cSMauro Carvalho Chehab 12*6cf2a73cSMauro Carvalho ChehabThere are two functions currently for device-mapper events. The first function 13*6cf2a73cSMauro Carvalho Chehablisted creates the event and the second function sends the event(s):: 14*6cf2a73cSMauro Carvalho Chehab 15*6cf2a73cSMauro Carvalho Chehab void dm_path_uevent(enum dm_uevent_type event_type, struct dm_target *ti, 16*6cf2a73cSMauro Carvalho Chehab const char *path, unsigned nr_valid_paths) 17*6cf2a73cSMauro Carvalho Chehab 18*6cf2a73cSMauro Carvalho Chehab void dm_send_uevents(struct list_head *events, struct kobject *kobj) 19*6cf2a73cSMauro Carvalho Chehab 20*6cf2a73cSMauro Carvalho Chehab 21*6cf2a73cSMauro Carvalho ChehabThe variables added to the uevent environment are: 22*6cf2a73cSMauro Carvalho Chehab 23*6cf2a73cSMauro Carvalho ChehabVariable Name: DM_TARGET 24*6cf2a73cSMauro Carvalho Chehab------------------------ 25*6cf2a73cSMauro Carvalho Chehab:Uevent Action(s): KOBJ_CHANGE 26*6cf2a73cSMauro Carvalho Chehab:Type: string 27*6cf2a73cSMauro Carvalho Chehab:Description: 28*6cf2a73cSMauro Carvalho Chehab:Value: Name of device-mapper target that generated the event. 29*6cf2a73cSMauro Carvalho Chehab 30*6cf2a73cSMauro Carvalho ChehabVariable Name: DM_ACTION 31*6cf2a73cSMauro Carvalho Chehab------------------------ 32*6cf2a73cSMauro Carvalho Chehab:Uevent Action(s): KOBJ_CHANGE 33*6cf2a73cSMauro Carvalho Chehab:Type: string 34*6cf2a73cSMauro Carvalho Chehab:Description: 35*6cf2a73cSMauro Carvalho Chehab:Value: Device-mapper specific action that caused the uevent action. 36*6cf2a73cSMauro Carvalho Chehab PATH_FAILED - A path has failed; 37*6cf2a73cSMauro Carvalho Chehab PATH_REINSTATED - A path has been reinstated. 38*6cf2a73cSMauro Carvalho Chehab 39*6cf2a73cSMauro Carvalho ChehabVariable Name: DM_SEQNUM 40*6cf2a73cSMauro Carvalho Chehab------------------------ 41*6cf2a73cSMauro Carvalho Chehab:Uevent Action(s): KOBJ_CHANGE 42*6cf2a73cSMauro Carvalho Chehab:Type: unsigned integer 43*6cf2a73cSMauro Carvalho Chehab:Description: A sequence number for this specific device-mapper device. 44*6cf2a73cSMauro Carvalho Chehab:Value: Valid unsigned integer range. 45*6cf2a73cSMauro Carvalho Chehab 46*6cf2a73cSMauro Carvalho ChehabVariable Name: DM_PATH 47*6cf2a73cSMauro Carvalho Chehab---------------------- 48*6cf2a73cSMauro Carvalho Chehab:Uevent Action(s): KOBJ_CHANGE 49*6cf2a73cSMauro Carvalho Chehab:Type: string 50*6cf2a73cSMauro Carvalho Chehab:Description: Major and minor number of the path device pertaining to this 51*6cf2a73cSMauro Carvalho Chehab event. 52*6cf2a73cSMauro Carvalho Chehab:Value: Path name in the form of "Major:Minor" 53*6cf2a73cSMauro Carvalho Chehab 54*6cf2a73cSMauro Carvalho ChehabVariable Name: DM_NR_VALID_PATHS 55*6cf2a73cSMauro Carvalho Chehab-------------------------------- 56*6cf2a73cSMauro Carvalho Chehab:Uevent Action(s): KOBJ_CHANGE 57*6cf2a73cSMauro Carvalho Chehab:Type: unsigned integer 58*6cf2a73cSMauro Carvalho Chehab:Description: 59*6cf2a73cSMauro Carvalho Chehab:Value: Valid unsigned integer range. 60*6cf2a73cSMauro Carvalho Chehab 61*6cf2a73cSMauro Carvalho ChehabVariable Name: DM_NAME 62*6cf2a73cSMauro Carvalho Chehab---------------------- 63*6cf2a73cSMauro Carvalho Chehab:Uevent Action(s): KOBJ_CHANGE 64*6cf2a73cSMauro Carvalho Chehab:Type: string 65*6cf2a73cSMauro Carvalho Chehab:Description: Name of the device-mapper device. 66*6cf2a73cSMauro Carvalho Chehab:Value: Name 67*6cf2a73cSMauro Carvalho Chehab 68*6cf2a73cSMauro Carvalho ChehabVariable Name: DM_UUID 69*6cf2a73cSMauro Carvalho Chehab---------------------- 70*6cf2a73cSMauro Carvalho Chehab:Uevent Action(s): KOBJ_CHANGE 71*6cf2a73cSMauro Carvalho Chehab:Type: string 72*6cf2a73cSMauro Carvalho Chehab:Description: UUID of the device-mapper device. 73*6cf2a73cSMauro Carvalho Chehab:Value: UUID. (Empty string if there isn't one.) 74*6cf2a73cSMauro Carvalho Chehab 75*6cf2a73cSMauro Carvalho ChehabAn example of the uevents generated as captured by udevmonitor is shown 76*6cf2a73cSMauro Carvalho Chehabbelow 77*6cf2a73cSMauro Carvalho Chehab 78*6cf2a73cSMauro Carvalho Chehab1.) Path failure:: 79*6cf2a73cSMauro Carvalho Chehab 80*6cf2a73cSMauro Carvalho Chehab UEVENT[1192521009.711215] change@/block/dm-3 81*6cf2a73cSMauro Carvalho Chehab ACTION=change 82*6cf2a73cSMauro Carvalho Chehab DEVPATH=/block/dm-3 83*6cf2a73cSMauro Carvalho Chehab SUBSYSTEM=block 84*6cf2a73cSMauro Carvalho Chehab DM_TARGET=multipath 85*6cf2a73cSMauro Carvalho Chehab DM_ACTION=PATH_FAILED 86*6cf2a73cSMauro Carvalho Chehab DM_SEQNUM=1 87*6cf2a73cSMauro Carvalho Chehab DM_PATH=8:32 88*6cf2a73cSMauro Carvalho Chehab DM_NR_VALID_PATHS=0 89*6cf2a73cSMauro Carvalho Chehab DM_NAME=mpath2 90*6cf2a73cSMauro Carvalho Chehab DM_UUID=mpath-35333333000002328 91*6cf2a73cSMauro Carvalho Chehab MINOR=3 92*6cf2a73cSMauro Carvalho Chehab MAJOR=253 93*6cf2a73cSMauro Carvalho Chehab SEQNUM=1130 94*6cf2a73cSMauro Carvalho Chehab 95*6cf2a73cSMauro Carvalho Chehab2.) Path reinstate:: 96*6cf2a73cSMauro Carvalho Chehab 97*6cf2a73cSMauro Carvalho Chehab UEVENT[1192521132.989927] change@/block/dm-3 98*6cf2a73cSMauro Carvalho Chehab ACTION=change 99*6cf2a73cSMauro Carvalho Chehab DEVPATH=/block/dm-3 100*6cf2a73cSMauro Carvalho Chehab SUBSYSTEM=block 101*6cf2a73cSMauro Carvalho Chehab DM_TARGET=multipath 102*6cf2a73cSMauro Carvalho Chehab DM_ACTION=PATH_REINSTATED 103*6cf2a73cSMauro Carvalho Chehab DM_SEQNUM=2 104*6cf2a73cSMauro Carvalho Chehab DM_PATH=8:32 105*6cf2a73cSMauro Carvalho Chehab DM_NR_VALID_PATHS=1 106*6cf2a73cSMauro Carvalho Chehab DM_NAME=mpath2 107*6cf2a73cSMauro Carvalho Chehab DM_UUID=mpath-35333333000002328 108*6cf2a73cSMauro Carvalho Chehab MINOR=3 109*6cf2a73cSMauro Carvalho Chehab MAJOR=253 110*6cf2a73cSMauro Carvalho Chehab SEQNUM=1131 111