15b7ac27aSMauro Carvalho Chehab.. SPDX-License-Identifier: GPL-2.0 25b7ac27aSMauro Carvalho Chehab 35b7ac27aSMauro Carvalho Chehab================ 45b7ac27aSMauro Carvalho Chehabuevents and GFS2 55b7ac27aSMauro Carvalho Chehab================ 65b7ac27aSMauro Carvalho Chehab 75b7ac27aSMauro Carvalho ChehabDuring the lifetime of a GFS2 mount, a number of uevents are generated. 85b7ac27aSMauro Carvalho ChehabThis document explains what the events are and what they are used 95b7ac27aSMauro Carvalho Chehabfor (by gfs_controld in gfs2-utils). 105b7ac27aSMauro Carvalho Chehab 115b7ac27aSMauro Carvalho ChehabA list of GFS2 uevents 125b7ac27aSMauro Carvalho Chehab====================== 135b7ac27aSMauro Carvalho Chehab 145b7ac27aSMauro Carvalho Chehab1. ADD 155b7ac27aSMauro Carvalho Chehab------ 165b7ac27aSMauro Carvalho Chehab 175b7ac27aSMauro Carvalho ChehabThe ADD event occurs at mount time. It will always be the first 185b7ac27aSMauro Carvalho Chehabuevent generated by the newly created filesystem. If the mount 195b7ac27aSMauro Carvalho Chehabis successful, an ONLINE uevent will follow. If it is not successful 205b7ac27aSMauro Carvalho Chehabthen a REMOVE uevent will follow. 215b7ac27aSMauro Carvalho Chehab 225b7ac27aSMauro Carvalho ChehabThe ADD uevent has two environment variables: SPECTATOR=[0|1] 235b7ac27aSMauro Carvalho Chehaband RDONLY=[0|1] that specify the spectator status (a read-only mount 245b7ac27aSMauro Carvalho Chehabwith no journal assigned), and read-only (with journal assigned) status 255b7ac27aSMauro Carvalho Chehabof the filesystem respectively. 265b7ac27aSMauro Carvalho Chehab 275b7ac27aSMauro Carvalho Chehab2. ONLINE 285b7ac27aSMauro Carvalho Chehab--------- 295b7ac27aSMauro Carvalho Chehab 305b7ac27aSMauro Carvalho ChehabThe ONLINE uevent is generated after a successful mount or remount. It 315b7ac27aSMauro Carvalho Chehabhas the same environment variables as the ADD uevent. The ONLINE 325b7ac27aSMauro Carvalho Chehabuevent, along with the two environment variables for spectator and 335b7ac27aSMauro Carvalho ChehabRDONLY are a relatively recent addition (2.6.32-rc+) and will not 345b7ac27aSMauro Carvalho Chehabbe generated by older kernels. 355b7ac27aSMauro Carvalho Chehab 365b7ac27aSMauro Carvalho Chehab3. CHANGE 375b7ac27aSMauro Carvalho Chehab--------- 385b7ac27aSMauro Carvalho Chehab 395b7ac27aSMauro Carvalho ChehabThe CHANGE uevent is used in two places. One is when reporting the 405b7ac27aSMauro Carvalho Chehabsuccessful mount of the filesystem by the first node (FIRSTMOUNT=Done). 415b7ac27aSMauro Carvalho ChehabThis is used as a signal by gfs_controld that it is then ok for other 425b7ac27aSMauro Carvalho Chehabnodes in the cluster to mount the filesystem. 435b7ac27aSMauro Carvalho Chehab 445b7ac27aSMauro Carvalho ChehabThe other CHANGE uevent is used to inform of the completion 455b7ac27aSMauro Carvalho Chehabof journal recovery for one of the filesystems journals. It has 465b7ac27aSMauro Carvalho Chehabtwo environment variables, JID= which specifies the journal id which 475b7ac27aSMauro Carvalho Chehabhas just been recovered, and RECOVERY=[Done|Failed] to indicate the 485b7ac27aSMauro Carvalho Chehabsuccess (or otherwise) of the operation. These uevents are generated 495b7ac27aSMauro Carvalho Chehabfor every journal recovered, whether it is during the initial mount 505b7ac27aSMauro Carvalho Chehabprocess or as the result of gfs_controld requesting a specific journal 515b7ac27aSMauro Carvalho Chehabrecovery via the /sys/fs/gfs2/<fsname>/lock_module/recovery file. 525b7ac27aSMauro Carvalho Chehab 535b7ac27aSMauro Carvalho ChehabBecause the CHANGE uevent was used (in early versions of gfs_controld) 545b7ac27aSMauro Carvalho Chehabwithout checking the environment variables to discover the state, we 555b7ac27aSMauro Carvalho Chehabcannot add any more functions to it without running the risk of 565b7ac27aSMauro Carvalho Chehabsomeone using an older version of the user tools and breaking their 575b7ac27aSMauro Carvalho Chehabcluster. For this reason the ONLINE uevent was used when adding a new 585b7ac27aSMauro Carvalho Chehabuevent for a successful mount or remount. 595b7ac27aSMauro Carvalho Chehab 605b7ac27aSMauro Carvalho Chehab4. OFFLINE 615b7ac27aSMauro Carvalho Chehab---------- 625b7ac27aSMauro Carvalho Chehab 635b7ac27aSMauro Carvalho ChehabThe OFFLINE uevent is only generated due to filesystem errors and is used 645b7ac27aSMauro Carvalho Chehabas part of the "withdraw" mechanism. Currently this doesn't give any 655b7ac27aSMauro Carvalho Chehabinformation about what the error is, which is something that needs to 665b7ac27aSMauro Carvalho Chehabbe fixed. 675b7ac27aSMauro Carvalho Chehab 685b7ac27aSMauro Carvalho Chehab5. REMOVE 695b7ac27aSMauro Carvalho Chehab--------- 705b7ac27aSMauro Carvalho Chehab 715b7ac27aSMauro Carvalho ChehabThe REMOVE uevent is generated at the end of an unsuccessful mount 725b7ac27aSMauro Carvalho Chehabor at the end of a umount of the filesystem. All REMOVE uevents will 735b7ac27aSMauro Carvalho Chehabhave been preceded by at least an ADD uevent for the same filesystem, 745b7ac27aSMauro Carvalho Chehaband unlike the other uevents is generated automatically by the kernel's 755b7ac27aSMauro Carvalho Chehabkobject subsystem. 765b7ac27aSMauro Carvalho Chehab 775b7ac27aSMauro Carvalho Chehab 785b7ac27aSMauro Carvalho ChehabInformation common to all GFS2 uevents (uevent environment variables) 795b7ac27aSMauro Carvalho Chehab===================================================================== 805b7ac27aSMauro Carvalho Chehab 815b7ac27aSMauro Carvalho Chehab1. LOCKTABLE= 825b7ac27aSMauro Carvalho Chehab-------------- 835b7ac27aSMauro Carvalho Chehab 845b7ac27aSMauro Carvalho ChehabThe LOCKTABLE is a string, as supplied on the mount command 855b7ac27aSMauro Carvalho Chehabline (locktable=) or via fstab. It is used as a filesystem label 865b7ac27aSMauro Carvalho Chehabas well as providing the information for a lock_dlm mount to be 875b7ac27aSMauro Carvalho Chehabable to join the cluster. 885b7ac27aSMauro Carvalho Chehab 895b7ac27aSMauro Carvalho Chehab2. LOCKPROTO= 905b7ac27aSMauro Carvalho Chehab------------- 915b7ac27aSMauro Carvalho Chehab 925b7ac27aSMauro Carvalho ChehabThe LOCKPROTO is a string, and its value depends on what is set 935b7ac27aSMauro Carvalho Chehabon the mount command line, or via fstab. It will be either 945b7ac27aSMauro Carvalho Chehablock_nolock or lock_dlm. In the future other lock managers 955b7ac27aSMauro Carvalho Chehabmay be supported. 965b7ac27aSMauro Carvalho Chehab 975b7ac27aSMauro Carvalho Chehab3. JOURNALID= 985b7ac27aSMauro Carvalho Chehab------------- 995b7ac27aSMauro Carvalho Chehab 1005b7ac27aSMauro Carvalho ChehabIf a journal is in use by the filesystem (journals are not 1015b7ac27aSMauro Carvalho Chehabassigned for spectator mounts) then this will give the 1025b7ac27aSMauro Carvalho Chehabnumeric journal id in all GFS2 uevents. 1035b7ac27aSMauro Carvalho Chehab 1045b7ac27aSMauro Carvalho Chehab4. UUID= 1055b7ac27aSMauro Carvalho Chehab-------- 1065b7ac27aSMauro Carvalho Chehab 1075b7ac27aSMauro Carvalho ChehabWith recent versions of gfs2-utils, mkfs.gfs2 writes a UUID 1085b7ac27aSMauro Carvalho Chehabinto the filesystem superblock. If it exists, this will 1095b7ac27aSMauro Carvalho Chehabbe included in every uevent relating to the filesystem. 1105b7ac27aSMauro Carvalho Chehab 1115b7ac27aSMauro Carvalho Chehab 1125b7ac27aSMauro Carvalho Chehab 113