]> git.ipfire.org Git - thirdparty/xfsprogs-dev.git/commitdiff
xfs: move the tagged perag lookup helpers to xfs_icache.c
authorChristoph Hellwig <hch@lst.de>
Mon, 21 Oct 2024 00:10:45 +0000 (17:10 -0700)
committerDarrick J. Wong <djwong@kernel.org>
Thu, 31 Oct 2024 22:45:03 +0000 (15:45 -0700)
Source kernel commit: f48f0a8e00b67028d4492e7656b346fa0d806570

The tagged perag helpers are only used in xfs_icache.c in the kernel code
and not at all in xfsprogs.  Move them to xfs_icache.c in preparation for
switching to an xarray, for which I have no plan to implement the tagged
lookup functions for userspace.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Darrick J. Wong <djwong@kernel.org>
Signed-off-by: Chandan Babu R <chandanbabu@kernel.org>
libxfs/xfs_ag.c
libxfs/xfs_ag.h

index 1b65ba983ad542afa22d3d50d46e21310a12f929..a63d9c0dc6fe44a53ff0c9213f6cc6e136d7c497 100644 (file)
@@ -54,31 +54,6 @@ xfs_perag_get(
        return pag;
 }
 
-/*
- * search from @first to find the next perag with the given tag set.
- */
-struct xfs_perag *
-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(
@@ -125,32 +100,6 @@ xfs_perag_grab(
        return pag;
 }
 
-/*
- * search from @first to find the next perag with the given tag set.
- */
-struct xfs_perag *
-xfs_perag_grab_tag(
-       struct xfs_mount        *mp,
-       xfs_agnumber_t          first,
-       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_grab_tag(pag, _RET_IP_);
-       if (!atomic_inc_not_zero(&pag->pag_active_ref))
-               pag = NULL;
-       rcu_read_unlock();
-       return pag;
-}
-
 void
 xfs_perag_rele(
        struct xfs_perag        *pag)
index d62c266c0b44d54942003921d7b8180a1d06c53c..d9cccd093b60e06a5d16f79662471e67455329fc 100644 (file)
@@ -153,15 +153,11 @@ void xfs_free_perag(struct xfs_mount *mp);
 
 /* Passive AG references */
 struct xfs_perag *xfs_perag_get(struct xfs_mount *mp, xfs_agnumber_t agno);
-struct xfs_perag *xfs_perag_get_tag(struct xfs_mount *mp, xfs_agnumber_t agno,
-               unsigned int tag);
 struct xfs_perag *xfs_perag_hold(struct xfs_perag *pag);
 void xfs_perag_put(struct xfs_perag *pag);
 
 /* Active AG references */
 struct xfs_perag *xfs_perag_grab(struct xfs_mount *, xfs_agnumber_t);
-struct xfs_perag *xfs_perag_grab_tag(struct xfs_mount *, xfs_agnumber_t,
-                                  int tag);
 void xfs_perag_rele(struct xfs_perag *pag);
 
 /*
@@ -263,13 +259,6 @@ xfs_perag_next(
        (agno) = 0; \
        for_each_perag_from((mp), (agno), (pag))
 
-#define for_each_perag_tag(mp, agno, pag, tag) \
-       for ((agno) = 0, (pag) = xfs_perag_grab_tag((mp), 0, (tag)); \
-               (pag) != NULL; \
-               (agno) = (pag)->pag_agno + 1, \
-               xfs_perag_rele(pag), \
-               (pag) = xfs_perag_grab_tag((mp), (agno), (tag)))
-
 static inline struct xfs_perag *
 xfs_perag_next_wrap(
        struct xfs_perag        *pag,