diff options
author | Darrick J. Wong <djwong@kernel.org> | 2021-09-01 11:16:05 -0700 |
---|---|---|
committer | Darrick J. Wong <djwong@kernel.org> | 2021-10-22 16:41:00 -0700 |
commit | 92db6048646f07ade20aa98b310694c94e84a0e1 (patch) | |
tree | fb2183df79ab1ed4cfa566b878545fdcda904aaf /fs | |
parent | 1a6d7a0b516170e4815548e021a8a89e02ed7795 (diff) |
xfs: widen xfs_rmap_irec fields to handle realtime rmapbt
Change the startblock and blockcount fields of xfs_rmap_irec to be 64
bits wide. This enables us to use the same high level rmap code for
either tree. We'll also collect all the resulting breakage fixes here.
Signed-off-by: Darrick J. Wong <djwong@kernel.org>
Diffstat (limited to 'fs')
-rw-r--r-- | fs/xfs/libxfs/xfs_format.h | 4 | ||||
-rw-r--r-- | fs/xfs/libxfs/xfs_refcount.c | 6 | ||||
-rw-r--r-- | fs/xfs/libxfs/xfs_rmap.c | 79 | ||||
-rw-r--r-- | fs/xfs/libxfs/xfs_rmap.h | 32 | ||||
-rw-r--r-- | fs/xfs/scrub/alloc_repair.c | 6 | ||||
-rw-r--r-- | fs/xfs/xfs_trace.c | 15 | ||||
-rw-r--r-- | fs/xfs/xfs_trace.h | 61 |
7 files changed, 108 insertions, 95 deletions
diff --git a/fs/xfs/libxfs/xfs_format.h b/fs/xfs/libxfs/xfs_format.h index 0bc5410491ac..e7602da19eb0 100644 --- a/fs/xfs/libxfs/xfs_format.h +++ b/fs/xfs/libxfs/xfs_format.h @@ -1512,8 +1512,8 @@ struct xfs_rmap_rec { XFS_RMAP_BMBT_BLOCK) #define XFS_RMAP_REC_FLAGS (XFS_RMAP_UNWRITTEN) struct xfs_rmap_irec { - xfs_agblock_t rm_startblock; /* extent start block */ - xfs_extlen_t rm_blockcount; /* extent length */ + xfs_fsblock_t rm_startblock; /* extent start block */ + xfs_filblks_t rm_blockcount; /* extent length */ uint64_t rm_owner; /* extent owner */ uint64_t rm_offset; /* offset within the owner */ unsigned int rm_flags; /* state flags */ diff --git a/fs/xfs/libxfs/xfs_refcount.c b/fs/xfs/libxfs/xfs_refcount.c index aecaaf8790d7..e33263c1cf4e 100644 --- a/fs/xfs/libxfs/xfs_refcount.c +++ b/fs/xfs/libxfs/xfs_refcount.c @@ -1659,8 +1659,7 @@ xfs_refcount_alloc_cow_extent( __xfs_refcount_add(tp, XFS_REFCOUNT_ALLOC_COW, fsb, len); /* Add rmap entry */ - xfs_rmap_alloc_extent(tp, XFS_FSB_TO_AGNO(mp, fsb), - XFS_FSB_TO_AGBNO(mp, fsb), len, XFS_RMAP_OWN_COW); + xfs_rmap_alloc_extent(tp, fsb, len, XFS_RMAP_OWN_COW); } /* Forget a CoW staging event in the refcount btree. */ @@ -1676,8 +1675,7 @@ xfs_refcount_free_cow_extent( return; /* Remove rmap entry */ - xfs_rmap_free_extent(tp, XFS_FSB_TO_AGNO(mp, fsb), - XFS_FSB_TO_AGBNO(mp, fsb), len, XFS_RMAP_OWN_COW); + xfs_rmap_free_extent(tp, fsb, len, XFS_RMAP_OWN_COW); __xfs_refcount_add(tp, XFS_REFCOUNT_FREE_COW, fsb, len); } diff --git a/fs/xfs/libxfs/xfs_rmap.c b/fs/xfs/libxfs/xfs_rmap.c index 09c666cab369..a24bed28ff17 100644 --- a/fs/xfs/libxfs/xfs_rmap.c +++ b/fs/xfs/libxfs/xfs_rmap.c @@ -32,7 +32,7 @@ int xfs_rmap_lookup_le( struct xfs_btree_cur *cur, - xfs_agblock_t bno, + xfs_fsblock_t bno, uint64_t owner, uint64_t offset, unsigned int flags, @@ -68,8 +68,8 @@ xfs_rmap_lookup_le( int xfs_rmap_lookup_eq( struct xfs_btree_cur *cur, - xfs_agblock_t bno, - xfs_extlen_t len, + xfs_fsblock_t bno, + xfs_filblks_t len, uint64_t owner, uint64_t offset, unsigned int flags, @@ -113,8 +113,8 @@ xfs_rmap_update( int xfs_rmap_insert( struct xfs_btree_cur *rcur, - xfs_agblock_t agbno, - xfs_extlen_t len, + xfs_fsblock_t agbno, + xfs_filblks_t len, uint64_t owner, uint64_t offset, unsigned int flags) @@ -155,8 +155,8 @@ done: STATIC int xfs_rmap_delete( struct xfs_btree_cur *rcur, - xfs_agblock_t agbno, - xfs_extlen_t len, + xfs_fsblock_t agbno, + xfs_filblks_t len, uint64_t owner, uint64_t offset, unsigned int flags) @@ -222,6 +222,9 @@ xfs_rmap_get_rec( union xfs_btree_rec *rec; int error; + if (cur->bc_btnum != XFS_BTNUM_RMAP) + goto out_bad_rec; + error = xfs_btree_get_rec(cur, &rec, stat); if (error || !*stat) return error; @@ -259,7 +262,7 @@ out_bad_rec: "Reverse Mapping BTree record corruption in AG %d detected!", agno); xfs_warn(mp, - "Owner 0x%llx, flags 0x%x, start block 0x%x block count 0x%x", + "Owner 0x%llx, flags 0x%x, start block 0x%llx block count 0x%llx", irec->rm_owner, irec->rm_flags, irec->rm_startblock, irec->rm_blockcount); xfs_btree_mark_sick(cur); @@ -305,7 +308,7 @@ xfs_rmap_find_left_neighbor_helper( STATIC int xfs_rmap_find_left_neighbor( struct xfs_btree_cur *cur, - xfs_agblock_t bno, + xfs_fsblock_t bno, uint64_t owner, uint64_t offset, unsigned int flags, @@ -407,7 +410,7 @@ xfs_rmap_lookup_le_range_helper( int xfs_rmap_lookup_le_range( struct xfs_btree_cur *cur, - xfs_agblock_t bno, + xfs_fsblock_t bno, uint64_t owner, uint64_t offset, unsigned int flags, @@ -553,8 +556,8 @@ out: STATIC int xfs_rmap_unmap( struct xfs_btree_cur *cur, - xfs_agblock_t bno, - xfs_extlen_t len, + xfs_fsblock_t bno, + xfs_filblks_t len, bool unwritten, const struct xfs_owner_info *oinfo) { @@ -716,7 +719,7 @@ xfs_rmap_unmap( * Result: |rrrrr| |rrrr| * bno len */ - xfs_extlen_t orig_len = ltrec.rm_blockcount; + xfs_filblks_t orig_len = ltrec.rm_blockcount; ltrec.rm_blockcount = bno - ltrec.rm_startblock; error = xfs_rmap_update(cur, <rec); @@ -817,8 +820,8 @@ xfs_rmap_is_mergeable( STATIC int xfs_rmap_map( struct xfs_btree_cur *cur, - xfs_agblock_t bno, - xfs_extlen_t len, + xfs_fsblock_t bno, + xfs_filblks_t len, bool unwritten, const struct xfs_owner_info *oinfo) { @@ -1043,8 +1046,8 @@ xfs_rmap_alloc( STATIC int xfs_rmap_convert( struct xfs_btree_cur *cur, - xfs_agblock_t bno, - xfs_extlen_t len, + xfs_fsblock_t bno, + xfs_filblks_t len, bool unwritten, const struct xfs_owner_info *oinfo) { @@ -1541,8 +1544,8 @@ done: STATIC int xfs_rmap_convert_shared( struct xfs_btree_cur *cur, - xfs_agblock_t bno, - xfs_extlen_t len, + xfs_fsblock_t bno, + xfs_filblks_t len, bool unwritten, const struct xfs_owner_info *oinfo) { @@ -1973,8 +1976,8 @@ done: STATIC int xfs_rmap_unmap_shared( struct xfs_btree_cur *cur, - xfs_agblock_t bno, - xfs_extlen_t len, + xfs_fsblock_t bno, + xfs_filblks_t len, bool unwritten, const struct xfs_owner_info *oinfo) { @@ -2119,7 +2122,7 @@ xfs_rmap_unmap_shared( * Result: |rrrrr| |rrrr| * bno len */ - xfs_extlen_t orig_len = ltrec.rm_blockcount; + xfs_filblks_t orig_len = ltrec.rm_blockcount; /* Shrink the left side of the rmap */ error = xfs_rmap_lookup_eq(cur, ltrec.rm_startblock, @@ -2165,8 +2168,8 @@ out_error: STATIC int xfs_rmap_map_shared( struct xfs_btree_cur *cur, - xfs_agblock_t bno, - xfs_extlen_t len, + xfs_fsblock_t bno, + xfs_filblks_t len, bool unwritten, const struct xfs_owner_info *oinfo) { @@ -2432,7 +2435,7 @@ xfs_rmap_finish_one( struct xfs_buf *agbp = NULL; int error = 0; struct xfs_owner_info oinfo; - xfs_agblock_t bno; + xfs_fsblock_t bno; bool unwritten; pag = xfs_perag_get(mp, XFS_FSB_TO_AGNO(mp, ri->ri_bmap.br_startblock)); @@ -2618,9 +2621,8 @@ xfs_rmap_convert_extent( void xfs_rmap_alloc_extent( struct xfs_trans *tp, - xfs_agnumber_t agno, - xfs_agblock_t bno, - xfs_extlen_t len, + xfs_fsblock_t fsbno, + xfs_filblks_t len, uint64_t owner) { struct xfs_bmbt_irec bmap; @@ -2628,7 +2630,7 @@ xfs_rmap_alloc_extent( if (!xfs_rmap_update_is_needed(tp->t_mountp, XFS_DATA_FORK)) return; - bmap.br_startblock = XFS_AGB_TO_FSB(tp->t_mountp, agno, bno); + bmap.br_startblock = fsbno; bmap.br_blockcount = len; bmap.br_startoff = 0; bmap.br_state = XFS_EXT_NORM; @@ -2640,9 +2642,8 @@ xfs_rmap_alloc_extent( void xfs_rmap_free_extent( struct xfs_trans *tp, - xfs_agnumber_t agno, - xfs_agblock_t bno, - xfs_extlen_t len, + xfs_fsblock_t fsbno, + xfs_filblks_t len, uint64_t owner) { struct xfs_bmbt_irec bmap; @@ -2650,7 +2651,7 @@ xfs_rmap_free_extent( if (!xfs_rmap_update_is_needed(tp->t_mountp, XFS_DATA_FORK)) return; - bmap.br_startblock = XFS_AGB_TO_FSB(tp->t_mountp, agno, bno); + bmap.br_startblock = fsbno; bmap.br_blockcount = len; bmap.br_startoff = 0; bmap.br_state = XFS_EXT_NORM; @@ -2702,8 +2703,8 @@ xfs_rmap_has_key_gap( int xfs_rmap_has_record( struct xfs_btree_cur *cur, - xfs_agblock_t bno, - xfs_extlen_t len, + xfs_fsblock_t bno, + xfs_filblks_t len, bool *exists) { union xfs_btree_irec low; @@ -2728,8 +2729,8 @@ xfs_rmap_has_record( int xfs_rmap_record_exists( struct xfs_btree_cur *cur, - xfs_agblock_t bno, - xfs_extlen_t len, + xfs_fsblock_t bno, + xfs_filblks_t len, const struct xfs_owner_info *oinfo, bool *has_rmap) { @@ -2786,8 +2787,8 @@ xfs_rmap_has_other_keys_helper( int xfs_rmap_has_other_keys( struct xfs_btree_cur *cur, - xfs_agblock_t bno, - xfs_extlen_t len, + xfs_fsblock_t bno, + xfs_filblks_t len, const struct xfs_owner_info *oinfo, bool *has_rmap) { diff --git a/fs/xfs/libxfs/xfs_rmap.h b/fs/xfs/libxfs/xfs_rmap.h index d9ab291ba4cc..d25ca3456ee4 100644 --- a/fs/xfs/libxfs/xfs_rmap.h +++ b/fs/xfs/libxfs/xfs_rmap.h @@ -121,14 +121,14 @@ int xfs_rmap_free(struct xfs_trans *tp, struct xfs_buf *agbp, struct xfs_perag *pag, xfs_agblock_t bno, xfs_extlen_t len, const struct xfs_owner_info *oinfo); -int xfs_rmap_lookup_le(struct xfs_btree_cur *cur, xfs_agblock_t bno, +int xfs_rmap_lookup_le(struct xfs_btree_cur *cur, xfs_fsblock_t bno, uint64_t owner, uint64_t offset, unsigned int flags, struct xfs_rmap_irec *irec, int *stat); -int xfs_rmap_lookup_eq(struct xfs_btree_cur *cur, xfs_agblock_t bno, - xfs_extlen_t len, uint64_t owner, uint64_t offset, +int xfs_rmap_lookup_eq(struct xfs_btree_cur *cur, xfs_fsblock_t bno, + xfs_filblks_t len, uint64_t owner, uint64_t offset, unsigned int flags, int *stat); -int xfs_rmap_insert(struct xfs_btree_cur *rcur, xfs_agblock_t agbno, - xfs_extlen_t len, uint64_t owner, uint64_t offset, +int xfs_rmap_insert(struct xfs_btree_cur *rcur, xfs_fsblock_t agbno, + xfs_filblks_t len, uint64_t owner, uint64_t offset, unsigned int flags); int xfs_rmap_get_rec(struct xfs_btree_cur *cur, struct xfs_rmap_irec *irec, int *stat); @@ -182,16 +182,16 @@ void xfs_rmap_unmap_extent(struct xfs_trans *tp, struct xfs_inode *ip, void xfs_rmap_convert_extent(struct xfs_mount *mp, struct xfs_trans *tp, struct xfs_inode *ip, int whichfork, struct xfs_bmbt_irec *imap); -void xfs_rmap_alloc_extent(struct xfs_trans *tp, xfs_agnumber_t agno, - xfs_agblock_t bno, xfs_extlen_t len, uint64_t owner); -void xfs_rmap_free_extent(struct xfs_trans *tp, xfs_agnumber_t agno, - xfs_agblock_t bno, xfs_extlen_t len, uint64_t owner); +void xfs_rmap_alloc_extent(struct xfs_trans *tp, xfs_fsblock_t fsbno, + xfs_filblks_t len, uint64_t owner); +void xfs_rmap_free_extent(struct xfs_trans *tp, xfs_fsblock_t fsbno, + xfs_filblks_t len, uint64_t owner); void xfs_rmap_finish_one_cleanup(struct xfs_trans *tp, struct xfs_btree_cur *rcur, int error); int xfs_rmap_finish_one(struct xfs_trans *tp, struct xfs_rmap_intent *ri, struct xfs_btree_cur **pcur); -int xfs_rmap_lookup_le_range(struct xfs_btree_cur *cur, xfs_agblock_t bno, +int xfs_rmap_lookup_le_range(struct xfs_btree_cur *cur, xfs_fsblock_t bno, uint64_t owner, uint64_t offset, unsigned int flags, struct xfs_rmap_irec *irec, int *stat); int xfs_rmap_compare(const struct xfs_rmap_irec *a, @@ -199,13 +199,13 @@ int xfs_rmap_compare(const struct xfs_rmap_irec *a, union xfs_btree_rec; int xfs_rmap_btrec_to_irec(struct xfs_btree_cur *cur, const union xfs_btree_rec *rec, struct xfs_rmap_irec *irec); -int xfs_rmap_has_record(struct xfs_btree_cur *cur, xfs_agblock_t bno, - xfs_extlen_t len, bool *exists); -int xfs_rmap_record_exists(struct xfs_btree_cur *cur, xfs_agblock_t bno, - xfs_extlen_t len, const struct xfs_owner_info *oinfo, +int xfs_rmap_has_record(struct xfs_btree_cur *cur, xfs_fsblock_t bno, + xfs_filblks_t len, bool *exists); +int xfs_rmap_record_exists(struct xfs_btree_cur *cur, xfs_fsblock_t bno, + xfs_filblks_t len, const struct xfs_owner_info *oinfo, bool *has_rmap); -int xfs_rmap_has_other_keys(struct xfs_btree_cur *cur, xfs_agblock_t bno, - xfs_extlen_t len, const struct xfs_owner_info *oinfo, +int xfs_rmap_has_other_keys(struct xfs_btree_cur *cur, xfs_fsblock_t bno, + xfs_filblks_t len, const struct xfs_owner_info *oinfo, bool *has_rmap); int xfs_rmap_map_raw(struct xfs_btree_cur *cur, struct xfs_rmap_irec *rmap); diff --git a/fs/xfs/scrub/alloc_repair.c b/fs/xfs/scrub/alloc_repair.c index 3906f8e3c2da..aa8fa823ccff 100644 --- a/fs/xfs/scrub/alloc_repair.c +++ b/fs/xfs/scrub/alloc_repair.c @@ -450,10 +450,8 @@ xrep_abt_dispose_reservations( for_each_xrep_newbt_reservation(&ra->new_bnobt_info, resv, n) { /* Add a deferred rmap for each extent we used. */ if (resv->used > 0) - xfs_rmap_alloc_extent(sc->tp, - XFS_FSB_TO_AGNO(sc->mp, resv->fsbno), - XFS_FSB_TO_AGBNO(sc->mp, resv->fsbno), - resv->used, XFS_RMAP_OWN_AG); + xfs_rmap_alloc_extent(sc->tp, resv->fsbno, resv->used, + XFS_RMAP_OWN_AG); /* * Add a deferred free for each block we didn't use and now diff --git a/fs/xfs/xfs_trace.c b/fs/xfs/xfs_trace.c index 6ab8760f3650..50e77a1c0ccd 100644 --- a/fs/xfs/xfs_trace.c +++ b/fs/xfs/xfs_trace.c @@ -40,6 +40,21 @@ #include "xfs_rtalloc.h" #include "xfs_rmap.h" +static inline void +xfs_btree_crack_agno_opdev( + struct xfs_btree_cur *cur, + xfs_agnumber_t *agno, + dev_t *opdev) +{ + if (cur->bc_flags & XFS_BTREE_ROOT_IN_INODE) { + *agno = 0; + *opdev = cur->bc_mp->m_rtdev_targp->bt_dev; + } else { + *agno = cur->bc_ag.pag->pag_agno; + *opdev = cur->bc_mp->m_super->s_dev; + } +} + /* * We include this last to have the helpers above available for the trace * event implementations. diff --git a/fs/xfs/xfs_trace.h b/fs/xfs/xfs_trace.h index d9dde1c774e8..58b07692360c 100644 --- a/fs/xfs/xfs_trace.h +++ b/fs/xfs/xfs_trace.h @@ -19,6 +19,9 @@ * for realtime device mappings * fsbcount: number of blocks in an extent, in fs blocks * + * rmapbno: physical block number for a reverse mapping. This is an agbno for + * per-AG rmap btrees or a rtbno for realtime rmap btrees. + * * daddr: physical block number in 512b blocks * bbcount: number of blocks in a physical extent, in 512b blocks * @@ -2722,22 +2725,23 @@ DEFINE_FREE_EXTENT_DEFERRED_EVENT(xfs_extent_free_deferred); /* rmap tracepoints */ DECLARE_EVENT_CLASS(xfs_rmap_class, TP_PROTO(struct xfs_btree_cur *cur, - xfs_agblock_t agbno, xfs_extlen_t len, bool unwritten, + xfs_fsblock_t bno, xfs_filblks_t len, bool unwritten, const struct xfs_owner_info *oinfo), - TP_ARGS(cur, agbno, len, unwritten, oinfo), + TP_ARGS(cur, bno, len, unwritten, oinfo), TP_STRUCT__entry( __field(dev_t, dev) + __field(dev_t, opdev) __field(xfs_agnumber_t, agno) - __field(xfs_agblock_t, agbno) - __field(xfs_extlen_t, len) + __field(xfs_fsblock_t, bno) + __field(xfs_filblks_t, len) __field(uint64_t, owner) __field(uint64_t, offset) __field(unsigned long, flags) ), TP_fast_assign( __entry->dev = cur->bc_mp->m_super->s_dev; - __entry->agno = cur->bc_ag.pag->pag_agno; - __entry->agbno = agbno; + xfs_btree_crack_agno_opdev(cur, &__entry->agno, &__entry->opdev); + __entry->bno = bno; __entry->len = len; __entry->owner = oinfo->oi_owner; __entry->offset = oinfo->oi_offset; @@ -2745,10 +2749,11 @@ DECLARE_EVENT_CLASS(xfs_rmap_class, if (unwritten) __entry->flags |= XFS_RMAP_UNWRITTEN; ), - TP_printk("dev %d:%d agno 0x%x agbno 0x%x fsbcount 0x%x owner 0x%llx fileoff 0x%llx flags 0x%lx", + TP_printk("dev %d:%d opdev %d:%d agno 0x%x rmapbno 0x%llx fsbcount 0x%llx owner 0x%llx fileoff 0x%llx flags 0x%lx", MAJOR(__entry->dev), MINOR(__entry->dev), + MAJOR(__entry->opdev), MINOR(__entry->opdev), __entry->agno, - __entry->agbno, + __entry->bno, __entry->len, __entry->owner, __entry->offset, @@ -2757,9 +2762,9 @@ DECLARE_EVENT_CLASS(xfs_rmap_class, #define DEFINE_RMAP_EVENT(name) \ DEFINE_EVENT(xfs_rmap_class, name, \ TP_PROTO(struct xfs_btree_cur *cur, \ - xfs_agblock_t agbno, xfs_extlen_t len, bool unwritten, \ + xfs_fsblock_t bno, xfs_filblks_t len, bool unwritten, \ const struct xfs_owner_info *oinfo), \ - TP_ARGS(cur, agbno, len, unwritten, oinfo)) + TP_ARGS(cur, bno, len, unwritten, oinfo)) /* btree cursor error/%ip tracepoint class */ DECLARE_EVENT_CLASS(xfs_btree_error_class, @@ -2815,58 +2820,54 @@ TRACE_EVENT(xfs_rmap_convert_state, TP_ARGS(cur, state, caller_ip), TP_STRUCT__entry( __field(dev_t, dev) + __field(dev_t, opdev) __field(xfs_agnumber_t, agno) - __field(xfs_ino_t, ino) __field(int, state) __field(unsigned long, caller_ip) ), TP_fast_assign( __entry->dev = cur->bc_mp->m_super->s_dev; - if (cur->bc_flags & XFS_BTREE_ROOT_IN_INODE) { - __entry->agno = 0; - __entry->ino = cur->bc_ino.ip->i_ino; - } else { - __entry->agno = cur->bc_ag.pag->pag_agno; - __entry->ino = 0; - } + xfs_btree_crack_agno_opdev(cur, &__entry->agno, &__entry->opdev); __entry->state = state; __entry->caller_ip = caller_ip; ), - TP_printk("dev %d:%d agno 0x%x ino 0x%llx state %d caller %pS", + TP_printk("dev %d:%d opdev %d:%d agno 0x%x state %d caller %pS", MAJOR(__entry->dev), MINOR(__entry->dev), + MAJOR(__entry->opdev), MINOR(__entry->opdev), __entry->agno, - __entry->ino, __entry->state, (char *)__entry->caller_ip) ); DECLARE_EVENT_CLASS(xfs_rmapbt_class, TP_PROTO(struct xfs_btree_cur *cur, - xfs_agblock_t agbno, xfs_extlen_t len, + xfs_fsblock_t bno, xfs_filblks_t len, uint64_t owner, uint64_t offset, unsigned int flags), - TP_ARGS(cur, agbno, len, owner, offset, flags), + TP_ARGS(cur, bno, len, owner, offset, flags), TP_STRUCT__entry( __field(dev_t, dev) + __field(dev_t, opdev) __field(xfs_agnumber_t, agno) - __field(xfs_agblock_t, agbno) - __field(xfs_extlen_t, len) + __field(xfs_fsblock_t, bno) + __field(xfs_filblks_t, len) __field(uint64_t, owner) __field(uint64_t, offset) __field(unsigned int, flags) ), TP_fast_assign( __entry->dev = cur->bc_mp->m_super->s_dev; - __entry->agno = cur->bc_ag.pag->pag_agno; - __entry->agbno = agbno; + xfs_btree_crack_agno_opdev(cur, &__entry->agno, &__entry->opdev); + __entry->bno = bno; __entry->len = len; __entry->owner = owner; __entry->offset = offset; __entry->flags = flags; ), - TP_printk("dev %d:%d agno 0x%x agbno 0x%x fsbcount 0x%x owner 0x%llx fileoff 0x%llx flags 0x%x", + TP_printk("dev %d:%d opdev %d:%d agno 0x%x rmapbno 0x%llx fsbcount 0x%llx owner 0x%llx fileoff 0x%llx flags 0x%x", MAJOR(__entry->dev), MINOR(__entry->dev), + MAJOR(__entry->opdev), MINOR(__entry->opdev), __entry->agno, - __entry->agbno, + __entry->bno, __entry->len, __entry->owner, __entry->offset, @@ -2875,9 +2876,9 @@ DECLARE_EVENT_CLASS(xfs_rmapbt_class, #define DEFINE_RMAPBT_EVENT(name) \ DEFINE_EVENT(xfs_rmapbt_class, name, \ TP_PROTO(struct xfs_btree_cur *cur, \ - xfs_agblock_t agbno, xfs_extlen_t len, \ + xfs_fsblock_t bno, xfs_filblks_t len, \ uint64_t owner, uint64_t offset, unsigned int flags), \ - TP_ARGS(cur, agbno, len, owner, offset, flags)) + TP_ARGS(cur, bno, len, owner, offset, flags)) TRACE_DEFINE_ENUM(XFS_RMAP_MAP); TRACE_DEFINE_ENUM(XFS_RMAP_MAP_SHARED); |