FILE
xfs_errortag.h
File preview with syntax highlighting.
linux-6.19.14/fs/xfs/libxfs/xfs_errortag.h
1/* SPDX-License-Identifier: GPL-2.0+ */ 2/* 3 * Copyright (c) 2000-2002,2005 Silicon Graphics, Inc. 4 * Copyright (C) 2017 Oracle. 5 * All Rights Reserved. 6 */ 7#if !defined(__XFS_ERRORTAG_H_) || defined(XFS_ERRTAG) 8#define __XFS_ERRORTAG_H_ 9 10/* 11 * There are two ways to use this header file. The first way is to #include it 12 * bare, which will define all the XFS_ERRTAG_* error injection knobs for use 13 * with the XFS_TEST_ERROR macro. The second way is to enclose the #include 14 * with a #define for an XFS_ERRTAG macro, in which case the header will define 15 " an XFS_ERRTAGS macro that expands to invoke that XFS_ERRTAG macro for each 16 * defined error injection knob. 17 */ 18 19/* 20 * These are the actual error injection tags. The numbers should be consecutive 21 * because arrays are sized based on the maximum. 22 */ 23#define XFS_ERRTAG_NOERROR 0 24#define XFS_ERRTAG_IFLUSH_1 1 25#define XFS_ERRTAG_IFLUSH_2 2 26#define XFS_ERRTAG_IFLUSH_3 3 27#define XFS_ERRTAG_IFLUSH_4 4 28#define XFS_ERRTAG_IFLUSH_5 5 29#define XFS_ERRTAG_IFLUSH_6 6 30#define XFS_ERRTAG_DA_READ_BUF 7 31#define XFS_ERRTAG_BTREE_CHECK_LBLOCK 8 32#define XFS_ERRTAG_BTREE_CHECK_SBLOCK 9 33#define XFS_ERRTAG_ALLOC_READ_AGF 10 34#define XFS_ERRTAG_IALLOC_READ_AGI 11 35#define XFS_ERRTAG_ITOBP_INOTOBP 12 36#define XFS_ERRTAG_IUNLINK 13 37#define XFS_ERRTAG_IUNLINK_REMOVE 14 38#define XFS_ERRTAG_DIR_INO_VALIDATE 15 39#define XFS_ERRTAG_BULKSTAT_READ_CHUNK 16 40#define XFS_ERRTAG_IODONE_IOERR 17 41#define XFS_ERRTAG_STRATREAD_IOERR 18 42#define XFS_ERRTAG_STRATCMPL_IOERR 19 43#define XFS_ERRTAG_DIOWRITE_IOERR 20 44#define XFS_ERRTAG_BMAPIFORMAT 21 45#define XFS_ERRTAG_FREE_EXTENT 22 46#define XFS_ERRTAG_RMAP_FINISH_ONE 23 47#define XFS_ERRTAG_REFCOUNT_CONTINUE_UPDATE 24 48#define XFS_ERRTAG_REFCOUNT_FINISH_ONE 25 49#define XFS_ERRTAG_BMAP_FINISH_ONE 26 50#define XFS_ERRTAG_AG_RESV_CRITICAL 27 51 52/* 53 * Drop-writes support removed because write error handling cannot trash 54 * pre-existing delalloc extents in any useful way anymore. We retain the 55 * definition so that we can reject it as an invalid value in 56 * xfs_errortag_valid(). 57 */ 58#define XFS_ERRTAG_DROP_WRITES 28 59#define XFS_ERRTAG_LOG_BAD_CRC 29 60#define XFS_ERRTAG_LOG_ITEM_PIN 30 61#define XFS_ERRTAG_BUF_LRU_REF 31 62#define XFS_ERRTAG_FORCE_SCRUB_REPAIR 32 63#define XFS_ERRTAG_FORCE_SUMMARY_RECALC 33 64#define XFS_ERRTAG_IUNLINK_FALLBACK 34 65#define XFS_ERRTAG_BUF_IOERROR 35 66#define XFS_ERRTAG_REDUCE_MAX_IEXTENTS 36 67#define XFS_ERRTAG_BMAP_ALLOC_MINLEN_EXTENT 37 68#define XFS_ERRTAG_AG_RESV_FAIL 38 69#define XFS_ERRTAG_LARP 39 70#define XFS_ERRTAG_DA_LEAF_SPLIT 40 71#define XFS_ERRTAG_ATTR_LEAF_TO_NODE 41 72#define XFS_ERRTAG_WB_DELAY_MS 42 73#define XFS_ERRTAG_WRITE_DELAY_MS 43 74#define XFS_ERRTAG_EXCHMAPS_FINISH_ONE 44 75#define XFS_ERRTAG_METAFILE_RESV_CRITICAL 45 76#define XFS_ERRTAG_FORCE_ZERO_RANGE 46 77#define XFS_ERRTAG_MAX 47 78 79/* 80 * Random factors for above tags, 1 means always, 2 means 1/2 time, etc. 81 */ 82#define XFS_RANDOM_DEFAULT 100 83 84/* 85 * Table of errror injection knobs. The parameters to the XFS_ERRTAG macro are: 86 * 1. The XFS_ERRTAG_ flag but without the prefix; 87 * 2. The name of the sysfs knob; and 88 * 3. The default value for the knob. 89 */ 90#ifdef XFS_ERRTAG 91# undef XFS_ERRTAGS 92# define XFS_ERRTAGS \ 93XFS_ERRTAG(NOERROR, noerror, XFS_RANDOM_DEFAULT) \ 94XFS_ERRTAG(IFLUSH_1, iflush1, XFS_RANDOM_DEFAULT) \ 95XFS_ERRTAG(IFLUSH_2, iflush2, XFS_RANDOM_DEFAULT) \ 96XFS_ERRTAG(IFLUSH_3, iflush3, XFS_RANDOM_DEFAULT) \ 97XFS_ERRTAG(IFLUSH_4, iflush4, XFS_RANDOM_DEFAULT) \ 98XFS_ERRTAG(IFLUSH_5, iflush5, XFS_RANDOM_DEFAULT) \ 99XFS_ERRTAG(IFLUSH_6, iflush6, XFS_RANDOM_DEFAULT) \ 100XFS_ERRTAG(DA_READ_BUF, dareadbuf, XFS_RANDOM_DEFAULT) \ 101XFS_ERRTAG(BTREE_CHECK_LBLOCK, btree_chk_lblk, XFS_RANDOM_DEFAULT/4) \ 102XFS_ERRTAG(BTREE_CHECK_SBLOCK, btree_chk_sblk, XFS_RANDOM_DEFAULT) \ 103XFS_ERRTAG(ALLOC_READ_AGF, readagf, XFS_RANDOM_DEFAULT) \ 104XFS_ERRTAG(IALLOC_READ_AGI, readagi, XFS_RANDOM_DEFAULT) \ 105XFS_ERRTAG(ITOBP_INOTOBP, itobp, XFS_RANDOM_DEFAULT) \ 106XFS_ERRTAG(IUNLINK, iunlink, XFS_RANDOM_DEFAULT) \ 107XFS_ERRTAG(IUNLINK_REMOVE, iunlinkrm, XFS_RANDOM_DEFAULT) \ 108XFS_ERRTAG(DIR_INO_VALIDATE, dirinovalid, XFS_RANDOM_DEFAULT) \ 109XFS_ERRTAG(BULKSTAT_READ_CHUNK, bulkstat, XFS_RANDOM_DEFAULT) \ 110XFS_ERRTAG(IODONE_IOERR, logiodone, XFS_RANDOM_DEFAULT/10) \ 111XFS_ERRTAG(STRATREAD_IOERR, stratread, XFS_RANDOM_DEFAULT/10) \ 112XFS_ERRTAG(STRATCMPL_IOERR, stratcmpl, XFS_RANDOM_DEFAULT/10) \ 113XFS_ERRTAG(DIOWRITE_IOERR, diowrite, XFS_RANDOM_DEFAULT/10) \ 114XFS_ERRTAG(BMAPIFORMAT, bmapifmt, XFS_RANDOM_DEFAULT) \ 115XFS_ERRTAG(FREE_EXTENT, free_extent, 1) \ 116XFS_ERRTAG(RMAP_FINISH_ONE, rmap_finish_one, 1) \ 117XFS_ERRTAG(REFCOUNT_CONTINUE_UPDATE, refcount_continue_update, 1) \ 118XFS_ERRTAG(REFCOUNT_FINISH_ONE, refcount_finish_one, 1) \ 119XFS_ERRTAG(BMAP_FINISH_ONE, bmap_finish_one, 1) \ 120XFS_ERRTAG(AG_RESV_CRITICAL, ag_resv_critical, 4) \ 121XFS_ERRTAG(LOG_BAD_CRC, log_bad_crc, 1) \ 122XFS_ERRTAG(LOG_ITEM_PIN, log_item_pin, 1) \ 123XFS_ERRTAG(BUF_LRU_REF, buf_lru_ref, 2) \ 124XFS_ERRTAG(FORCE_SCRUB_REPAIR, force_repair, 1) \ 125XFS_ERRTAG(FORCE_SUMMARY_RECALC, bad_summary, 1) \ 126XFS_ERRTAG(IUNLINK_FALLBACK, iunlink_fallback, XFS_RANDOM_DEFAULT/10) \ 127XFS_ERRTAG(BUF_IOERROR, buf_ioerror, XFS_RANDOM_DEFAULT) \ 128XFS_ERRTAG(REDUCE_MAX_IEXTENTS, reduce_max_iextents, 1) \ 129XFS_ERRTAG(BMAP_ALLOC_MINLEN_EXTENT, bmap_alloc_minlen_extent, 1) \ 130XFS_ERRTAG(AG_RESV_FAIL, ag_resv_fail, 1) \ 131XFS_ERRTAG(LARP, larp, 1) \ 132XFS_ERRTAG(DA_LEAF_SPLIT, da_leaf_split, 1) \ 133XFS_ERRTAG(ATTR_LEAF_TO_NODE, attr_leaf_to_node, 1) \ 134XFS_ERRTAG(WB_DELAY_MS, wb_delay_ms, 3000) \ 135XFS_ERRTAG(WRITE_DELAY_MS, write_delay_ms, 3000) \ 136XFS_ERRTAG(EXCHMAPS_FINISH_ONE, exchmaps_finish_one, 1) \ 137XFS_ERRTAG(METAFILE_RESV_CRITICAL, metafile_resv_crit, 4) \ 138XFS_ERRTAG(FORCE_ZERO_RANGE, force_zero_range, 4) 139#endif /* XFS_ERRTAG */ 140 141#endif /* __XFS_ERRORTAG_H_ */
~/
Read-only file preview.