summaryrefslogtreecommitdiffstats
path: root/fs/ocfs2/super.c
diff options
context:
space:
mode:
authorTao Ma <tao.ma@oracle.com>2009-02-24 17:40:26 -0800
committerMark Fasheh <mfasheh@suse.com>2009-02-26 11:51:11 -0800
commitc8b9cf9a7cd25ba65166116d0a958f0bc709f0a7 (patch)
tree81ab9d6d0be93e57bcb17130abed3516574b3752 /fs/ocfs2/super.c
parent89a907afe073b8971a83d0ad54f391542b64d327 (diff)
downloadlinux-c8b9cf9a7cd25ba65166116d0a958f0bc709f0a7.tar.gz
linux-c8b9cf9a7cd25ba65166116d0a958f0bc709f0a7.tar.bz2
linux-c8b9cf9a7cd25ba65166116d0a958f0bc709f0a7.zip
ocfs2: lock the metaecc process for xattr bucket
For other metadata in ocfs2, metaecc is checked in ocfs2_read_blocks with io_mutex held. While for xattr bucket, it is calculated by the whole buckets. So we have to add a spin_lock to prevent multiple processes calculating metaecc. Signed-off-by: Tao Ma <tao.ma@oracle.com> Tested-by: Tristan Ye <tristan.ye@oracle.com> Signed-off-by: Mark Fasheh <mfasheh@suse.com>
Diffstat (limited to 'fs/ocfs2/super.c')
-rw-r--r--fs/ocfs2/super.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/fs/ocfs2/super.c b/fs/ocfs2/super.c
index b1cb38fbe807..1c3acc4654d8 100644
--- a/fs/ocfs2/super.c
+++ b/fs/ocfs2/super.c
@@ -1747,6 +1747,7 @@ static int ocfs2_initialize_super(struct super_block *sb,
INIT_LIST_HEAD(&osb->blocked_lock_list);
osb->blocked_lock_count = 0;
spin_lock_init(&osb->osb_lock);
+ spin_lock_init(&osb->osb_xattr_lock);
ocfs2_init_inode_steal_slot(osb);
atomic_set(&osb->alloc_stats.moves, 0);