diff options
-rw-r--r-- | fs/ocfs2/quota_local.c | 6 | ||||
-rw-r--r-- | fs/quota/dquot.c | 6 |
2 files changed, 6 insertions, 6 deletions
diff --git a/fs/ocfs2/quota_local.c b/fs/ocfs2/quota_local.c index 1311eff1c050..1829f6a45d46 100644 --- a/fs/ocfs2/quota_local.c +++ b/fs/ocfs2/quota_local.c @@ -693,7 +693,7 @@ static int ocfs2_local_read_info(struct super_block *sb, int type) /* We don't need the lock and we have to acquire quota file locks * which will later depend on this lock */ - up_write(&sb_dqopt(sb)->dqio_sem); + up_read(&sb_dqopt(sb)->dqio_sem); info->dqi_max_spc_limit = 0x7fffffffffffffffLL; info->dqi_max_ino_limit = 0x7fffffffffffffffLL; oinfo = kmalloc(sizeof(struct ocfs2_mem_dqinfo), GFP_NOFS); @@ -772,7 +772,7 @@ static int ocfs2_local_read_info(struct super_block *sb, int type) goto out_err; } - down_write(&sb_dqopt(sb)->dqio_sem); + down_read(&sb_dqopt(sb)->dqio_sem); return 0; out_err: if (oinfo) { @@ -786,7 +786,7 @@ out_err: kfree(oinfo); } brelse(bh); - down_write(&sb_dqopt(sb)->dqio_sem); + down_read(&sb_dqopt(sb)->dqio_sem); return -1; } diff --git a/fs/quota/dquot.c b/fs/quota/dquot.c index 8d5ccad3bf3e..3852a3c79ac9 100644 --- a/fs/quota/dquot.c +++ b/fs/quota/dquot.c @@ -2331,15 +2331,15 @@ static int vfs_load_quota_inode(struct inode *inode, int type, int format_id, dqopt->info[type].dqi_format = fmt; dqopt->info[type].dqi_fmt_id = format_id; INIT_LIST_HEAD(&dqopt->info[type].dqi_dirty_list); - down_write(&dqopt->dqio_sem); + down_read(&dqopt->dqio_sem); error = dqopt->ops[type]->read_file_info(sb, type); if (error < 0) { - up_write(&dqopt->dqio_sem); + up_read(&dqopt->dqio_sem); goto out_file_init; } if (dqopt->flags & DQUOT_QUOTA_SYS_FILE) dqopt->info[type].dqi_flags |= DQF_SYS_FILE; - up_write(&dqopt->dqio_sem); + up_read(&dqopt->dqio_sem); spin_lock(&dq_state_lock); dqopt->flags |= dquot_state_flag(flags, type); spin_unlock(&dq_state_lock); |