summaryrefslogtreecommitdiff
path: root/Template
blob: 71449819225767d1f3f476e1da2465bd897cda0d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
define TOOL_templ
  include $(1)/Makefile
  $(1) $(1)%: BUILD_DIR := $(1)
  $(1) $(1)%: CFLAGS += $$($(1)-eflags)
  $(1)_prehook:
	$(Q)echo "$(bold)$(WHAT) $(1):$(normal)"
  $(1): $(1)_prehook $$($(1)-lex) $$($(1)-yaac) $$(patsubst %.o,$(1)/%.o,$$($(1)-objs))
  $(1)_clean: $(1)_clean_custom
	$(Q)$$(call RM,$(1)/*.o $(1)/$(1) $(1)/*.gz)
  $(1)_do_install:
	$(Q)$$(call INSTX,$(1)/$(1),$$(DESTDIR)$$(SBINDIR))
	$(Q)$(GZIP) $(1).8 > $(1)/$(1).8.gz
	$(Q)$$(call INST,$(1)/$(1).8.gz,$$(DESTDIR)$$(MAN8DIR))
	$(Q)$$(foreach file,$$($(1)-confs),$$(call INST,$$(file),$$(DESTDIR)$$(ETCDIRE));)
  $(1)_install: $(1)_do_install $(1)_post_install
  $(1)_uninstall: $(1)_uninstall_custom
	$(Q)$$(call RM,$$(DESTDIR)$$(SBINDIR)/$(1))
	$(Q)$$(call RM,$$(DESTDIR)$$(MAN8DIR)/$(1).8.gz)
  $(1)/%.yy.o: $(1)/%.yy.c
	$$(CCQ) $$(CFLAGS) -o $$@ -c $$<
  $(1)/%.tab.o: $(1)/%.tab.c
	$$(CCQ) $$(CFLAGS) -o $$@ -c $$<
  $(1)/%.o: %.c %.h
	$$(CHECK) $$(CFLAGS) $$(CHECKFLAGS) $$<
	$$(CCQ) $$(CFLAGS) -o $(1)/$$(shell basename $$@) -c $$<
  $(1)/%.o: %.c
	$$(CHECK) $$(CFLAGS) $$(CHECKFLAGS) $$<
	$$(CCQ) $$(CFLAGS) -o $(1)/$$(shell basename $$@) -c $$<
endef
ecovery.c parentfc554ed3d89d220b9d0c020e19aa52fb6bf1d673 (diff)
GFS2: Move recovery variables to journal structure in memory
If multiple nodes fail and their recovery work runs simultaneously, they would use the same unprotected variables in the superblock. For example, they would stomp on each other's revoked blocks lists, which resulted in file system metadata corruption. This patch moves the necessary variables so that each journal has its own separate area for tracking its journal replay. Signed-off-by: Bob Peterson <rpeterso@redhat.com> Signed-off-by: Steven Whitehouse <swhiteho@redhat.com>
Diffstat (limited to 'fs/gfs2/recovery.c')