aboutsummaryrefslogtreecommitdiffstats
path: root/fs/ext3/super.c
diff options
context:
space:
mode:
authorEric Sandeen <sandeen@redhat.com>2009-12-14 13:00:30 -0600
committerJan Kara <jack@suse.cz>2009-12-23 13:44:11 +0100
commitb8a052d01669977f224255b0f9f2737018171ddb (patch)
tree2ef6c2e038d269f2bc4eb73e82439f0301d5c6b1 /fs/ext3/super.c
parentext3: ext3_mark_recovery_complete() doesn't need to use lock_super (diff)
downloadlinux-dev-b8a052d01669977f224255b0f9f2737018171ddb.tar.xz
linux-dev-b8a052d01669977f224255b0f9f2737018171ddb.zip
ext3: Replace lock/unlock_super() with an explicit lock for the orphan list
Use a separate lock to protect the orphan list, so we can stop overloading the use of lock_super(). Port of ext4 commit 3b9d4ed26680771295d904a6b83e88e620780893 by Theodore Ts'o <tytso@mit.edu>. CC: Theodore Ts'o <tytso@mit.edu> Signed-off-by: Eric Sandeen <sandeen@redhat.com> Signed-off-by: Jan Kara <jack@suse.cz>
Diffstat (limited to '')
-rw-r--r--fs/ext3/super.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/fs/ext3/super.c b/fs/ext3/super.c
index 806b8b780add..97dd3828384c 100644
--- a/fs/ext3/super.c
+++ b/fs/ext3/super.c
@@ -1928,6 +1928,7 @@ static int ext3_fill_super (struct super_block *sb, void *data, int silent)
sb->dq_op = &ext3_quota_operations;
#endif
INIT_LIST_HEAD(&sbi->s_orphan); /* unlinked but open files */
+ mutex_init(&sbi->s_orphan_lock);
sb->s_root = NULL;