Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit f057f6cd authored by Steven Whitehouse's avatar Steven Whitehouse Committed by Steven Whitehouse
Browse files

GFS2: Merge lock_dlm module into GFS2



This is the big patch that I've been working on for some time
now. There are many reasons for wanting to make this change
such as:
 o Reducing overhead by eliminating duplicated fields between structures
 o Simplifcation of the code (reduces the code size by a fair bit)
 o The locking interface is now the DLM interface itself as proposed
   some time ago.
 o Fewer lookups of glocks when processing replies from the DLM
 o Fewer memory allocations/deallocations for each glock
 o Scope to do further optimisations in the future (but this patch is
   more than big enough for now!)

Please note that (a) this patch relates to the lock_dlm module and
not the DLM itself, that is still a separate module; and (b) that
we retain the ability to build GFS2 as a standalone single node
filesystem with out requiring the DLM.

This patch needs a lot of testing, hence my keeping it I restarted
my -git tree after the last merge window. That way, this has the maximum
exposure before its merged. This is (modulo a few minor bug fixes) the
same patch that I've been posting on and off the the last three months
and its passed a number of different tests so far.

Signed-off-by: default avatarSteven Whitehouse <swhiteho@redhat.com>
parent 22077f57
Loading
Loading
Loading
Loading
+10 −7
Original line number Diff line number Diff line
config GFS2_FS
	tristate "GFS2 file system support"
	depends on EXPERIMENTAL && (64BIT || LBD)
	select DLM if GFS2_FS_LOCKING_DLM
	select CONFIGFS_FS if GFS2_FS_LOCKING_DLM
	select SYSFS if GFS2_FS_LOCKING_DLM
	select IP_SCTP if DLM_SCTP
	select FS_POSIX_ACL
	select CRC32
	help
@@ -18,17 +22,16 @@ config GFS2_FS
	  the locking module below. Documentation and utilities for GFS2 can
	  be found here: http://sources.redhat.com/cluster

	  The "nolock" lock module is now built in to GFS2 by default.
	  The "nolock" lock module is now built in to GFS2 by default. If
	  you want to use the DLM, be sure to enable HOTPLUG and IPv4/6
	  networking.

config GFS2_FS_LOCKING_DLM
	tristate "GFS2 DLM locking module"
	depends on GFS2_FS && SYSFS && NET && INET && (IPV6 || IPV6=n)
	select IP_SCTP if DLM_SCTP
	select CONFIGFS_FS
	select DLM
	bool "GFS2 DLM locking"
	depends on (GFS2_FS!=n) && NET && INET && (IPV6 || IPV6=n) && HOTPLUG
	help
	  Multiple node locking module for GFS2

	  Most users of GFS2 will require this module. It provides the locking
	  Most users of GFS2 will require this. It provides the locking
	  interface between GFS2 and the DLM, which is required to use GFS2
	  in a cluster environment.
+2 −2
Original line number Diff line number Diff line
obj-$(CONFIG_GFS2_FS) += gfs2.o
gfs2-y := acl.o bmap.o dir.o eaops.o eattr.o glock.o \
	glops.o inode.o log.o lops.o locking.o main.o meta_io.o \
	glops.o inode.o log.o lops.o main.o meta_io.o \
	mount.o ops_address.o ops_dentry.o ops_export.o ops_file.o \
	ops_fstype.o ops_inode.o ops_super.o quota.o \
	recovery.o rgrp.o super.o sys.o trans.o util.o

obj-$(CONFIG_GFS2_FS_LOCKING_DLM) += locking/dlm/
gfs2-$(CONFIG_GFS2_FS_LOCKING_DLM) += lock_dlm.o
+0 −1
Original line number Diff line number Diff line
@@ -15,7 +15,6 @@
#include <linux/posix_acl.h>
#include <linux/posix_acl_xattr.h>
#include <linux/gfs2_ondisk.h>
#include <linux/lm_interface.h>

#include "gfs2.h"
#include "incore.h"
+0 −1
Original line number Diff line number Diff line
@@ -13,7 +13,6 @@
#include <linux/buffer_head.h>
#include <linux/gfs2_ondisk.h>
#include <linux/crc32.h>
#include <linux/lm_interface.h>

#include "gfs2.h"
#include "incore.h"
+0 −1
Original line number Diff line number Diff line
@@ -60,7 +60,6 @@
#include <linux/gfs2_ondisk.h>
#include <linux/crc32.h>
#include <linux/vmalloc.h>
#include <linux/lm_interface.h>

#include "gfs2.h"
#include "incore.h"
Loading