mirror of
https://github.com/FEX-Emu/linux.git
synced 2025-01-01 14:52:32 +00:00
quota: add missing lock into __dquot_transfer()
Lock dq_dqb_lock around dquot_decr_inodes()
Signed-off-by: Konstantin Khlebnikov <khlebnikov@yandex-team.ru>
Fixes: 7b9ca4c61b
("quota: Reduce contention on dq_data_lock")
Signed-off-by: Jan Kara <jack@suse.cz>
This commit is contained in:
parent
0666f560b7
commit
0a51fb7174
@ -1980,7 +1980,9 @@ int __dquot_transfer(struct inode *inode, struct dquot **transfer_to)
|
|||||||
ret = dquot_add_space(transfer_to[cnt], cur_space, rsv_space, 0,
|
ret = dquot_add_space(transfer_to[cnt], cur_space, rsv_space, 0,
|
||||||
&warn_to[cnt]);
|
&warn_to[cnt]);
|
||||||
if (ret) {
|
if (ret) {
|
||||||
|
spin_lock(&transfer_to[cnt]->dq_dqb_lock);
|
||||||
dquot_decr_inodes(transfer_to[cnt], inode_usage);
|
dquot_decr_inodes(transfer_to[cnt], inode_usage);
|
||||||
|
spin_unlock(&transfer_to[cnt]->dq_dqb_lock);
|
||||||
goto over_quota;
|
goto over_quota;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user