diff options
author | Eric Sandeen <sandeen@redhat.com> | 2016-01-04 00:10:19 -0500 |
---|---|---|
committer | Dave Chinner <david@fromorbit.com> | 2016-01-04 00:10:19 -0500 |
commit | 233135b763db7c64d07b728a9c66745fb0376275 (patch) | |
tree | 0b091cd4c785f3fad2d245d9fc9a842f3067681b /fs/xfs | |
parent | 1d4292bfdc77f4f7c520064be15d0c46bd025fd2 (diff) |
xfs: print name of verifier if it fails
This adds a name to each buf_ops structure, so that if
a verifier fails we can print the type of verifier that
failed it. Should be a slight debugging aid, I hope.
Signed-off-by: Eric Sandeen <sandeen@redhat.com>
Reviewed-by: Brian Foster <bfoster@redhat.com>
Signed-off-by: Dave Chinner <david@fromorbit.com>
Diffstat (limited to 'fs/xfs')
-rw-r--r-- | fs/xfs/libxfs/xfs_alloc.c | 2 | ||||
-rw-r--r-- | fs/xfs/libxfs/xfs_alloc_btree.c | 1 | ||||
-rw-r--r-- | fs/xfs/libxfs/xfs_attr_leaf.c | 1 | ||||
-rw-r--r-- | fs/xfs/libxfs/xfs_attr_remote.c | 1 | ||||
-rw-r--r-- | fs/xfs/libxfs/xfs_bmap_btree.c | 1 | ||||
-rw-r--r-- | fs/xfs/libxfs/xfs_da_btree.c | 1 | ||||
-rw-r--r-- | fs/xfs/libxfs/xfs_dir2_block.c | 1 | ||||
-rw-r--r-- | fs/xfs/libxfs/xfs_dir2_data.c | 2 | ||||
-rw-r--r-- | fs/xfs/libxfs/xfs_dir2_leaf.c | 2 | ||||
-rw-r--r-- | fs/xfs/libxfs/xfs_dir2_node.c | 1 | ||||
-rw-r--r-- | fs/xfs/libxfs/xfs_dquot_buf.c | 1 | ||||
-rw-r--r-- | fs/xfs/libxfs/xfs_ialloc.c | 1 | ||||
-rw-r--r-- | fs/xfs/libxfs/xfs_ialloc_btree.c | 1 | ||||
-rw-r--r-- | fs/xfs/libxfs/xfs_inode_buf.c | 2 | ||||
-rw-r--r-- | fs/xfs/libxfs/xfs_sb.c | 2 | ||||
-rw-r--r-- | fs/xfs/libxfs/xfs_symlink_remote.c | 1 | ||||
-rw-r--r-- | fs/xfs/xfs_buf.h | 1 | ||||
-rw-r--r-- | fs/xfs/xfs_error.c | 4 |
18 files changed, 24 insertions, 2 deletions
diff --git a/fs/xfs/libxfs/xfs_alloc.c b/fs/xfs/libxfs/xfs_alloc.c index 3479294c1d58..e1e7fe3b5424 100644 --- a/fs/xfs/libxfs/xfs_alloc.c +++ b/fs/xfs/libxfs/xfs_alloc.c | |||
@@ -535,6 +535,7 @@ xfs_agfl_write_verify( | |||
535 | } | 535 | } |
536 | 536 | ||
537 | const struct xfs_buf_ops xfs_agfl_buf_ops = { | 537 | const struct xfs_buf_ops xfs_agfl_buf_ops = { |
538 | .name = "xfs_agfl", | ||
538 | .verify_read = xfs_agfl_read_verify, | 539 | .verify_read = xfs_agfl_read_verify, |
539 | .verify_write = xfs_agfl_write_verify, | 540 | .verify_write = xfs_agfl_write_verify, |
540 | }; | 541 | }; |
@@ -2339,6 +2340,7 @@ xfs_agf_write_verify( | |||
2339 | } | 2340 | } |
2340 | 2341 | ||
2341 | const struct xfs_buf_ops xfs_agf_buf_ops = { | 2342 | const struct xfs_buf_ops xfs_agf_buf_ops = { |
2343 | .name = "xfs_agf", | ||
2342 | .verify_read = xfs_agf_read_verify, | 2344 | .verify_read = xfs_agf_read_verify, |
2343 | .verify_write = xfs_agf_write_verify, | 2345 | .verify_write = xfs_agf_write_verify, |
2344 | }; | 2346 | }; |
diff --git a/fs/xfs/libxfs/xfs_alloc_btree.c b/fs/xfs/libxfs/xfs_alloc_btree.c index 90de071dd4c2..eb8bbfe85484 100644 --- a/fs/xfs/libxfs/xfs_alloc_btree.c +++ b/fs/xfs/libxfs/xfs_alloc_btree.c | |||
@@ -379,6 +379,7 @@ xfs_allocbt_write_verify( | |||
379 | } | 379 | } |
380 | 380 | ||
381 | const struct xfs_buf_ops xfs_allocbt_buf_ops = { | 381 | const struct xfs_buf_ops xfs_allocbt_buf_ops = { |
382 | .name = "xfs_allocbt", | ||
382 | .verify_read = xfs_allocbt_read_verify, | 383 | .verify_read = xfs_allocbt_read_verify, |
383 | .verify_write = xfs_allocbt_write_verify, | 384 | .verify_write = xfs_allocbt_write_verify, |
384 | }; | 385 | }; |
diff --git a/fs/xfs/libxfs/xfs_attr_leaf.c b/fs/xfs/libxfs/xfs_attr_leaf.c index aa187f7ba2dd..01a5ecfedfcf 100644 --- a/fs/xfs/libxfs/xfs_attr_leaf.c +++ b/fs/xfs/libxfs/xfs_attr_leaf.c | |||
@@ -328,6 +328,7 @@ xfs_attr3_leaf_read_verify( | |||
328 | } | 328 | } |
329 | 329 | ||
330 | const struct xfs_buf_ops xfs_attr3_leaf_buf_ops = { | 330 | const struct xfs_buf_ops xfs_attr3_leaf_buf_ops = { |
331 | .name = "xfs_attr3_leaf", | ||
331 | .verify_read = xfs_attr3_leaf_read_verify, | 332 | .verify_read = xfs_attr3_leaf_read_verify, |
332 | .verify_write = xfs_attr3_leaf_write_verify, | 333 | .verify_write = xfs_attr3_leaf_write_verify, |
333 | }; | 334 | }; |
diff --git a/fs/xfs/libxfs/xfs_attr_remote.c b/fs/xfs/libxfs/xfs_attr_remote.c index 5ab95ffa4ae9..f3ed9bf0b065 100644 --- a/fs/xfs/libxfs/xfs_attr_remote.c +++ b/fs/xfs/libxfs/xfs_attr_remote.c | |||
@@ -201,6 +201,7 @@ xfs_attr3_rmt_write_verify( | |||
201 | } | 201 | } |
202 | 202 | ||
203 | const struct xfs_buf_ops xfs_attr3_rmt_buf_ops = { | 203 | const struct xfs_buf_ops xfs_attr3_rmt_buf_ops = { |
204 | .name = "xfs_attr3_rmt", | ||
204 | .verify_read = xfs_attr3_rmt_read_verify, | 205 | .verify_read = xfs_attr3_rmt_read_verify, |
205 | .verify_write = xfs_attr3_rmt_write_verify, | 206 | .verify_write = xfs_attr3_rmt_write_verify, |
206 | }; | 207 | }; |
diff --git a/fs/xfs/libxfs/xfs_bmap_btree.c b/fs/xfs/libxfs/xfs_bmap_btree.c index 6b0cf6546a82..1637c37bfbaa 100644 --- a/fs/xfs/libxfs/xfs_bmap_btree.c +++ b/fs/xfs/libxfs/xfs_bmap_btree.c | |||
@@ -720,6 +720,7 @@ xfs_bmbt_write_verify( | |||
720 | } | 720 | } |
721 | 721 | ||
722 | const struct xfs_buf_ops xfs_bmbt_buf_ops = { | 722 | const struct xfs_buf_ops xfs_bmbt_buf_ops = { |
723 | .name = "xfs_bmbt", | ||
723 | .verify_read = xfs_bmbt_read_verify, | 724 | .verify_read = xfs_bmbt_read_verify, |
724 | .verify_write = xfs_bmbt_write_verify, | 725 | .verify_write = xfs_bmbt_write_verify, |
725 | }; | 726 | }; |
diff --git a/fs/xfs/libxfs/xfs_da_btree.c b/fs/xfs/libxfs/xfs_da_btree.c index e89a0f8f827c..097bf7717d80 100644 --- a/fs/xfs/libxfs/xfs_da_btree.c +++ b/fs/xfs/libxfs/xfs_da_btree.c | |||
@@ -245,6 +245,7 @@ xfs_da3_node_read_verify( | |||
245 | } | 245 | } |
246 | 246 | ||
247 | const struct xfs_buf_ops xfs_da3_node_buf_ops = { | 247 | const struct xfs_buf_ops xfs_da3_node_buf_ops = { |
248 | .name = "xfs_da3_node", | ||
248 | .verify_read = xfs_da3_node_read_verify, | 249 | .verify_read = xfs_da3_node_read_verify, |
249 | .verify_write = xfs_da3_node_write_verify, | 250 | .verify_write = xfs_da3_node_write_verify, |
250 | }; | 251 | }; |
diff --git a/fs/xfs/libxfs/xfs_dir2_block.c b/fs/xfs/libxfs/xfs_dir2_block.c index 9c10e2b8cfcb..aa17cb788946 100644 --- a/fs/xfs/libxfs/xfs_dir2_block.c +++ b/fs/xfs/libxfs/xfs_dir2_block.c | |||
@@ -123,6 +123,7 @@ xfs_dir3_block_write_verify( | |||
123 | } | 123 | } |
124 | 124 | ||
125 | const struct xfs_buf_ops xfs_dir3_block_buf_ops = { | 125 | const struct xfs_buf_ops xfs_dir3_block_buf_ops = { |
126 | .name = "xfs_dir3_block", | ||
126 | .verify_read = xfs_dir3_block_read_verify, | 127 | .verify_read = xfs_dir3_block_read_verify, |
127 | .verify_write = xfs_dir3_block_write_verify, | 128 | .verify_write = xfs_dir3_block_write_verify, |
128 | }; | 129 | }; |
diff --git a/fs/xfs/libxfs/xfs_dir2_data.c b/fs/xfs/libxfs/xfs_dir2_data.c index af71a84f343c..725fc7841fde 100644 --- a/fs/xfs/libxfs/xfs_dir2_data.c +++ b/fs/xfs/libxfs/xfs_dir2_data.c | |||
@@ -305,11 +305,13 @@ xfs_dir3_data_write_verify( | |||
305 | } | 305 | } |
306 | 306 | ||
307 | const struct xfs_buf_ops xfs_dir3_data_buf_ops = { | 307 | const struct xfs_buf_ops xfs_dir3_data_buf_ops = { |
308 | .name = "xfs_dir3_data", | ||
308 | .verify_read = xfs_dir3_data_read_verify, | 309 | .verify_read = xfs_dir3_data_read_verify, |
309 | .verify_write = xfs_dir3_data_write_verify, | 310 | .verify_write = xfs_dir3_data_write_verify, |
310 | }; | 311 | }; |
311 | 312 | ||
312 | static const struct xfs_buf_ops xfs_dir3_data_reada_buf_ops = { | 313 | static const struct xfs_buf_ops xfs_dir3_data_reada_buf_ops = { |
314 | .name = "xfs_dir3_data_reada", | ||
313 | .verify_read = xfs_dir3_data_reada_verify, | 315 | .verify_read = xfs_dir3_data_reada_verify, |
314 | .verify_write = xfs_dir3_data_write_verify, | 316 | .verify_write = xfs_dir3_data_write_verify, |
315 | }; | 317 | }; |
diff --git a/fs/xfs/libxfs/xfs_dir2_leaf.c b/fs/xfs/libxfs/xfs_dir2_leaf.c index 3923e1f94697..b887fb2a2bcf 100644 --- a/fs/xfs/libxfs/xfs_dir2_leaf.c +++ b/fs/xfs/libxfs/xfs_dir2_leaf.c | |||
@@ -245,11 +245,13 @@ xfs_dir3_leafn_write_verify( | |||
245 | } | 245 | } |
246 | 246 | ||
247 | const struct xfs_buf_ops xfs_dir3_leaf1_buf_ops = { | 247 | const struct xfs_buf_ops xfs_dir3_leaf1_buf_ops = { |
248 | .name = "xfs_dir3_leaf1", | ||
248 | .verify_read = xfs_dir3_leaf1_read_verify, | 249 | .verify_read = xfs_dir3_leaf1_read_verify, |
249 | .verify_write = xfs_dir3_leaf1_write_verify, | 250 | .verify_write = xfs_dir3_leaf1_write_verify, |
250 | }; | 251 | }; |
251 | 252 | ||
252 | const struct xfs_buf_ops xfs_dir3_leafn_buf_ops = { | 253 | const struct xfs_buf_ops xfs_dir3_leafn_buf_ops = { |
254 | .name = "xfs_dir3_leafn", | ||
253 | .verify_read = xfs_dir3_leafn_read_verify, | 255 | .verify_read = xfs_dir3_leafn_read_verify, |
254 | .verify_write = xfs_dir3_leafn_write_verify, | 256 | .verify_write = xfs_dir3_leafn_write_verify, |
255 | }; | 257 | }; |
diff --git a/fs/xfs/libxfs/xfs_dir2_node.c b/fs/xfs/libxfs/xfs_dir2_node.c index 70b0cb2fd556..63ee03db796c 100644 --- a/fs/xfs/libxfs/xfs_dir2_node.c +++ b/fs/xfs/libxfs/xfs_dir2_node.c | |||
@@ -150,6 +150,7 @@ xfs_dir3_free_write_verify( | |||
150 | } | 150 | } |
151 | 151 | ||
152 | const struct xfs_buf_ops xfs_dir3_free_buf_ops = { | 152 | const struct xfs_buf_ops xfs_dir3_free_buf_ops = { |
153 | .name = "xfs_dir3_free", | ||
153 | .verify_read = xfs_dir3_free_read_verify, | 154 | .verify_read = xfs_dir3_free_read_verify, |
154 | .verify_write = xfs_dir3_free_write_verify, | 155 | .verify_write = xfs_dir3_free_write_verify, |
155 | }; | 156 | }; |
diff --git a/fs/xfs/libxfs/xfs_dquot_buf.c b/fs/xfs/libxfs/xfs_dquot_buf.c index 5331b7f0460c..11cefb2a372a 100644 --- a/fs/xfs/libxfs/xfs_dquot_buf.c +++ b/fs/xfs/libxfs/xfs_dquot_buf.c | |||
@@ -282,6 +282,7 @@ xfs_dquot_buf_write_verify( | |||
282 | } | 282 | } |
283 | 283 | ||
284 | const struct xfs_buf_ops xfs_dquot_buf_ops = { | 284 | const struct xfs_buf_ops xfs_dquot_buf_ops = { |
285 | .name = "xfs_dquot", | ||
285 | .verify_read = xfs_dquot_buf_read_verify, | 286 | .verify_read = xfs_dquot_buf_read_verify, |
286 | .verify_write = xfs_dquot_buf_write_verify, | 287 | .verify_write = xfs_dquot_buf_write_verify, |
287 | }; | 288 | }; |
diff --git a/fs/xfs/libxfs/xfs_ialloc.c b/fs/xfs/libxfs/xfs_ialloc.c index 70c1db99f6a7..66d702e6b9ff 100644 --- a/fs/xfs/libxfs/xfs_ialloc.c +++ b/fs/xfs/libxfs/xfs_ialloc.c | |||
@@ -2572,6 +2572,7 @@ xfs_agi_write_verify( | |||
2572 | } | 2572 | } |
2573 | 2573 | ||
2574 | const struct xfs_buf_ops xfs_agi_buf_ops = { | 2574 | const struct xfs_buf_ops xfs_agi_buf_ops = { |
2575 | .name = "xfs_agi", | ||
2575 | .verify_read = xfs_agi_read_verify, | 2576 | .verify_read = xfs_agi_read_verify, |
2576 | .verify_write = xfs_agi_write_verify, | 2577 | .verify_write = xfs_agi_write_verify, |
2577 | }; | 2578 | }; |
diff --git a/fs/xfs/libxfs/xfs_ialloc_btree.c b/fs/xfs/libxfs/xfs_ialloc_btree.c index f39b285beb19..6dd44f9ea727 100644 --- a/fs/xfs/libxfs/xfs_ialloc_btree.c +++ b/fs/xfs/libxfs/xfs_ialloc_btree.c | |||
@@ -304,6 +304,7 @@ xfs_inobt_write_verify( | |||
304 | } | 304 | } |
305 | 305 | ||
306 | const struct xfs_buf_ops xfs_inobt_buf_ops = { | 306 | const struct xfs_buf_ops xfs_inobt_buf_ops = { |
307 | .name = "xfs_inobt", | ||
307 | .verify_read = xfs_inobt_read_verify, | 308 | .verify_read = xfs_inobt_read_verify, |
308 | .verify_write = xfs_inobt_write_verify, | 309 | .verify_write = xfs_inobt_write_verify, |
309 | }; | 310 | }; |
diff --git a/fs/xfs/libxfs/xfs_inode_buf.c b/fs/xfs/libxfs/xfs_inode_buf.c index 268c00f4f83a..1b8d98a915c4 100644 --- a/fs/xfs/libxfs/xfs_inode_buf.c +++ b/fs/xfs/libxfs/xfs_inode_buf.c | |||
@@ -132,11 +132,13 @@ xfs_inode_buf_write_verify( | |||
132 | } | 132 | } |
133 | 133 | ||
134 | const struct xfs_buf_ops xfs_inode_buf_ops = { | 134 | const struct xfs_buf_ops xfs_inode_buf_ops = { |
135 | .name = "xfs_inode", | ||
135 | .verify_read = xfs_inode_buf_read_verify, | 136 | .verify_read = xfs_inode_buf_read_verify, |
136 | .verify_write = xfs_inode_buf_write_verify, | 137 | .verify_write = xfs_inode_buf_write_verify, |
137 | }; | 138 | }; |
138 | 139 | ||
139 | const struct xfs_buf_ops xfs_inode_buf_ra_ops = { | 140 | const struct xfs_buf_ops xfs_inode_buf_ra_ops = { |
141 | .name = "xxfs_inode_ra", | ||
140 | .verify_read = xfs_inode_buf_readahead_verify, | 142 | .verify_read = xfs_inode_buf_readahead_verify, |
141 | .verify_write = xfs_inode_buf_write_verify, | 143 | .verify_write = xfs_inode_buf_write_verify, |
142 | }; | 144 | }; |
diff --git a/fs/xfs/libxfs/xfs_sb.c b/fs/xfs/libxfs/xfs_sb.c index a0b071d881a0..8a53eaa349f4 100644 --- a/fs/xfs/libxfs/xfs_sb.c +++ b/fs/xfs/libxfs/xfs_sb.c | |||
@@ -679,11 +679,13 @@ xfs_sb_write_verify( | |||
679 | } | 679 | } |
680 | 680 | ||
681 | const struct xfs_buf_ops xfs_sb_buf_ops = { | 681 | const struct xfs_buf_ops xfs_sb_buf_ops = { |
682 | .name = "xfs_sb", | ||
682 | .verify_read = xfs_sb_read_verify, | 683 | .verify_read = xfs_sb_read_verify, |
683 | .verify_write = xfs_sb_write_verify, | 684 | .verify_write = xfs_sb_write_verify, |
684 | }; | 685 | }; |
685 | 686 | ||
686 | const struct xfs_buf_ops xfs_sb_quiet_buf_ops = { | 687 | const struct xfs_buf_ops xfs_sb_quiet_buf_ops = { |
688 | .name = "xfs_sb_quiet", | ||
687 | .verify_read = xfs_sb_quiet_read_verify, | 689 | .verify_read = xfs_sb_quiet_read_verify, |
688 | .verify_write = xfs_sb_write_verify, | 690 | .verify_write = xfs_sb_write_verify, |
689 | }; | 691 | }; |
diff --git a/fs/xfs/libxfs/xfs_symlink_remote.c b/fs/xfs/libxfs/xfs_symlink_remote.c index cb6fd20a4d3d..2e2c6716b623 100644 --- a/fs/xfs/libxfs/xfs_symlink_remote.c +++ b/fs/xfs/libxfs/xfs_symlink_remote.c | |||
@@ -168,6 +168,7 @@ xfs_symlink_write_verify( | |||
168 | } | 168 | } |
169 | 169 | ||
170 | const struct xfs_buf_ops xfs_symlink_buf_ops = { | 170 | const struct xfs_buf_ops xfs_symlink_buf_ops = { |
171 | .name = "xfs_symlink", | ||
171 | .verify_read = xfs_symlink_read_verify, | 172 | .verify_read = xfs_symlink_read_verify, |
172 | .verify_write = xfs_symlink_write_verify, | 173 | .verify_write = xfs_symlink_write_verify, |
173 | }; | 174 | }; |
diff --git a/fs/xfs/xfs_buf.h b/fs/xfs/xfs_buf.h index c79b717d9b88..c75721acd867 100644 --- a/fs/xfs/xfs_buf.h +++ b/fs/xfs/xfs_buf.h | |||
@@ -132,6 +132,7 @@ struct xfs_buf_map { | |||
132 | struct xfs_buf_map (map) = { .bm_bn = (blkno), .bm_len = (numblk) }; | 132 | struct xfs_buf_map (map) = { .bm_bn = (blkno), .bm_len = (numblk) }; |
133 | 133 | ||
134 | struct xfs_buf_ops { | 134 | struct xfs_buf_ops { |
135 | char *name; | ||
135 | void (*verify_read)(struct xfs_buf *); | 136 | void (*verify_read)(struct xfs_buf *); |
136 | void (*verify_write)(struct xfs_buf *); | 137 | void (*verify_write)(struct xfs_buf *); |
137 | }; | 138 | }; |
diff --git a/fs/xfs/xfs_error.c b/fs/xfs/xfs_error.c index 74d0e5966ebc..88693a98fac5 100644 --- a/fs/xfs/xfs_error.c +++ b/fs/xfs/xfs_error.c | |||
@@ -164,9 +164,9 @@ xfs_verifier_error( | |||
164 | { | 164 | { |
165 | struct xfs_mount *mp = bp->b_target->bt_mount; | 165 | struct xfs_mount *mp = bp->b_target->bt_mount; |
166 | 166 | ||
167 | xfs_alert(mp, "Metadata %s detected at %pF, block 0x%llx", | 167 | xfs_alert(mp, "Metadata %s detected at %pF, %s block 0x%llx", |
168 | bp->b_error == -EFSBADCRC ? "CRC error" : "corruption", | 168 | bp->b_error == -EFSBADCRC ? "CRC error" : "corruption", |
169 | __return_address, bp->b_bn); | 169 | __return_address, bp->b_ops->name, bp->b_bn); |
170 | 170 | ||
171 | xfs_alert(mp, "Unmount and run xfs_repair"); | 171 | xfs_alert(mp, "Unmount and run xfs_repair"); |
172 | 172 | ||