Rob Norris
a3ea8c8ee6
dbuf_sync_leaf: check DB_READ in state assertions
...
Block cloning introduced a new state transition from DB_NOFILL to
DB_READ. This occurs when a block is cloned and then read on the
current txg.
In this case, the clone will move the dbuf to DB_NOFILL, and then the
read will be issued for the overidden block pointer. If that read is
still outstanding when it comes time to write, the dbuf will be in
DB_READ, which is not handled by the checks in dbuf_sync_leaf, thus
tripping the assertions.
This updates those checks to allow DB_READ as a valid state iff the
dirty record is for a BRT write and there is a override block pointer.
This is a safe situation because the block already exists, so there's
nothing that could change from underneath the read.
Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov >
Reviewed-by: Kay Pedersen <mail@mkwg.de >
Signed-off-by: Rob Norris <rob.norris@klarasystems.com >
Original-patch-by: Kay Pedersen <mail@mkwg.de >
Sponsored-By: OpenDrives Inc.
Sponsored-By: Klara Inc.
Closes #15050
2023-07-26 08:46:58 -07:00
..
2023-05-05 09:17:55 -07:00
2022-03-15 15:13:42 -07:00
2023-06-15 10:49:03 -07:00
2023-05-01 17:21:27 -07:00
2022-03-15 15:13:42 -07:00
2023-06-09 10:12:52 -07:00
2023-07-21 16:35:12 -07:00
2022-07-11 14:16:13 -07:00
2023-01-10 13:39:22 -08:00
2023-07-26 08:46:58 -07:00
2023-05-26 10:03:12 -07:00
2023-05-25 13:51:53 -07:00
2022-09-22 12:59:41 -07:00
2023-07-26 08:46:58 -07:00
2023-06-30 09:42:02 -07:00
2023-06-30 09:01:58 -07:00
2022-07-11 14:16:13 -07:00
2023-02-16 09:23:39 -08:00
2023-06-15 10:49:03 -07:00
2023-07-20 08:58:29 -07:00
2023-03-08 13:51:46 -08:00
2023-06-05 11:54:42 -07:00
2023-03-24 10:20:07 -07:00
2023-06-09 10:12:52 -07:00
2023-07-21 16:35:12 -07:00
2023-07-21 16:35:12 -07:00
2023-01-23 13:12:37 -08:00
2023-07-20 08:58:29 -07:00
2023-03-14 15:25:50 -07:00
2023-03-14 15:25:50 -07:00
2023-06-09 10:12:52 -07:00
2023-07-20 08:58:29 -07:00
2022-07-11 14:16:13 -07:00
2023-03-14 15:25:50 -07:00
2023-06-09 10:12:52 -07:00
2023-02-23 18:14:52 -07:00
2023-03-14 15:25:50 -07:00
2023-07-21 16:35:12 -07:00
2022-07-11 14:16:13 -07:00
2023-03-14 15:25:50 -07:00
2023-03-14 15:59:58 -07:00
2023-06-09 10:12:52 -07:00
2022-07-11 14:16:13 -07: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-07-11 14:16:13 -07:00
2023-07-21 16:35:12 -07:00
2023-04-19 13:22:59 -07:00
2022-09-27 16:42:41 -07:00
2019-06-19 09:48:12 -07:00
2022-07-11 14:16:13 -07:00
2023-05-26 10:03:12 -07:00
2023-06-14 08:02:27 -07:00
2022-07-11 14:16:13 -07:00
2023-03-08 13:51:46 -08:00
2023-03-02 13:52:21 -08:00
2022-03-15 15:13:42 -07:00
2022-10-13 10:03:29 -07:00
2023-03-14 15:25:50 -07:00
2023-05-18 11:59:42 -07:00
2023-03-14 15:25:50 -07:00
2022-11-03 09:58:14 -07:00
2023-07-21 16:35:12 -07:00
2022-09-27 16:42:41 -07:00
2023-06-09 10:12:52 -07:00
2022-07-11 14:16:13 -07:00
2022-07-11 14:16:13 -07:00
2018-06-06 09:35:59 -07:00
2018-06-06 09:35:59 -07:00
2023-06-27 09:09:48 -07:00
2022-07-11 14:16:13 -07:00
2022-07-11 14:16:13 -07:00
2020-11-13 13:51:51 -08:00
2023-03-14 15:25:50 -07:00
2022-03-15 15:13:42 -07:00
2022-03-15 15:13:42 -07:00
2023-07-21 16:35:12 -07:00
2023-05-18 10:02:20 -07:00
2023-06-14 08:01:17 -07:00
2022-09-08 10:30:53 -07:00
2022-07-11 14:16:13 -07:00
2023-06-27 09:09:48 -07:00
2022-07-11 14:16:13 -07:00
2022-07-11 14:16:13 -07:00
2022-11-30 13:46:26 -08:00
2022-07-11 14:16:13 -07:00
2022-07-11 14:16:13 -07:00
2022-07-11 14:16:13 -07:00
2022-09-06 09:43:21 -07:00
2023-01-13 10:58:58 -08:00
2022-07-11 14:16:13 -07:00
2022-07-11 14:16:13 -07:00
2022-07-11 14:16:13 -07:00
2022-07-11 14:16:13 -07:00
2023-04-06 10:35:02 -07:00
2023-07-21 16:35:12 -07:00
2023-06-30 08:47:13 -07:00
2023-03-14 15:25:50 -07:00
2022-07-11 14:16:13 -07:00
2023-03-28 08:43:41 -07:00
2023-07-21 16:35:12 -07:00
2023-03-08 13:51:46 -08:00
2023-05-26 10:03:12 -07:00
2023-01-12 16:00:37 -08:00
2023-03-14 15:25:50 -07:00
2018-02-08 15:29:24 -08:00
2023-03-14 15:25:50 -07:00
2020-02-14 13:41:42 -08:00
2022-09-02 13:31:19 -07:00
2023-03-14 15:25:50 -07:00
2022-07-11 14:16:13 -07:00
2022-07-11 14:16:13 -07:00
2023-03-02 13:52:21 -08:00
2023-07-21 16:35:12 -07:00
2023-06-09 10:12:52 -07:00
2023-03-02 13:52:21 -08:00
2023-05-18 11:59:42 -07:00
2023-04-17 16:42:09 -07:00
2023-06-09 10:12:52 -07:00
2023-03-10 11:59:53 -08:00
2022-07-11 14:16:13 -07:00
2023-04-10 14:15:36 -07:00
2022-07-11 14:16:13 -07:00
2022-07-11 14:16:13 -07:00
2023-07-26 08:46:58 -07:00
2023-07-25 13:54:02 -07:00
2023-07-21 16:35:12 -07:00
2023-02-27 14:41:02 -08:00
2022-09-27 16:35:29 -07:00
2023-07-21 16:35:12 -07:00
2022-07-11 14:16:13 -07:00
2022-11-29 09:26:03 -08:00
2022-03-23 08:51:00 -07:00
2023-06-09 10:12:52 -07:00