Commit 4ecbfe63 authored by Dave Chinner's avatar Dave Chinner Committed by Ben Myers

xfs: clean up busy extent naming

Now that the busy extent tracking has been moved out of the
allocation files, clean up the namespace it uses to
"xfs_extent_busy" rather than a mix of "xfs_busy" and
"xfs_alloc_busy".

Signed-off-by: Dave Chinner<dchinner@redhat.com>
Reviewed-by: default avatarChristoph Hellwig <hch@lst.de>
Reviewed-by: default avatarMark Tinguely <tinguely@sgi.com>
Signed-off-by: default avatarBen Myers <bpm@sgi.com>
parent efc27b52
...@@ -47,7 +47,7 @@ STATIC int xfs_alloc_ag_vextent_near(xfs_alloc_arg_t *); ...@@ -47,7 +47,7 @@ STATIC int xfs_alloc_ag_vextent_near(xfs_alloc_arg_t *);
STATIC int xfs_alloc_ag_vextent_size(xfs_alloc_arg_t *); STATIC int xfs_alloc_ag_vextent_size(xfs_alloc_arg_t *);
STATIC int xfs_alloc_ag_vextent_small(xfs_alloc_arg_t *, STATIC int xfs_alloc_ag_vextent_small(xfs_alloc_arg_t *,
xfs_btree_cur_t *, xfs_agblock_t *, xfs_extlen_t *, int *); xfs_btree_cur_t *, xfs_agblock_t *, xfs_extlen_t *, int *);
STATIC void xfs_alloc_busy_trim(struct xfs_alloc_arg *, STATIC void xfs_extent_busy_trim(struct xfs_alloc_arg *,
xfs_agblock_t, xfs_extlen_t, xfs_agblock_t *, xfs_extlen_t *); xfs_agblock_t, xfs_extlen_t, xfs_agblock_t *, xfs_extlen_t *);
/* /*
...@@ -152,7 +152,7 @@ xfs_alloc_compute_aligned( ...@@ -152,7 +152,7 @@ xfs_alloc_compute_aligned(
xfs_extlen_t len; xfs_extlen_t len;
/* Trim busy sections out of found extent */ /* Trim busy sections out of found extent */
xfs_alloc_busy_trim(args, foundbno, foundlen, &bno, &len); xfs_extent_busy_trim(args, foundbno, foundlen, &bno, &len);
if (args->alignment > 1 && len >= args->minlen) { if (args->alignment > 1 && len >= args->minlen) {
xfs_agblock_t aligned_bno = roundup(bno, args->alignment); xfs_agblock_t aligned_bno = roundup(bno, args->alignment);
...@@ -536,7 +536,7 @@ xfs_alloc_ag_vextent( ...@@ -536,7 +536,7 @@ xfs_alloc_ag_vextent(
if (error) if (error)
return error; return error;
ASSERT(!xfs_alloc_busy_search(args->mp, args->agno, ASSERT(!xfs_extent_busy_search(args->mp, args->agno,
args->agbno, args->len)); args->agbno, args->len));
} }
...@@ -603,7 +603,7 @@ xfs_alloc_ag_vextent_exact( ...@@ -603,7 +603,7 @@ xfs_alloc_ag_vextent_exact(
/* /*
* Check for overlapping busy extents. * Check for overlapping busy extents.
*/ */
xfs_alloc_busy_trim(args, fbno, flen, &tbno, &tlen); xfs_extent_busy_trim(args, fbno, flen, &tbno, &tlen);
/* /*
* Give up if the start of the extent is busy, or the freespace isn't * Give up if the start of the extent is busy, or the freespace isn't
...@@ -1391,7 +1391,7 @@ xfs_alloc_ag_vextent_small( ...@@ -1391,7 +1391,7 @@ xfs_alloc_ag_vextent_small(
if (error) if (error)
goto error0; goto error0;
if (fbno != NULLAGBLOCK) { if (fbno != NULLAGBLOCK) {
xfs_alloc_busy_reuse(args->mp, args->agno, fbno, 1, xfs_extent_busy_reuse(args->mp, args->agno, fbno, 1,
args->userdata); args->userdata);
if (args->userdata) { if (args->userdata) {
...@@ -2496,7 +2496,7 @@ xfs_free_extent( ...@@ -2496,7 +2496,7 @@ xfs_free_extent(
error = xfs_free_ag_extent(tp, args.agbp, args.agno, args.agbno, len, 0); error = xfs_free_ag_extent(tp, args.agbp, args.agno, args.agbno, len, 0);
if (!error) if (!error)
xfs_alloc_busy_insert(tp, args.agno, args.agbno, len, 0); xfs_extent_busy_insert(tp, args.agno, args.agbno, len, 0);
error0: error0:
xfs_perag_put(args.pag); xfs_perag_put(args.pag);
return error; return error;
......
...@@ -94,7 +94,7 @@ xfs_allocbt_alloc_block( ...@@ -94,7 +94,7 @@ xfs_allocbt_alloc_block(
return 0; return 0;
} }
xfs_alloc_busy_reuse(cur->bc_mp, cur->bc_private.a.agno, bno, 1, false); xfs_extent_busy_reuse(cur->bc_mp, cur->bc_private.a.agno, bno, 1, false);
xfs_trans_agbtree_delta(cur->bc_tp, 1); xfs_trans_agbtree_delta(cur->bc_tp, 1);
new->s = cpu_to_be32(bno); new->s = cpu_to_be32(bno);
...@@ -119,8 +119,8 @@ xfs_allocbt_free_block( ...@@ -119,8 +119,8 @@ xfs_allocbt_free_block(
if (error) if (error)
return error; return error;
xfs_alloc_busy_insert(cur->bc_tp, be32_to_cpu(agf->agf_seqno), bno, 1, xfs_extent_busy_insert(cur->bc_tp, be32_to_cpu(agf->agf_seqno), bno, 1,
XFS_ALLOC_BUSY_SKIP_DISCARD); XFS_EXTENT_BUSY_SKIP_DISCARD);
xfs_trans_agbtree_delta(cur->bc_tp, -1); xfs_trans_agbtree_delta(cur->bc_tp, -1);
return 0; return 0;
} }
......
...@@ -118,7 +118,7 @@ xfs_trim_extents( ...@@ -118,7 +118,7 @@ xfs_trim_extents(
* If any blocks in the range are still busy, skip the * If any blocks in the range are still busy, skip the
* discard and try again the next time. * discard and try again the next time.
*/ */
if (xfs_alloc_busy_search(mp, agno, fbno, flen)) { if (xfs_extent_busy_search(mp, agno, fbno, flen)) {
trace_xfs_discard_busy(mp, agno, fbno, flen); trace_xfs_discard_busy(mp, agno, fbno, flen);
goto next_extent; goto next_extent;
} }
...@@ -212,7 +212,7 @@ xfs_discard_extents( ...@@ -212,7 +212,7 @@ xfs_discard_extents(
struct xfs_mount *mp, struct xfs_mount *mp,
struct list_head *list) struct list_head *list)
{ {
struct xfs_busy_extent *busyp; struct xfs_extent_busy *busyp;
int error = 0; int error = 0;
list_for_each_entry(busyp, list, list) { list_for_each_entry(busyp, list, list) {
......
...@@ -32,27 +32,27 @@ ...@@ -32,27 +32,27 @@
#include "xfs_trace.h" #include "xfs_trace.h"
void void
xfs_alloc_busy_insert( xfs_extent_busy_insert(
struct xfs_trans *tp, struct xfs_trans *tp,
xfs_agnumber_t agno, xfs_agnumber_t agno,
xfs_agblock_t bno, xfs_agblock_t bno,
xfs_extlen_t len, xfs_extlen_t len,
unsigned int flags) unsigned int flags)
{ {
struct xfs_busy_extent *new; struct xfs_extent_busy *new;
struct xfs_busy_extent *busyp; struct xfs_extent_busy *busyp;
struct xfs_perag *pag; struct xfs_perag *pag;
struct rb_node **rbp; struct rb_node **rbp;
struct rb_node *parent = NULL; struct rb_node *parent = NULL;
new = kmem_zalloc(sizeof(struct xfs_busy_extent), KM_MAYFAIL); new = kmem_zalloc(sizeof(struct xfs_extent_busy), KM_MAYFAIL);
if (!new) { if (!new) {
/* /*
* No Memory! Since it is now not possible to track the free * No Memory! Since it is now not possible to track the free
* block, make this a synchronous transaction to insure that * block, make this a synchronous transaction to insure that
* the block is not reused before this transaction commits. * the block is not reused before this transaction commits.
*/ */
trace_xfs_alloc_busy_enomem(tp->t_mountp, agno, bno, len); trace_xfs_extent_busy_enomem(tp->t_mountp, agno, bno, len);
xfs_trans_set_sync(tp); xfs_trans_set_sync(tp);
return; return;
} }
...@@ -64,14 +64,14 @@ xfs_alloc_busy_insert( ...@@ -64,14 +64,14 @@ xfs_alloc_busy_insert(
new->flags = flags; new->flags = flags;
/* trace before insert to be able to see failed inserts */ /* trace before insert to be able to see failed inserts */
trace_xfs_alloc_busy(tp->t_mountp, agno, bno, len); trace_xfs_extent_busy(tp->t_mountp, agno, bno, len);
pag = xfs_perag_get(tp->t_mountp, new->agno); pag = xfs_perag_get(tp->t_mountp, new->agno);
spin_lock(&pag->pagb_lock); spin_lock(&pag->pagb_lock);
rbp = &pag->pagb_tree.rb_node; rbp = &pag->pagb_tree.rb_node;
while (*rbp) { while (*rbp) {
parent = *rbp; parent = *rbp;
busyp = rb_entry(parent, struct xfs_busy_extent, rb_node); busyp = rb_entry(parent, struct xfs_extent_busy, rb_node);
if (new->bno < busyp->bno) { if (new->bno < busyp->bno) {
rbp = &(*rbp)->rb_left; rbp = &(*rbp)->rb_left;
...@@ -95,14 +95,14 @@ xfs_alloc_busy_insert( ...@@ -95,14 +95,14 @@ xfs_alloc_busy_insert(
/* /*
* Search for a busy extent within the range of the extent we are about to * Search for a busy extent within the range of the extent we are about to
* allocate. You need to be holding the busy extent tree lock when calling * allocate. You need to be holding the busy extent tree lock when calling
* xfs_alloc_busy_search(). This function returns 0 for no overlapping busy * xfs_extent_busy_search(). This function returns 0 for no overlapping busy
* extent, -1 for an overlapping but not exact busy extent, and 1 for an exact * extent, -1 for an overlapping but not exact busy extent, and 1 for an exact
* match. This is done so that a non-zero return indicates an overlap that * match. This is done so that a non-zero return indicates an overlap that
* will require a synchronous transaction, but it can still be * will require a synchronous transaction, but it can still be
* used to distinguish between a partial or exact match. * used to distinguish between a partial or exact match.
*/ */
int int
xfs_alloc_busy_search( xfs_extent_busy_search(
struct xfs_mount *mp, struct xfs_mount *mp,
xfs_agnumber_t agno, xfs_agnumber_t agno,
xfs_agblock_t bno, xfs_agblock_t bno,
...@@ -110,7 +110,7 @@ xfs_alloc_busy_search( ...@@ -110,7 +110,7 @@ xfs_alloc_busy_search(
{ {
struct xfs_perag *pag; struct xfs_perag *pag;
struct rb_node *rbp; struct rb_node *rbp;
struct xfs_busy_extent *busyp; struct xfs_extent_busy *busyp;
int match = 0; int match = 0;
pag = xfs_perag_get(mp, agno); pag = xfs_perag_get(mp, agno);
...@@ -120,7 +120,7 @@ xfs_alloc_busy_search( ...@@ -120,7 +120,7 @@ xfs_alloc_busy_search(
/* find closest start bno overlap */ /* find closest start bno overlap */
while (rbp) { while (rbp) {
busyp = rb_entry(rbp, struct xfs_busy_extent, rb_node); busyp = rb_entry(rbp, struct xfs_extent_busy, rb_node);
if (bno < busyp->bno) { if (bno < busyp->bno) {
/* may overlap, but exact start block is lower */ /* may overlap, but exact start block is lower */
if (bno + len > busyp->bno) if (bno + len > busyp->bno)
...@@ -154,10 +154,10 @@ xfs_alloc_busy_search( ...@@ -154,10 +154,10 @@ xfs_alloc_busy_search(
* needs to be restarted. * needs to be restarted.
*/ */
STATIC bool STATIC bool
xfs_alloc_busy_update_extent( xfs_extent_busy_update_extent(
struct xfs_mount *mp, struct xfs_mount *mp,
struct xfs_perag *pag, struct xfs_perag *pag,
struct xfs_busy_extent *busyp, struct xfs_extent_busy *busyp,
xfs_agblock_t fbno, xfs_agblock_t fbno,
xfs_extlen_t flen, xfs_extlen_t flen,
bool userdata) bool userdata)
...@@ -171,7 +171,7 @@ xfs_alloc_busy_update_extent( ...@@ -171,7 +171,7 @@ xfs_alloc_busy_update_extent(
* performing the discard a chance to mark the extent unbusy * performing the discard a chance to mark the extent unbusy
* and retry. * and retry.
*/ */
if (busyp->flags & XFS_ALLOC_BUSY_DISCARDED) { if (busyp->flags & XFS_EXTENT_BUSY_DISCARDED) {
spin_unlock(&pag->pagb_lock); spin_unlock(&pag->pagb_lock);
delay(1); delay(1);
spin_lock(&pag->pagb_lock); spin_lock(&pag->pagb_lock);
...@@ -285,13 +285,13 @@ xfs_alloc_busy_update_extent( ...@@ -285,13 +285,13 @@ xfs_alloc_busy_update_extent(
ASSERT(0); ASSERT(0);
} }
trace_xfs_alloc_busy_reuse(mp, pag->pag_agno, fbno, flen); trace_xfs_extent_busy_reuse(mp, pag->pag_agno, fbno, flen);
return true; return true;
out_force_log: out_force_log:
spin_unlock(&pag->pagb_lock); spin_unlock(&pag->pagb_lock);
xfs_log_force(mp, XFS_LOG_SYNC); xfs_log_force(mp, XFS_LOG_SYNC);
trace_xfs_alloc_busy_force(mp, pag->pag_agno, fbno, flen); trace_xfs_extent_busy_force(mp, pag->pag_agno, fbno, flen);
spin_lock(&pag->pagb_lock); spin_lock(&pag->pagb_lock);
return false; return false;
} }
...@@ -301,7 +301,7 @@ xfs_alloc_busy_update_extent( ...@@ -301,7 +301,7 @@ xfs_alloc_busy_update_extent(
* For a given extent [fbno, flen], make sure we can reuse it safely. * For a given extent [fbno, flen], make sure we can reuse it safely.
*/ */
void void
xfs_alloc_busy_reuse( xfs_extent_busy_reuse(
struct xfs_mount *mp, struct xfs_mount *mp,
xfs_agnumber_t agno, xfs_agnumber_t agno,
xfs_agblock_t fbno, xfs_agblock_t fbno,
...@@ -318,8 +318,8 @@ xfs_alloc_busy_reuse( ...@@ -318,8 +318,8 @@ xfs_alloc_busy_reuse(
restart: restart:
rbp = pag->pagb_tree.rb_node; rbp = pag->pagb_tree.rb_node;
while (rbp) { while (rbp) {
struct xfs_busy_extent *busyp = struct xfs_extent_busy *busyp =
rb_entry(rbp, struct xfs_busy_extent, rb_node); rb_entry(rbp, struct xfs_extent_busy, rb_node);
xfs_agblock_t bbno = busyp->bno; xfs_agblock_t bbno = busyp->bno;
xfs_agblock_t bend = bbno + busyp->length; xfs_agblock_t bend = bbno + busyp->length;
...@@ -331,7 +331,7 @@ xfs_alloc_busy_reuse( ...@@ -331,7 +331,7 @@ xfs_alloc_busy_reuse(
continue; continue;
} }
if (!xfs_alloc_busy_update_extent(mp, pag, busyp, fbno, flen, if (!xfs_extent_busy_update_extent(mp, pag, busyp, fbno, flen,
userdata)) userdata))
goto restart; goto restart;
} }
...@@ -346,7 +346,7 @@ xfs_alloc_busy_reuse( ...@@ -346,7 +346,7 @@ xfs_alloc_busy_reuse(
* code needs to force out the log and retry the allocation. * code needs to force out the log and retry the allocation.
*/ */
STATIC void STATIC void
xfs_alloc_busy_trim( xfs_extent_busy_trim(
struct xfs_alloc_arg *args, struct xfs_alloc_arg *args,
xfs_agblock_t bno, xfs_agblock_t bno,
xfs_extlen_t len, xfs_extlen_t len,
...@@ -365,8 +365,8 @@ xfs_alloc_busy_trim( ...@@ -365,8 +365,8 @@ xfs_alloc_busy_trim(
flen = len; flen = len;
rbp = args->pag->pagb_tree.rb_node; rbp = args->pag->pagb_tree.rb_node;
while (rbp && flen >= args->minlen) { while (rbp && flen >= args->minlen) {
struct xfs_busy_extent *busyp = struct xfs_extent_busy *busyp =
rb_entry(rbp, struct xfs_busy_extent, rb_node); rb_entry(rbp, struct xfs_extent_busy, rb_node);
xfs_agblock_t fend = fbno + flen; xfs_agblock_t fend = fbno + flen;
xfs_agblock_t bbno = busyp->bno; xfs_agblock_t bbno = busyp->bno;
xfs_agblock_t bend = bbno + busyp->length; xfs_agblock_t bend = bbno + busyp->length;
...@@ -384,8 +384,8 @@ xfs_alloc_busy_trim( ...@@ -384,8 +384,8 @@ xfs_alloc_busy_trim(
* extent instead of trimming the allocation. * extent instead of trimming the allocation.
*/ */
if (!args->userdata && if (!args->userdata &&
!(busyp->flags & XFS_ALLOC_BUSY_DISCARDED)) { !(busyp->flags & XFS_EXTENT_BUSY_DISCARDED)) {
if (!xfs_alloc_busy_update_extent(args->mp, args->pag, if (!xfs_extent_busy_update_extent(args->mp, args->pag,
busyp, fbno, flen, busyp, fbno, flen,
false)) false))
goto restart; goto restart;
...@@ -517,7 +517,7 @@ xfs_alloc_busy_trim( ...@@ -517,7 +517,7 @@ xfs_alloc_busy_trim(
spin_unlock(&args->pag->pagb_lock); spin_unlock(&args->pag->pagb_lock);
if (fbno != bno || flen != len) { if (fbno != bno || flen != len) {
trace_xfs_alloc_busy_trim(args->mp, args->agno, bno, len, trace_xfs_extent_busy_trim(args->mp, args->agno, bno, len,
fbno, flen); fbno, flen);
} }
*rbno = fbno; *rbno = fbno;
...@@ -529,19 +529,19 @@ xfs_alloc_busy_trim( ...@@ -529,19 +529,19 @@ xfs_alloc_busy_trim(
* re-check if the trimmed extent satisfies the minlen requirement. * re-check if the trimmed extent satisfies the minlen requirement.
*/ */
spin_unlock(&args->pag->pagb_lock); spin_unlock(&args->pag->pagb_lock);
trace_xfs_alloc_busy_trim(args->mp, args->agno, bno, len, fbno, 0); trace_xfs_extent_busy_trim(args->mp, args->agno, bno, len, fbno, 0);
*rbno = fbno; *rbno = fbno;
*rlen = 0; *rlen = 0;
} }
static void STATIC void
xfs_alloc_busy_clear_one( xfs_extent_busy_clear_one(
struct xfs_mount *mp, struct xfs_mount *mp,
struct xfs_perag *pag, struct xfs_perag *pag,
struct xfs_busy_extent *busyp) struct xfs_extent_busy *busyp)
{ {
if (busyp->length) { if (busyp->length) {
trace_xfs_alloc_busy_clear(mp, busyp->agno, busyp->bno, trace_xfs_extent_busy_clear(mp, busyp->agno, busyp->bno,
busyp->length); busyp->length);
rb_erase(&busyp->rb_node, &pag->pagb_tree); rb_erase(&busyp->rb_node, &pag->pagb_tree);
} }
...@@ -556,12 +556,12 @@ xfs_alloc_busy_clear_one( ...@@ -556,12 +556,12 @@ xfs_alloc_busy_clear_one(
* these as undergoing a discard operation instead. * these as undergoing a discard operation instead.
*/ */
void void
xfs_alloc_busy_clear( xfs_extent_busy_clear(
struct xfs_mount *mp, struct xfs_mount *mp,
struct list_head *list, struct list_head *list,
bool do_discard) bool do_discard)
{ {
struct xfs_busy_extent *busyp, *n; struct xfs_extent_busy *busyp, *n;
struct xfs_perag *pag = NULL; struct xfs_perag *pag = NULL;
xfs_agnumber_t agno = NULLAGNUMBER; xfs_agnumber_t agno = NULLAGNUMBER;
...@@ -577,10 +577,10 @@ xfs_alloc_busy_clear( ...@@ -577,10 +577,10 @@ xfs_alloc_busy_clear(
} }
if (do_discard && busyp->length && if (do_discard && busyp->length &&
!(busyp->flags & XFS_ALLOC_BUSY_SKIP_DISCARD)) !(busyp->flags & XFS_EXTENT_BUSY_SKIP_DISCARD))
busyp->flags = XFS_ALLOC_BUSY_DISCARDED; busyp->flags = XFS_EXTENT_BUSY_DISCARDED;
else else
xfs_alloc_busy_clear_one(mp, pag, busyp); xfs_extent_busy_clear_one(mp, pag, busyp);
} }
if (pag) { if (pag) {
...@@ -593,11 +593,11 @@ xfs_alloc_busy_clear( ...@@ -593,11 +593,11 @@ xfs_alloc_busy_clear(
* Callback for list_sort to sort busy extents by the AG they reside in. * Callback for list_sort to sort busy extents by the AG they reside in.
*/ */
int int
xfs_alloc_busy_ag_cmp( xfs_extent_busy_ag_cmp(
void *priv, void *priv,
struct list_head *a, struct list_head *a,
struct list_head *b) struct list_head *b)
{ {
return container_of(a, struct xfs_busy_extent, list)->agno - return container_of(a, struct xfs_extent_busy, list)->agno -
container_of(b, struct xfs_busy_extent, list)->agno; container_of(b, struct xfs_extent_busy, list)->agno;
} }
...@@ -27,39 +27,39 @@ ...@@ -27,39 +27,39 @@
* Note that we use the transaction ID to record the transaction, not the * Note that we use the transaction ID to record the transaction, not the
* transaction structure itself. See xfs_extent_busy_insert() for details. * transaction structure itself. See xfs_extent_busy_insert() for details.
*/ */
struct xfs_busy_extent { struct xfs_extent_busy {
struct rb_node rb_node; /* ag by-bno indexed search tree */ struct rb_node rb_node; /* ag by-bno indexed search tree */
struct list_head list; /* transaction busy extent list */ struct list_head list; /* transaction busy extent list */
xfs_agnumber_t agno; xfs_agnumber_t agno;
xfs_agblock_t bno; xfs_agblock_t bno;
xfs_extlen_t length; xfs_extlen_t length;
unsigned int flags; unsigned int flags;
#define XFS_ALLOC_BUSY_DISCARDED 0x01 /* undergoing a discard op. */ #define XFS_EXTENT_BUSY_DISCARDED 0x01 /* undergoing a discard op. */
#define XFS_ALLOC_BUSY_SKIP_DISCARD 0x02 /* do not discard */ #define XFS_EXTENT_BUSY_SKIP_DISCARD 0x02 /* do not discard */
}; };
void void
xfs_alloc_busy_insert(struct xfs_trans *tp, xfs_agnumber_t agno, xfs_extent_busy_insert(struct xfs_trans *tp, xfs_agnumber_t agno,
xfs_agblock_t bno, xfs_extlen_t len, unsigned int flags); xfs_agblock_t bno, xfs_extlen_t len, unsigned int flags);
void void
xfs_alloc_busy_clear(struct xfs_mount *mp, struct list_head *list, xfs_extent_busy_clear(struct xfs_mount *mp, struct list_head *list,
bool do_discard); bool do_discard);
int int
xfs_alloc_busy_search(struct xfs_mount *mp, xfs_agnumber_t agno, xfs_extent_busy_search(struct xfs_mount *mp, xfs_agnumber_t agno,
xfs_agblock_t bno, xfs_extlen_t len); xfs_agblock_t bno, xfs_extlen_t len);
void void
xfs_alloc_busy_reuse(struct xfs_mount *mp, xfs_agnumber_t agno, xfs_extent_busy_reuse(struct xfs_mount *mp, xfs_agnumber_t agno,
xfs_agblock_t fbno, xfs_extlen_t flen, bool userdata); xfs_agblock_t fbno, xfs_extlen_t flen, bool userdata);
int int
xfs_alloc_busy_ag_cmp(void *priv, struct list_head *a, struct list_head *b); xfs_extent_busy_ag_cmp(void *priv, struct list_head *a, struct list_head *b);
static inline void xfs_alloc_busy_sort(struct list_head *list) static inline void xfs_extent_busy_sort(struct list_head *list)
{ {
list_sort(NULL, list, xfs_alloc_busy_ag_cmp); list_sort(NULL, list, xfs_extent_busy_ag_cmp);
} }
#endif /* __XFS_EXTENT_BUSY_H__ */ #endif /* __XFS_EXTENT_BUSY_H__ */
...@@ -338,8 +338,8 @@ xlog_cil_committed( ...@@ -338,8 +338,8 @@ xlog_cil_committed(
xfs_trans_committed_bulk(ctx->cil->xc_log->l_ailp, ctx->lv_chain, xfs_trans_committed_bulk(ctx->cil->xc_log->l_ailp, ctx->lv_chain,
ctx->start_lsn, abort); ctx->start_lsn, abort);
xfs_alloc_busy_sort(&ctx->busy_extents); xfs_extent_busy_sort(&ctx->busy_extents);
xfs_alloc_busy_clear(mp, &ctx->busy_extents, xfs_extent_busy_clear(mp, &ctx->busy_extents,
(mp->m_flags & XFS_MOUNT_DISCARD) && !abort); (mp->m_flags & XFS_MOUNT_DISCARD) && !abort);
spin_lock(&ctx->cil->xc_cil_lock); spin_lock(&ctx->cil->xc_cil_lock);
...@@ -352,7 +352,7 @@ xlog_cil_committed( ...@@ -352,7 +352,7 @@ xlog_cil_committed(
ASSERT(mp->m_flags & XFS_MOUNT_DISCARD); ASSERT(mp->m_flags & XFS_MOUNT_DISCARD);
xfs_discard_extents(mp, &ctx->busy_extents); xfs_discard_extents(mp, &ctx->busy_extents);
xfs_alloc_busy_clear(mp, &ctx->busy_extents, false); xfs_extent_busy_clear(mp, &ctx->busy_extents, false);
} }
kmem_free(ctx); kmem_free(ctx);
......
...@@ -1142,7 +1142,7 @@ TRACE_EVENT(xfs_bunmap, ...@@ -1142,7 +1142,7 @@ TRACE_EVENT(xfs_bunmap,
); );
DECLARE_EVENT_CLASS(xfs_busy_class, DECLARE_EVENT_CLASS(xfs_extent_busy_class,
TP_PROTO(struct xfs_mount *mp, xfs_agnumber_t agno, TP_PROTO(struct xfs_mount *mp, xfs_agnumber_t agno,
xfs_agblock_t agbno, xfs_extlen_t len), xfs_agblock_t agbno, xfs_extlen_t len),
TP_ARGS(mp, agno, agbno, len), TP_ARGS(mp, agno, agbno, len),
...@@ -1165,17 +1165,17 @@ DECLARE_EVENT_CLASS(xfs_busy_class, ...@@ -1165,17 +1165,17 @@ DECLARE_EVENT_CLASS(xfs_busy_class,
__entry->len) __entry->len)
); );
#define DEFINE_BUSY_EVENT(name) \ #define DEFINE_BUSY_EVENT(name) \
DEFINE_EVENT(xfs_busy_class, name, \ DEFINE_EVENT(xfs_extent_busy_class, name, \
TP_PROTO(struct xfs_mount *mp, xfs_agnumber_t agno, \ TP_PROTO(struct xfs_mount *mp, xfs_agnumber_t agno, \
xfs_agblock_t agbno, xfs_extlen_t len), \ xfs_agblock_t agbno, xfs_extlen_t len), \
TP_ARGS(mp, agno, agbno, len)) TP_ARGS(mp, agno, agbno, len))
DEFINE_BUSY_EVENT(xfs_alloc_busy); DEFINE_BUSY_EVENT(xfs_extent_busy);
DEFINE_BUSY_EVENT(xfs_alloc_busy_enomem); DEFINE_BUSY_EVENT(xfs_extent_busy_enomem);
DEFINE_BUSY_EVENT(xfs_alloc_busy_force); DEFINE_BUSY_EVENT(xfs_extent_busy_force);
DEFINE_BUSY_EVENT(xfs_alloc_busy_reuse); DEFINE_BUSY_EVENT(xfs_extent_busy_reuse);
DEFINE_BUSY_EVENT(xfs_alloc_busy_clear); DEFINE_BUSY_EVENT(xfs_extent_busy_clear);
TRACE_EVENT(xfs_alloc_busy_trim, TRACE_EVENT(xfs_extent_busy_trim,
TP_PROTO(struct xfs_mount *mp, xfs_agnumber_t agno, TP_PROTO(struct xfs_mount *mp, xfs_agnumber_t agno,
xfs_agblock_t agbno, xfs_extlen_t len, xfs_agblock_t agbno, xfs_extlen_t len,
xfs_agblock_t tbno, xfs_extlen_t tlen), xfs_agblock_t tbno, xfs_extlen_t tlen),
......
...@@ -608,8 +608,8 @@ STATIC void ...@@ -608,8 +608,8 @@ STATIC void
xfs_trans_free( xfs_trans_free(
struct xfs_trans *tp) struct xfs_trans *tp)
{ {
xfs_alloc_busy_sort(&tp->t_busy); xfs_extent_busy_sort(&tp->t_busy);
xfs_alloc_busy_clear(tp->t_mountp, &tp->t_busy, false); xfs_extent_busy_clear(tp->t_mountp, &tp->t_busy, false);
atomic_dec(&tp->t_mountp->m_active_trans); atomic_dec(&tp->t_mountp->m_active_trans);
xfs_trans_free_dqinfo(tp); xfs_trans_free_dqinfo(tp);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment