Brian Behlendorf
78e2139467
Fix dnode_hold() freeing dnode behavior
...
Commit 4c5b89f59 refactored dnode_hold() and in the process
accidentally introduced a slight change in behavior which was
not intended. The required behavior is that once the ZPL,
or other consumer, declares its intent to free a dnode then
dnode_hold() should immediately start failing. This updated
code wouldn't return the failure until after it was freed.
When DNODE_MUST_BE_ALLOCATED is set it must return ENOENT, and
when DNODE_MUST_BE_FREE is set it must return EEXIST;
This issue was uncovered by ztest_remap() which attempted
to remap a freeing object which should have been skipped as
described by the comment in dmu_objset_remap_indirects_impl().
Reviewed-by: George Melikov <mail@gmelikov.ru >
Reviewed-by: Tom Caputi <tcaputi@datto.com >
Reviewed-by: Olaf Faaland <faaland1@llnl.gov >
Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov >
Closes #8172
2018-12-05 09:29:33 -08:00
..
2018-10-01 10:42:05 -07:00
2018-10-19 12:08:03 -07:00
2018-10-19 12:08:03 -07:00
2017-11-04 13:25:13 -07:00
2015-01-16 14:41:26 -08:00
2018-10-31 11:58:17 -05:00
2017-08-14 10:36:48 -07:00
2017-06-26 14:36:49 -07:00
2018-06-06 09:35:59 -07:00
2018-08-20 09:52:37 -07:00
2018-10-01 10:42:05 -07:00
2018-10-01 10:42:05 -07:00
2018-05-29 16:00:33 -07:00
2018-05-29 16:00:33 -07:00
2018-05-01 11:24:20 -07:00
2018-10-16 11:15:04 -07:00
2018-10-16 11:15:04 -07:00
2018-10-09 14:05:13 -07:00
2018-10-16 11:15:04 -07:00
2018-08-15 09:53:44 -07:00
2018-10-01 10:42:05 -07:00
2018-05-29 16:00:33 -07:00
2018-10-11 10:19:33 -07:00
2018-10-16 11:15:04 -07:00
2018-12-05 09:29:33 -08:00
2017-11-04 13:25:13 -07:00
2018-11-07 15:40:24 -08:00
2018-10-16 11:15:04 -07:00
2018-04-14 12:16:17 -07:00
2018-05-29 16:00:33 -07:00
2018-10-16 11:15:04 -07:00
2018-08-03 14:50:51 -07:00
2018-10-04 13:13:28 -07:00
2018-05-29 16:00:33 -07:00
2018-11-28 10:12:08 -08:00
2018-06-26 10:07:42 -07:00
2018-06-26 10:07:42 -07:00
2016-11-29 14:34:27 -08:00
2018-07-30 11:30:03 -07:00
2018-05-29 16:00:33 -07:00
2017-10-11 16:54:48 -04:00
2017-05-19 13:45:46 -07:00
2015-01-16 14:41:26 -08:00
2018-10-09 14:05:13 -07:00
2018-11-05 11:53:49 -08:00
2018-05-29 16:00:33 -07:00
2018-05-29 16:00:33 -07:00
2018-05-29 16:00:33 -07:00
2018-03-07 15:40:42 -08:00
2018-05-01 20:44:24 -07:00
2018-05-01 20:44:24 -07:00
2018-03-15 10:53:58 -07:00
2018-03-29 17:40:34 -07:00
2018-06-26 10:07:42 -07:00
2018-10-09 10:05:48 -07:00
2018-10-01 10:42:05 -07:00
2018-10-01 10:42:05 -07:00
2018-03-15 10:53:58 -07:00
2016-11-29 14:34:27 -08:00
2010-08-31 13:41:58 -07:00
2018-11-28 20:47:09 -08:00
2018-06-21 09:35:26 -07:00
2018-05-29 16:00:33 -07:00
2018-10-08 21:57:02 -07:00
2018-10-24 14:36:21 -07:00
2018-09-26 11:08:12 -07:00
2018-10-19 12:06:21 -07:00
2018-07-25 14:11:35 -07:00
2018-04-14 12:16:17 -07:00
2018-06-06 09:35:59 -07:00
2018-06-06 09:35:59 -07:00
2018-04-14 12:16:17 -07:00
2018-10-24 14:37:02 -07:00
2018-06-26 10:07:42 -07:00
2016-08-31 14:35:34 -07:00
2018-05-29 16:00:33 -07:00
2018-11-28 11:29:57 -08:00
2018-04-14 12:16:17 -07:00
2018-05-29 16:00:33 -07:00
2018-10-12 11:28:26 -07:00
2018-11-07 15:44:56 -08:00
2018-11-11 18:09:00 -08:00
2018-05-29 16:00:33 -07:00
2018-04-14 12:16:17 -07:00
2018-09-26 11:08:12 -07:00
2016-11-29 14:34:33 -08:00
2017-01-22 13:25:40 -08:00
2016-11-29 14:34:33 -08:00
2016-11-29 14:34:33 -08:00
2016-12-15 17:31:33 -08:00
2016-12-12 10:46:26 -08:00
2017-01-22 13:25:40 -08:00
2016-11-29 14:34:33 -08:00
2016-11-29 14:34:33 -08:00
2017-01-22 13:25:40 -08:00
2018-05-29 16:00:33 -07:00
2018-04-14 12:16:17 -07:00
2018-12-04 09:54:05 -08:00
2018-05-08 21:35:27 -07:00
2018-11-09 11:17:24 -08:00
2018-05-31 10:53:11 -07:00
2018-05-31 10:53:49 -07:00
2018-05-31 10:53:11 -07:00
2018-02-20 11:19:42 -08:00
2018-02-08 15:29:24 -08:00
2018-07-12 10:49:27 -07:00
2018-06-26 10:07:42 -07:00
2018-07-10 21:29:23 -07:00
2017-11-04 13:25:13 -07:00
2018-05-29 16:00:33 -07:00
2018-05-29 16:00:33 -07:00
2018-11-08 16:17:12 -08:00
2018-10-24 14:36:50 -07:00
2018-10-17 10:30:08 -07:00
2018-11-08 16:47:24 -08:00
2018-05-29 16:00:33 -07:00
2018-10-17 10:31:38 -07:00
2018-05-29 16:00:33 -07:00
2018-05-29 16:00:33 -07:00
2018-03-04 17:34:51 -08:00
2018-05-29 16:00:33 -07:00
2018-10-11 10:19:33 -07:00
2018-02-13 14:54:54 -08:00
2018-09-26 09:50:58 -07:00
2018-09-24 17:11:25 -07:00
2018-10-17 10:30:08 -07:00
2018-10-17 10:31:38 -07:00
2018-10-24 14:36:40 -07:00
2017-11-04 13:25:13 -07:00
2018-08-29 11:33:33 -07:00
2018-05-29 16:00:33 -07:00
2018-11-05 11:22:33 -08:00
2018-11-08 16:47:24 -08:00
2018-02-09 10:08:05 -08:00
2018-05-02 15:01:24 -07:00
2016-12-12 10:46:26 -08:00
2018-08-27 10:04:21 -07:00
2018-06-19 21:51:18 -07:00
2018-09-24 17:11:25 -07:00
2018-08-02 14:03:56 -07:00
2018-05-29 16:00:33 -07:00
2018-06-26 10:07:42 -07:00
2018-10-11 10:19:33 -07:00