aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJan Kara <jack@suse.cz>2009-11-12 09:42:08 -0500
committerJan Kara <jack@suse.cz>2009-12-10 09:02:51 -0500
commitc56818d7dc976a7392be82e8e04fe26347d591f3 (patch)
tree28c40dcb53198dc6870bb75b0250458579ade727
parent1472da5fdc65f0cd286c655758d629346001e126 (diff)
quota: Fix WARN_ON in lookup_one_len
We should hold i_mutex when looking up quota files for journaled quotas, otherwise a WARN_ON in lookup_one_len triggers. The fact that we didn't hold i_mutex previously probably could not lead to a real bug since the filesystem is just being mounted / remounted read-write and thus the root directory cannot change anyway but it's definitely cleaner with i_mutex. Reported-by: Bastien ROUCARIES <roucaries.bastien@gmail.com> Signed-off-by: Jan Kara <jack@suse.cz>
-rw-r--r--fs/quota/dquot.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/fs/quota/dquot.c b/fs/quota/dquot.c
index eb5a755718f6..cd6bb9a33c13 100644
--- a/fs/quota/dquot.c
+++ b/fs/quota/dquot.c
@@ -2164,7 +2164,9 @@ int vfs_quota_on_mount(struct super_block *sb, char *qf_name,
2164 struct dentry *dentry; 2164 struct dentry *dentry;
2165 int error; 2165 int error;
2166 2166
2167 mutex_lock(&sb->s_root->d_inode->i_mutex);
2167 dentry = lookup_one_len(qf_name, sb->s_root, strlen(qf_name)); 2168 dentry = lookup_one_len(qf_name, sb->s_root, strlen(qf_name));
2169 mutex_unlock(&sb->s_root->d_inode->i_mutex);
2168 if (IS_ERR(dentry)) 2170 if (IS_ERR(dentry))
2169 return PTR_ERR(dentry); 2171 return PTR_ERR(dentry);
2170 2172