Line data Source code
1 : // SPDX-License-Identifier: GPL-2.0 2 : /* 3 : * Copyright (c) 2009, Christoph Hellwig 4 : * All Rights Reserved. 5 : */ 6 : #include "xfs.h" 7 : #include "xfs_fs.h" 8 : #include "xfs_shared.h" 9 : #include "xfs_bit.h" 10 : #include "xfs_format.h" 11 : #include "xfs_log_format.h" 12 : #include "xfs_trans_resv.h" 13 : #include "xfs_mount.h" 14 : #include "xfs_defer.h" 15 : #include "xfs_da_format.h" 16 : #include "xfs_inode.h" 17 : #include "xfs_btree.h" 18 : #include "xfs_da_btree.h" 19 : #include "xfs_alloc.h" 20 : #include "xfs_bmap.h" 21 : #include "xfs_attr.h" 22 : #include "xfs_trans.h" 23 : #include "xfs_log.h" 24 : #include "xfs_log_priv.h" 25 : #include "xfs_buf_item.h" 26 : #include "xfs_quota.h" 27 : #include "xfs_dquot_item.h" 28 : #include "xfs_dquot.h" 29 : #include "xfs_log_recover.h" 30 : #include "xfs_filestream.h" 31 : #include "xfs_fsmap.h" 32 : #include "xfs_btree_staging.h" 33 : #include "xfs_icache.h" 34 : #include "xfs_ag.h" 35 : #include "xfs_ag_resv.h" 36 : #include "xfs_error.h" 37 : #include <linux/iomap.h> 38 : #include "xfs_iomap.h" 39 : #include "scrub/xfile.h" 40 : #include "scrub/xfbtree.h" 41 : #include "xfs_btree_mem.h" 42 : #include "xfs_bmap.h" 43 : #include "xfs_swapext.h" 44 : #include "xfs_xchgrange.h" 45 : #include "xfs_parent.h" 46 : #include "xfs_imeta.h" 47 : #include "xfs_rtgroup.h" 48 : #include "xfs_rmap.h" 49 : #include "xfs_refcount.h" 50 : #include "xfs_fsrefs.h" 51 : 52 : static inline void 53 0 : xfs_rmapbt_crack_agno_opdev( 54 : struct xfs_btree_cur *cur, 55 : xfs_agnumber_t *agno, 56 : dev_t *opdev) 57 : { 58 0 : if (cur->bc_flags & XFS_BTREE_IN_XFILE) { 59 0 : *agno = 0; 60 0 : *opdev = xfbtree_target(cur->bc_mem.xfbtree)->bt_dev; 61 0 : } else if (cur->bc_flags & XFS_BTREE_ROOT_IN_INODE) { 62 0 : *agno = cur->bc_ino.rtg->rtg_rgno; 63 0 : *opdev = cur->bc_mp->m_rtdev_targp->bt_dev; 64 : } else { 65 0 : *agno = cur->bc_ag.pag->pag_agno; 66 0 : *opdev = cur->bc_mp->m_super->s_dev; 67 : } 68 0 : } 69 : 70 : static inline void 71 : xfs_refcountbt_crack_agno_opdev( 72 : struct xfs_btree_cur *cur, 73 : xfs_agnumber_t *agno, 74 : dev_t *opdev) 75 : { 76 0 : return xfs_rmapbt_crack_agno_opdev(cur, agno, opdev); 77 : } 78 : 79 : /* 80 : * We include this last to have the helpers above available for the trace 81 : * event implementations. 82 : */ 83 : #define CREATE_TRACE_POINTS 84 : #include "xfs_trace.h"