Re: [PATCH 2/3] xfs: convert perag lookup to xarray

Pankaj Raghav (Samsung)
2024-08-12T16:40:12Z

On Mon, Aug 12, 2024 at 08:31:01AM +0200, Christoph Hellwig wrote:
> diff --git a/fs/xfs/libxfs/xfs_ag.c b/fs/xfs/libxfs/xfs_ag.c
> index 7e80732cb54708..5efb1e8b4107a9 100644
> --- a/fs/xfs/libxfs/xfs_ag.c
> +++ b/fs/xfs/libxfs/xfs_ag.c
> @@ -46,7 +46,7 @@ xfs_perag_get(
> struct xfs_perag *pag;
>
> rcu_read_lock();
xa_load() already calls rcu_read_lock(). So we can get rid of this I
guess?
> - pag = radix_tree_lookup(&mp->m_perag_tree, agno);
> -xfs_perag_get_tag(
> - struct xfs_mount *mp,
> - xfs_agnumber_t first,
> - unsigned int tag)
> -{
> - struct xfs_perag *pag;
> - int found;
> -
> - rcu_read_lock();
> - found = radix_tree_gang_lookup_tag(&mp->m_perag_tree,
> - (void **)&pag, first, 1, tag);
> - if (found <= 0) {
> - rcu_read_unlock();
> - return NULL;
> - }
> - trace_xfs_perag_get_tag(pag, _RET_IP_);
> - atomic_inc(&pag->pag_ref);
> - rcu_read_unlock();
> - return pag;
> -}
> -
> /* Get a passive reference to the given perag. */
> struct xfs_perag *
> xfs_perag_hold(
> @@ -117,38 +92,13 @@ xfs_perag_grab(
> struct xfs_perag *pag;
>
> rcu_read_lock();
Same here.