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