Files
mirror_zfs/module/zfs
George Amanakis 80a650b7bb Avoid panic with recordsize > 128k, raw sending and no large_blocks
The current codebase does not support raw sending buffers with block
size > 128kB when large_blocks is not active. This can happen in the
codepath dsl_dataset_sync()->dmu_objset_sync()->zio_nowait() which
calls back dmu_objset_write_done()->dsl_dataset_block_born(). If
dsl_dataset_sync() completes its run before dsl_dataset_block_born() is
called, we will end up not activating some of the necessary flags, while
having blocks based on those flags written in the filesystem. A
subsequent send will then panic.

Fix this by directly deciding in dmu_objset_sync() whether these flags
need to be activated later by dsl_dataset_sync(). Instead of panicking
due to a NULL pointer dereference in dmu_dump_write() in case of a send,
print out an error message. Also during scrub verify there are no
contradicting filesystem flags.

Reviewed-by: Paul Dagnelie <pcd@delphix.com>
Signed-off-by: George Amanakis <gamanakis@gmail.com>
Closes #12275
Closes #12438
2022-06-27 14:17:25 -07:00
..
2022-02-15 08:58:59 -08:00
2022-03-15 15:13:42 -07:00
2022-03-15 15:13:42 -07:00
2019-07-26 10:54:14 -07:00
2022-03-15 15:13:42 -07:00
2019-06-19 09:48:12 -07:00
2022-06-24 13:55:58 -07:00
2022-03-15 15:13:42 -07:00
2020-11-02 11:51:12 -08:00
2022-03-15 15:13:42 -07:00
2022-05-24 09:46:35 -07:00
2022-04-26 10:44:21 -07:00
2022-03-15 15:13:42 -07:00
2022-03-15 15:13:42 -07:00
2022-03-15 15:13:42 -07:00
2022-03-15 15:13:42 -07:00
2022-05-24 09:46:35 -07:00
2022-03-15 15:13:42 -07:00
2022-01-14 15:37:55 -08:00
2022-03-15 15:13:42 -07:00
2022-01-07 10:36:49 -08:00
2022-01-12 16:14:36 -08:00
2022-05-04 11:33:42 -07:00
2022-01-26 11:38:52 -08:00
2019-06-19 09:48:12 -07:00
2020-07-29 16:35:33 -07:00
2022-03-15 15:13:42 -07:00
2020-06-18 12:21:25 -07:00
2022-01-26 11:38:52 -08:00
2022-02-18 09:34:03 -08:00
2022-05-18 10:25:33 -07:00
2022-03-15 15:13:42 -07:00
2019-10-09 10:36:03 -07:00
2022-01-26 11:38:52 -08:00
2022-03-15 15:13:42 -07:00
2022-03-15 15:13:42 -07:00
2022-01-26 11:38:52 -08:00
2022-06-23 10:36:28 -07:00
2020-11-13 13:51:51 -08:00
2022-03-15 15:13:42 -07:00
2022-03-15 15:13:42 -07:00
2022-03-15 15:13:42 -07:00
2022-01-26 11:38:52 -08:00
2022-02-18 09:34:03 -08:00
2022-03-15 15:13:42 -07:00
2022-03-15 15:13:42 -07:00
2022-03-15 15:13:42 -07:00
2022-03-15 15:13:42 -07:00
2022-05-31 15:37:46 -07:00
2020-06-18 12:21:25 -07:00
2020-06-18 12:21:18 -07:00