mirror of https://gitee.com/openkylin/linux.git
f2fs: quota: decrease the lock granularity of statfs_project
According to fs/quota/dquot.c, `dq_data_lock' protects mem_dqinfo structures and modifications of dquot pointers in the inode, and `dquot->dq_dqb_lock' protects data from dq_dqb. We should use dquot->dq_dqb_lock in statfs_project instead of dq_dat_lock. Signed-off-by: Sheng Yong <shengyong1@huawei.com> Reviewed-by: Chao Yu <yuchao0@huawei.com> Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
This commit is contained in:
parent
970e348d98
commit
955ac6e523
|
@ -1117,7 +1117,7 @@ static int f2fs_statfs_project(struct super_block *sb,
|
||||||
dquot = dqget(sb, qid);
|
dquot = dqget(sb, qid);
|
||||||
if (IS_ERR(dquot))
|
if (IS_ERR(dquot))
|
||||||
return PTR_ERR(dquot);
|
return PTR_ERR(dquot);
|
||||||
spin_lock(&dq_data_lock);
|
spin_lock(&dquot->dq_dqb_lock);
|
||||||
|
|
||||||
limit = (dquot->dq_dqb.dqb_bsoftlimit ?
|
limit = (dquot->dq_dqb.dqb_bsoftlimit ?
|
||||||
dquot->dq_dqb.dqb_bsoftlimit :
|
dquot->dq_dqb.dqb_bsoftlimit :
|
||||||
|
@ -1140,7 +1140,7 @@ static int f2fs_statfs_project(struct super_block *sb,
|
||||||
(buf->f_files - dquot->dq_dqb.dqb_curinodes) : 0;
|
(buf->f_files - dquot->dq_dqb.dqb_curinodes) : 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
spin_unlock(&dq_data_lock);
|
spin_unlock(&dquot->dq_dqb_lock);
|
||||||
dqput(dquot);
|
dqput(dquot);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue