diff options
Diffstat (limited to 'fs/xfs')
-rw-r--r-- | fs/xfs/libxfs/xfs_alloc.c | 9 | ||||
-rw-r--r-- | fs/xfs/libxfs/xfs_alloc.h | 7 | ||||
-rw-r--r-- | fs/xfs/xfs_extfree_item.c | 10 | ||||
-rw-r--r-- | fs/xfs/xfs_trace.h | 40 |
4 files changed, 33 insertions, 33 deletions
diff --git a/fs/xfs/libxfs/xfs_alloc.c b/fs/xfs/libxfs/xfs_alloc.c index 3300de4ce137..3663484dc576 100644 --- a/fs/xfs/libxfs/xfs_alloc.c +++ b/fs/xfs/libxfs/xfs_alloc.c @@ -2533,8 +2533,7 @@ xfs_defer_agfl_block( new->xefi_oinfo = *oinfo; new->xefi_skip_discard = false; - trace_xfs_agfl_free_defer(mp, agno, 0, agbno, 1); - + trace_xfs_extent_free_defer(mp, XFS_FREE_EXTENT_AGFL, new); xfs_defer_add(tp, XFS_DEFER_OPS_TYPE_AGFL_FREE, &new->xefi_list); } @@ -2578,9 +2577,9 @@ xfs_free_extent_later( else new->xefi_oinfo = XFS_RMAP_OINFO_SKIP_UPDATE; new->xefi_skip_discard = skip_discard; - trace_xfs_bmap_free_defer(tp->t_mountp, - XFS_FSB_TO_AGNO(tp->t_mountp, bno), 0, - XFS_FSB_TO_AGBNO(tp->t_mountp, bno), len); + + trace_xfs_extent_free_defer(tp->t_mountp, XFS_FREE_EXTENT_REGULAR, + new); xfs_defer_add(tp, XFS_DEFER_OPS_TYPE_FREE, &new->xefi_list); } diff --git a/fs/xfs/libxfs/xfs_alloc.h b/fs/xfs/libxfs/xfs_alloc.h index a31f28697668..40abbc9995fb 100644 --- a/fs/xfs/libxfs/xfs_alloc.h +++ b/fs/xfs/libxfs/xfs_alloc.h @@ -205,6 +205,13 @@ struct xfs_extent_free_item extern struct kmem_cache *xfs_extent_free_item_zone; +#define XFS_FREE_EXTENT_REGULAR (1) +#define XFS_FREE_EXTENT_AGFL (2) + +#define XFS_FREE_EXTENT_STRINGS \ + { XFS_FREE_EXTENT_REGULAR, "free" }, \ + { XFS_FREE_EXTENT_AGFL, "agfl" } + int /* error */ xfs_alloc_lookup_le( struct xfs_btree_cur *cur, /* btree cursor */ diff --git a/fs/xfs/xfs_extfree_item.c b/fs/xfs/xfs_extfree_item.c index b6301b1a1dc2..b3e6e5a8ae8e 100644 --- a/fs/xfs/xfs_extfree_item.c +++ b/fs/xfs/xfs_extfree_item.c @@ -361,15 +361,9 @@ xfs_trans_free_extent( struct xfs_mount *mp = tp->t_mountp; struct xfs_extent *extp; uint next_extent; - xfs_agnumber_t agno; - xfs_agblock_t agbno; int error; - agno = XFS_FSB_TO_AGNO(mp, free->xefi_startblock); - agbno = XFS_FSB_TO_AGBNO(mp, free->xefi_startblock); - - trace_xfs_bmap_free_deferred(tp->t_mountp, agno, 0, agbno, - free->xefi_blockcount); + trace_xfs_extent_free_deferred(mp, XFS_FREE_EXTENT_REGULAR, free); error = __xfs_free_extent(tp, free->xefi_startblock, free->xefi_blockcount, &free->xefi_oinfo, @@ -538,7 +532,7 @@ xfs_agfl_free_finish_item( agno = XFS_FSB_TO_AGNO(mp, free->xefi_startblock); agbno = XFS_FSB_TO_AGBNO(mp, free->xefi_startblock); - trace_xfs_agfl_free_deferred(mp, agno, 0, agbno, free->xefi_blockcount); + trace_xfs_extent_free_deferred(mp, XFS_FREE_EXTENT_AGFL, free); error = xfs_alloc_read_agf(mp, tp, agno, 0, &agbp); if (!error) diff --git a/fs/xfs/xfs_trace.h b/fs/xfs/xfs_trace.h index a695a523db58..a9f28f40ea3a 100644 --- a/fs/xfs/xfs_trace.h +++ b/fs/xfs/xfs_trace.h @@ -83,6 +83,7 @@ struct xfs_bmap_intent; struct xfs_swapext_intent; struct xfs_swapext_req; struct xfs_swapext_res; +struct xfs_extent_free_item; #define XFS_ATTR_FILTER_FLAGS \ { XFS_ATTR_ROOT, "ROOT" }, \ @@ -2605,41 +2606,40 @@ DEFINE_DEFER_PENDING_EVENT(xfs_defer_pending_abort); DEFINE_DEFER_PENDING_EVENT(xfs_defer_relog_intent); DECLARE_EVENT_CLASS(xfs_free_extent_deferred_class, - TP_PROTO(struct xfs_mount *mp, xfs_agnumber_t agno, - int type, xfs_agblock_t agbno, xfs_extlen_t len), - TP_ARGS(mp, agno, type, agbno, len), + TP_PROTO(struct xfs_mount *mp, int op, + struct xfs_extent_free_item *free), + TP_ARGS(mp, op, free), TP_STRUCT__entry( __field(dev_t, dev) __field(xfs_agnumber_t, agno) - __field(int, type) + __field(int, op) __field(xfs_agblock_t, agbno) __field(xfs_extlen_t, len) + __field(bool, skip_discard) ), TP_fast_assign( __entry->dev = mp->m_super->s_dev; - __entry->agno = agno; - __entry->type = type; - __entry->agbno = agbno; - __entry->len = len; + __entry->agno = XFS_FSB_TO_AGNO(mp, free->xefi_startblock); + __entry->op = op; + __entry->agbno = XFS_FSB_TO_AGBNO(mp, free->xefi_startblock); + __entry->len = free->xefi_blockcount; + __entry->skip_discard = free->xefi_skip_discard; ), - TP_printk("dev %d:%d op %d agno 0x%x agbno 0x%x fsbcount 0x%x", + TP_printk("dev %d:%d op %s agno 0x%x agbno 0x%x fsbcount 0x%x nodiscard %d", MAJOR(__entry->dev), MINOR(__entry->dev), - __entry->type, + __print_symbolic(__entry->op, XFS_FREE_EXTENT_STRINGS), __entry->agno, __entry->agbno, - __entry->len) + __entry->len, + __entry->skip_discard) ); #define DEFINE_FREE_EXTENT_DEFERRED_EVENT(name) \ DEFINE_EVENT(xfs_free_extent_deferred_class, name, \ - TP_PROTO(struct xfs_mount *mp, xfs_agnumber_t agno, \ - int type, \ - xfs_agblock_t bno, \ - xfs_extlen_t len), \ - TP_ARGS(mp, agno, type, bno, len)) -DEFINE_FREE_EXTENT_DEFERRED_EVENT(xfs_bmap_free_defer); -DEFINE_FREE_EXTENT_DEFERRED_EVENT(xfs_bmap_free_deferred); -DEFINE_FREE_EXTENT_DEFERRED_EVENT(xfs_agfl_free_defer); -DEFINE_FREE_EXTENT_DEFERRED_EVENT(xfs_agfl_free_deferred); + TP_PROTO(struct xfs_mount *mp, int op, \ + struct xfs_extent_free_item *free), \ + TP_ARGS(mp, op, free)) +DEFINE_FREE_EXTENT_DEFERRED_EVENT(xfs_extent_free_defer); +DEFINE_FREE_EXTENT_DEFERRED_EVENT(xfs_extent_free_deferred); /* rmap tracepoints */ DECLARE_EVENT_CLASS(xfs_rmap_class, |