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/glops.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/glops.c')
-rw-r--r-- | fs/gfs2/glops.c | 14 |
1 files changed, 0 insertions, 14 deletions
diff --git a/fs/gfs2/glops.c b/fs/gfs2/glops.c index 8522d3aa64fc..f07ede8cb9ba 100644 --- a/fs/gfs2/glops.c +++ b/fs/gfs2/glops.c | |||
@@ -12,7 +12,6 @@ | |||
12 | #include <linux/completion.h> | 12 | #include <linux/completion.h> |
13 | #include <linux/buffer_head.h> | 13 | #include <linux/buffer_head.h> |
14 | #include <linux/gfs2_ondisk.h> | 14 | #include <linux/gfs2_ondisk.h> |
15 | #include <linux/lm_interface.h> | ||
16 | #include <linux/bio.h> | 15 | #include <linux/bio.h> |
17 | 16 | ||
18 | #include "gfs2.h" | 17 | #include "gfs2.h" |
@@ -390,18 +389,6 @@ static int trans_go_demote_ok(const struct gfs2_glock *gl) | |||
390 | return 0; | 389 | return 0; |
391 | } | 390 | } |
392 | 391 | ||
393 | /** | ||
394 | * quota_go_demote_ok - Check to see if it's ok to unlock a quota glock | ||
395 | * @gl: the glock | ||
396 | * | ||
397 | * Returns: 1 if it's ok | ||
398 | */ | ||
399 | |||
400 | static int quota_go_demote_ok(const struct gfs2_glock *gl) | ||
401 | { | ||
402 | return !atomic_read(&gl->gl_lvb_count); | ||
403 | } | ||
404 | |||
405 | const struct gfs2_glock_operations gfs2_meta_glops = { | 392 | const struct gfs2_glock_operations gfs2_meta_glops = { |
406 | .go_xmote_th = meta_go_sync, | 393 | .go_xmote_th = meta_go_sync, |
407 | .go_type = LM_TYPE_META, | 394 | .go_type = LM_TYPE_META, |
@@ -448,7 +435,6 @@ const struct gfs2_glock_operations gfs2_nondisk_glops = { | |||
448 | }; | 435 | }; |
449 | 436 | ||
450 | const struct gfs2_glock_operations gfs2_quota_glops = { | 437 | const struct gfs2_glock_operations gfs2_quota_glops = { |
451 | .go_demote_ok = quota_go_demote_ok, | ||
452 | .go_type = LM_TYPE_QUOTA, | 438 | .go_type = LM_TYPE_QUOTA, |
453 | }; | 439 | }; |
454 | 440 | ||