summaryrefslogtreecommitdiff
path: root/fs/gfs2/incore.h
diff options
context:
space:
mode:
authorDave Chinner <dchinner@redhat.com>2011-03-11 11:52:25 +0000
committerSteven Whitehouse <swhiteho@redhat.com>2011-03-11 11:52:25 +0000
commitd6a079e82efd5fcbb1c7295f22e123c2cc748018 (patch)
treef95f3369dfb560bfc5d282577ca1edec0487e1d7 /fs/gfs2/incore.h
parente4a7b7b0c98efcdcc4c1f6eb10925dec1fbc4016 (diff)
downloadlwn-d6a079e82efd5fcbb1c7295f22e123c2cc748018.tar.gz
lwn-d6a079e82efd5fcbb1c7295f22e123c2cc748018.zip
GFS2: introduce AIL lock
The log lock is currently used to protect the AIL lists and the movements of buffers into and out of them. The lists are self contained and no log specific items outside the lists are accessed when starting or emptying the AIL lists. Hence the operation of the AIL does not require the protection of the log lock so split them out into a new AIL specific lock to reduce the amount of traffic on the log lock. This will also reduce the amount of serialisation that occurs when the gfs2_logd pushes on the AIL to move it forward. This reduces the impact of log pushing on sequential write throughput. Signed-off-by: Dave Chinner <dchinner@redhat.com> Signed-off-by: Steven Whitehouse <swhiteho@redhat.com>
Diffstat (limited to 'fs/gfs2/incore.h')
-rw-r--r--fs/gfs2/incore.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/fs/gfs2/incore.h b/fs/gfs2/incore.h
index 59aaaa051136..870a89d6d4dc 100644
--- a/fs/gfs2/incore.h
+++ b/fs/gfs2/incore.h
@@ -651,6 +651,7 @@ struct gfs2_sbd {
unsigned int sd_log_flush_head;
u64 sd_log_flush_wrapped;
+ spinlock_t sd_ail_lock;
struct list_head sd_ail1_list;
struct list_head sd_ail2_list;
u64 sd_ail_sync_gen;