Re: [PATCH 4/4] xfs: clean up icreate quota reservation calls

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

 



On Sat, Jan 23, 2021 at 10:51:57AM -0800, Darrick J. Wong wrote:
> From: Darrick J. Wong <djwong@xxxxxxxxxx>
> 
> Create a proper helper so that inode creation calls can reserve quota
> with a dedicated function.
> 
> Signed-off-by: Darrick J. Wong <djwong@xxxxxxxxxx>
> Reviewed-by: Christoph Hellwig <hch@xxxxxx>
> ---
>  fs/xfs/xfs_inode.c       |    8 ++++----
>  fs/xfs/xfs_quota.h       |   15 +++++++++++----
>  fs/xfs/xfs_symlink.c     |    4 ++--
>  fs/xfs/xfs_trans_dquot.c |   21 +++++++++++++++++++++
>  4 files changed, 38 insertions(+), 10 deletions(-)
> 
> 
...
> diff --git a/fs/xfs/xfs_trans_dquot.c b/fs/xfs/xfs_trans_dquot.c
> index 28b8ac701919..3315498a6fa1 100644
> --- a/fs/xfs/xfs_trans_dquot.c
> +++ b/fs/xfs/xfs_trans_dquot.c
> @@ -804,6 +804,27 @@ xfs_trans_reserve_quota_nblks(
>  						nblks, ninos, flags);
>  }
>  
> +/* Change the quota reservations for an inode creation activity. */
> +int
> +xfs_trans_reserve_quota_icreate(
> +	struct xfs_trans	*tp,
> +	struct xfs_inode	*dp,
> +	struct xfs_dquot	*udqp,
> +	struct xfs_dquot	*gdqp,
> +	struct xfs_dquot	*pdqp,
> +	int64_t			nblks)
> +{
> +	struct xfs_mount	*mp = dp->i_mount;
> +
> +	if (!XFS_IS_QUOTA_RUNNING(mp) || !XFS_IS_QUOTA_ON(mp))
> +		return 0;
> +
> +	ASSERT(!xfs_is_quota_inode(&mp->m_sb, dp->i_ino));
> +
> +	return xfs_trans_reserve_quota_bydquots(tp, dp->i_mount, udqp, gdqp,
> +			pdqp, nblks, 1, XFS_QMOPT_RES_REGBLKS);

Considering we can get mp from tp (and it looks like we always pass tp),
is it worth even passing in dp for an (unlikely) assert? That seems a
little odd anyways since nothing down in this path actually uses or
cares about the parent inode. Also, no need to pass dp->i_mount above if
we've already defined mp, at least.

Brian

> +}
> +
>  /*
>   * This routine is called to allocate a quotaoff log item.
>   */
> 




[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