Re: [PATCH v2] quota: fix a problem about transfer quota

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue 26-03-19 22:00:02, yangerkun wrote:
> Run below script as root, dquot_add_space will return -EDQUOT since
> __dquot_transfer call dquot_add_space with flags=0, and dquot_add_space
> think it's a preallocation. Fix it by set flags as DQUOT_SPACE_WARN.
> 
> mkfs.ext4 -O quota,project /dev/vdb
> mount -o prjquota /dev/vdb /mnt
> setquota -P 23 1 1 0 0 /dev/vdb
> dd if=/dev/zero of=/mnt/test-file bs=4K count=1
> chattr -p 23 test-file
> 
> Fixes: 7b9ca4c61("quota: Reduce contention on dq_data_lock")
> Signed-off-by: yangerkun <yangerkun@xxxxxxxxxx>

Thanks! I've added the fix to my tree.

								Honza

> ---
>  fs/quota/dquot.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/fs/quota/dquot.c b/fs/quota/dquot.c
> index fc20e06..dd1783e 100644
> --- a/fs/quota/dquot.c
> +++ b/fs/quota/dquot.c
> @@ -1993,8 +1993,8 @@ int __dquot_transfer(struct inode *inode, struct dquot **transfer_to)
>  				       &warn_to[cnt]);
>  		if (ret)
>  			goto over_quota;
> -		ret = dquot_add_space(transfer_to[cnt], cur_space, rsv_space, 0,
> -				      &warn_to[cnt]);
> +		ret = dquot_add_space(transfer_to[cnt], cur_space, rsv_space,
> +				      DQUOT_SPACE_WARN, &warn_to[cnt]);
>  		if (ret) {
>  			spin_lock(&transfer_to[cnt]->dq_dqb_lock);
>  			dquot_decr_inodes(transfer_to[cnt], inode_usage);
> -- 
> 2.7.4
> 
> 
-- 
Jan Kara <jack@xxxxxxxx>
SUSE Labs, CR



[Index of Archives]     [Linux Ext4 Filesystem]     [Union Filesystem]     [Filesystem Testing]     [Ceph Users]     [Ecryptfs]     [AutoFS]     [Kernel Newbies]     [Share Photos]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux Cachefs]     [Reiser Filesystem]     [Linux RAID]     [Samba]     [Device Mapper]     [CEPH Development]

  Powered by Linux