aboutsummaryrefslogtreecommitdiffstats
path: root/fs
diff options
context:
space:
mode:
Diffstat (limited to 'fs')
-rw-r--r--fs/ocfs2/quota_local.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/fs/ocfs2/quota_local.c b/fs/ocfs2/quota_local.c
index 07deec5e9721..71cf410e89f0 100644
--- a/fs/ocfs2/quota_local.c
+++ b/fs/ocfs2/quota_local.c
@@ -655,6 +655,9 @@ static int ocfs2_local_read_info(struct super_block *sb, int type)
655 struct ocfs2_quota_recovery *rec; 655 struct ocfs2_quota_recovery *rec;
656 int locked = 0; 656 int locked = 0;
657 657
658 /* We don't need the lock and we have to acquire quota file locks
659 * which will later depend on this lock */
660 mutex_unlock(&sb_dqopt(sb)->dqio_mutex);
658 info->dqi_maxblimit = 0x7fffffffffffffffLL; 661 info->dqi_maxblimit = 0x7fffffffffffffffLL;
659 info->dqi_maxilimit = 0x7fffffffffffffffLL; 662 info->dqi_maxilimit = 0x7fffffffffffffffLL;
660 oinfo = kmalloc(sizeof(struct ocfs2_mem_dqinfo), GFP_NOFS); 663 oinfo = kmalloc(sizeof(struct ocfs2_mem_dqinfo), GFP_NOFS);
@@ -733,6 +736,7 @@ static int ocfs2_local_read_info(struct super_block *sb, int type)
733 goto out_err; 736 goto out_err;
734 } 737 }
735 738
739 mutex_lock(&sb_dqopt(sb)->dqio_mutex);
736 return 0; 740 return 0;
737out_err: 741out_err:
738 if (oinfo) { 742 if (oinfo) {
@@ -746,6 +750,7 @@ out_err:
746 kfree(oinfo); 750 kfree(oinfo);
747 } 751 }
748 brelse(bh); 752 brelse(bh);
753 mutex_lock(&sb_dqopt(sb)->dqio_mutex);
749 return -1; 754 return -1;
750} 755}
751 756