Dave Chinner
1eb70f54c4
xfs: validate inode fork size against fork format
...
xfs_repair catches fork size/format mismatches, but the in-kernel
verifier doesn't, leading to null pointer failures when attempting
to perform operations on the fork. This can occur in the
xfs_dir_is_empty() where the in-memory fork format does not match
the size and so the fork data pointer is accessed incorrectly.
Note: this causes new failures in xfs/348 which is testing mode vs
ftype mismatches. We now detect a regular file that has been changed
to a directory or symlink mode as being corrupt because the data
fork is for a symlink or directory should be in local form when
there are only 3 bytes of data in the data fork. Hence the inode
verify for the regular file now fires w/ -EFSCORRUPTED because
the inode fork format does not match the format the corrupted mode
says it should be in.
Signed-off-by: Dave Chinner <dchinner@redhat.com >
Reviewed-by: Christoph Hellwig <hch@lst.de >
Reviewed-by: Darrick J. Wong <djwong@kernel.org >
Signed-off-by: Dave Chinner <david@fromorbit.com >
2022-05-04 12:13:53 +10:00
..
2022-05-04 12:13:53 +10:00
2022-04-21 16:46:17 +10:00
2020-10-16 15:34:28 -07:00
2022-01-15 16:30:29 +02:00
2021-10-22 16:00:31 -07:00
2020-05-08 08:49:58 -07:00
2018-06-06 14:17:53 -07:00
2021-09-02 09:21:27 -07:00
2021-08-18 22:08:24 +02:00
2022-03-16 13:37:05 -04:00
2019-10-28 08:37:54 -07:00
2021-10-22 16:04:20 -07:00
2021-08-19 10:07:13 -07:00
2022-04-01 19:30:44 -07:00
2022-04-13 07:02:44 +00:00
2021-10-22 16:04:20 -07:00
2022-04-13 07:02:44 +00:00
2022-01-17 09:16:41 -08:00
2021-12-21 09:49:41 -08:00
2022-03-20 08:59:49 -07:00
2022-04-21 10:46:40 +10:00
2022-04-21 08:44:59 +10:00
2022-04-21 08:44:59 +10:00
2022-01-11 15:11:04 -08:00
2021-08-19 10:07:12 -07:00
2017-11-02 11:10:55 +01:00
2021-08-19 10:07:12 -07:00
2021-08-06 11:05:36 -07:00
2021-08-06 11:05:36 -07:00
2022-04-13 07:02:44 +00:00
2021-08-09 10:52:18 -07:00
2022-01-06 10:43:30 -08:00
2022-04-21 10:47:25 +10:00
2021-08-19 10:07:13 -07:00
2018-06-06 14:17:53 -07:00
2021-06-02 10:48:24 +10:00
2021-06-02 10:48:24 +10:00
2022-03-20 08:59:49 -07:00
2021-10-22 16:04:20 -07:00
2022-04-21 16:45:03 +10:00
2021-08-19 10:07:13 -07:00
2021-08-19 10:07:12 -07:00
2022-04-12 06:49:41 +10:00
2020-10-07 08:40:29 -07:00
2022-04-21 16:45:03 +10:00
2021-02-03 09:18:50 -08:00
2021-02-03 09:18:49 -08:00
2021-08-19 10:07:13 -07:00
2022-04-12 06:49:42 +10:00
2021-08-09 11:13:17 -07:00
2021-10-22 16:04:20 -07:00
2021-10-22 16:04:20 -07:00
2022-04-11 04:11:20 +00:00
2022-04-11 04:11:20 +00:00
2022-03-29 18:21:59 -07:00
2022-04-21 16:46:17 +10:00
2022-04-21 16:46:17 +10:00
2022-03-15 10:32:48 +01:00
2022-01-18 10:18:36 -08:00
2022-04-13 07:02:45 +00:00
2022-01-17 09:16:41 -08:00
2022-04-13 07:02:44 +00:00
2021-12-04 08:58:53 -08:00
2022-03-14 10:23:17 -07:00
2021-01-24 14:43:46 +01:00
2022-04-13 07:02:45 +00:00
2022-04-13 07:02:45 +00:00
2021-08-09 11:13:16 -07:00
2022-04-13 07:02:44 +00:00
2022-03-29 18:22:02 -07:00
2022-04-21 10:36:56 +10:00
2022-04-21 16:45:52 +10:00
2022-03-29 18:22:01 -07:00
2022-04-21 16:45:52 +10:00
2022-04-21 16:45:52 +10:00
2022-04-21 16:45:03 +10:00
2022-04-21 16:45:03 +10:00
2022-04-12 06:49:42 +10:00
2022-04-21 16:46:17 +10:00
2021-10-22 16:04:20 -07:00
2018-06-06 14:17:53 -07:00
2021-04-22 18:29:25 -07:00
2022-03-14 10:23:16 -07:00
2018-05-22 07:19:08 -07:00
2021-02-03 09:18:49 -08:00
2021-02-03 09:18:49 -08:00
2021-08-19 10:07:12 -07:00
2021-12-21 09:49:41 -08:00
2022-03-20 08:59:50 -07:00
2021-10-22 16:04:20 -07:00
2021-08-09 10:52:18 -07:00
2021-08-06 11:05:37 -07:00
2022-03-20 08:59:49 -07:00
2021-10-22 16:04:20 -07:00
2022-04-13 07:02:44 +00:00
2021-08-19 10:07:14 -07:00
2022-03-20 08:59:49 -07:00
2021-10-22 16:04:20 -07:00
2022-04-21 16:46:17 +10:00
2022-04-12 06:49:42 +10:00
2020-10-07 08:40:28 -07:00
2020-10-07 08:40:28 -07:00
2022-04-21 16:46:17 +10:00
2021-06-21 10:05:46 -07:00
2022-04-13 07:02:07 +00:00
2021-01-24 14:43:46 +01:00
2021-02-24 10:16:08 -08:00
2021-02-03 09:18:49 -08:00
2022-01-06 10:43:30 -08:00
2020-08-07 11:50:17 -07:00
2021-08-18 18:46:00 -07:00
2022-04-21 16:46:17 +10:00
2022-03-29 18:22:01 -07:00
2021-08-19 10:07:14 -07:00
2021-10-22 16:04:20 -07:00
2022-03-20 08:59:49 -07:00
2022-04-21 16:45:52 +10:00
2022-04-21 16:45:03 +10:00
2021-03-25 16:47:50 -07:00
2018-08-12 08:37:31 -07:00