diff options
author | Steven Whitehouse <swhiteho@redhat.com> | 2009-01-12 05:43:39 -0500 |
---|---|---|
committer | Steven Whitehouse <steve@dolmen.chygwyn.com> | 2009-03-24 07:21:14 -0400 |
commit | f057f6cdf64175db1151b1f5d110e29904f119a1 (patch) | |
tree | 582dbf358e351f64977620c29ebf772d693b1948 /fs/gfs2/inode.c | |
parent | 22077f57dec8fcbeb1112b35313961c0902ff038 (diff) |
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: Steven Whitehouse <swhiteho@redhat.com>
Diffstat (limited to 'fs/gfs2/inode.c')
-rw-r--r-- | fs/gfs2/inode.c | 13 |
1 files changed, 6 insertions, 7 deletions
diff --git a/fs/gfs2/inode.c b/fs/gfs2/inode.c index 3b87c188da41..7b277d449155 100644 --- a/fs/gfs2/inode.c +++ b/fs/gfs2/inode.c | |||
@@ -16,7 +16,6 @@ | |||
16 | #include <linux/sort.h> | 16 | #include <linux/sort.h> |
17 | #include <linux/gfs2_ondisk.h> | 17 | #include <linux/gfs2_ondisk.h> |
18 | #include <linux/crc32.h> | 18 | #include <linux/crc32.h> |
19 | #include <linux/lm_interface.h> | ||
20 | #include <linux/security.h> | 19 | #include <linux/security.h> |
21 | #include <linux/time.h> | 20 | #include <linux/time.h> |
22 | 21 | ||
@@ -137,16 +136,16 @@ void gfs2_set_iop(struct inode *inode) | |||
137 | 136 | ||
138 | if (S_ISREG(mode)) { | 137 | if (S_ISREG(mode)) { |
139 | inode->i_op = &gfs2_file_iops; | 138 | inode->i_op = &gfs2_file_iops; |
140 | if (sdp->sd_args.ar_localflocks) | 139 | if (gfs2_localflocks(sdp)) |
141 | inode->i_fop = &gfs2_file_fops_nolock; | 140 | inode->i_fop = gfs2_file_fops_nolock; |
142 | else | 141 | else |
143 | inode->i_fop = &gfs2_file_fops; | 142 | inode->i_fop = gfs2_file_fops; |
144 | } else if (S_ISDIR(mode)) { | 143 | } else if (S_ISDIR(mode)) { |
145 | inode->i_op = &gfs2_dir_iops; | 144 | inode->i_op = &gfs2_dir_iops; |
146 | if (sdp->sd_args.ar_localflocks) | 145 | if (gfs2_localflocks(sdp)) |
147 | inode->i_fop = &gfs2_dir_fops_nolock; | 146 | inode->i_fop = gfs2_dir_fops_nolock; |
148 | else | 147 | else |
149 | inode->i_fop = &gfs2_dir_fops; | 148 | inode->i_fop = gfs2_dir_fops; |
150 | } else if (S_ISLNK(mode)) { | 149 | } else if (S_ISLNK(mode)) { |
151 | inode->i_op = &gfs2_symlink_iops; | 150 | inode->i_op = &gfs2_symlink_iops; |
152 | } else { | 151 | } else { |