summaryrefslogtreecommitdiff
path: root/fs
diff options
context:
space:
mode:
authorJan Kara <jack@suse.cz>2009-11-12 15:42:08 +0100
committerJan Kara <jack@suse.cz>2009-11-23 15:24:33 +0100
commit3b696723ea56455027b470e7885d77b02368573d (patch)
tree3cf9963af44615a752a1c30c5933fe3bd6cc702b /fs
parent1f840b125ba559881f895cc94a1cd72e89cb9ac8 (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>
Diffstat (limited to 'fs')
-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 39b49c42a7ed..aa97df1dd6dc 100644
--- a/fs/quota/dquot.c
+++ b/fs/quota/dquot.c
@@ -2233,7 +2233,9 @@ int vfs_quota_on_mount(struct super_block *sb, char *qf_name,
struct dentry *dentry;
int error;
+ mutex_lock(&sb->s_root->d_inode->i_mutex);
dentry = lookup_one_len(qf_name, sb->s_root, strlen(qf_name));
+ mutex_unlock(&sb->s_root->d_inode->i_mutex);
if (IS_ERR(dentry))
return PTR_ERR(dentry);