Re: [PATCH v4 3/3] xfs: directly return if the delta equal to zero

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

 




On 2020/10/9 19:32, Brian Foster wrote:
> On Thu, Oct 08, 2020 at 12:19:09PM +0800, xiakaixu1987@xxxxxxxxx wrote:
>> From: Kaixu Xia <kaixuxia@xxxxxxxxxxx>
>>
>> The xfs_trans_mod_dquot() function will allocate new tp->t_dqinfo if it is
>> NULL and make the changes in the tp->t_dqinfo->dqs[XFS_QM_TRANS_{USR,GRP,PRJ}].
>> Nowadays seems none of the callers want to join the dquots to the
>> transaction and push them to device when the delta is zero. Actually,
>> most of time the caller would check the delta and go on only when the
>> delta value is not zero, so we should bail out when it is zero.
>>
>> Signed-off-by: Kaixu Xia <kaixuxia@xxxxxxxxxxx>
>> Reviewed-by: Darrick J. Wong <darrick.wong@xxxxxxxxxx>
>> ---
>>  fs/xfs/xfs_trans_dquot.c | 12 ++++++------
>>  1 file changed, 6 insertions(+), 6 deletions(-)
>>
>> diff --git a/fs/xfs/xfs_trans_dquot.c b/fs/xfs/xfs_trans_dquot.c
>> index 0ebfd7930382..3e37501791bf 100644
>> --- a/fs/xfs/xfs_trans_dquot.c
>> +++ b/fs/xfs/xfs_trans_dquot.c
>> @@ -194,6 +194,9 @@ xfs_trans_mod_dquot(
>>  	ASSERT(XFS_IS_QUOTA_RUNNING(tp->t_mountp));
>>  	qtrx = NULL;
>>  
>> +	if (!delta)
>> +		return;
>> +
> 
> Note that the calls in xfs_trans_dqresv() also check for delta != 0, so
> that could be removed with this patch. That aside:

Yeah, I'll do that in the next version.

Thanks,
Kaixu
> 
> Reviewed-by: Brian Foster <bfoster@xxxxxxxxxx>
> 
>>  	if (tp->t_dqinfo == NULL)
>>  		xfs_trans_alloc_dqinfo(tp);
>>  	/*
>> @@ -205,10 +208,8 @@ xfs_trans_mod_dquot(
>>  	if (qtrx->qt_dquot == NULL)
>>  		qtrx->qt_dquot = dqp;
>>  
>> -	if (delta) {
>> -		trace_xfs_trans_mod_dquot_before(qtrx);
>> -		trace_xfs_trans_mod_dquot(tp, dqp, field, delta);
>> -	}
>> +	trace_xfs_trans_mod_dquot_before(qtrx);
>> +	trace_xfs_trans_mod_dquot(tp, dqp, field, delta);
>>  
>>  	switch (field) {
>>  	/* regular disk blk reservation */
>> @@ -261,8 +262,7 @@ xfs_trans_mod_dquot(
>>  		ASSERT(0);
>>  	}
>>  
>> -	if (delta)
>> -		trace_xfs_trans_mod_dquot_after(qtrx);
>> +	trace_xfs_trans_mod_dquot_after(qtrx);
>>  }
>>  
>>  
>> -- 
>> 2.20.0
>>
> 

-- 
kaixuxia



[Index of Archives]     [XFS Filesystem Development (older mail)]     [Linux Filesystem Development]     [Linux Audio Users]     [Yosemite Trails]     [Linux Kernel]     [Linux RAID]     [Linux SCSI]


  Powered by Linux