File Index
Files and directories
Sign in
FILE

xfs_errortag.h

File preview with syntax highlighting.

linux-6.19.14/fs/xfs/libxfs/xfs_errortag.h C
  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.