Files
mirror_zfs/module/zfs
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
2015-01-16 14:41:26 -08:00
2017-08-14 10:36:48 -07:00
2017-06-26 14:36:49 -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-05-29 16:00:33 -07:00
2018-10-16 11:15:04 -07:00
2018-10-16 11:15:04 -07:00
2018-05-29 16:00:33 -07:00
2018-10-16 11:15:04 -07:00
2018-05-29 16:00:33 -07:00
2018-05-29 16:00:33 -07:00
2017-10-11 16:54:48 -04:00
2015-01-16 14:41:26 -08: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-15 10:53:58 -07:00
2018-10-01 10:42:05 -07:00
2018-03-15 10:53:58 -07:00
2010-08-31 13:41:58 -07:00
2018-05-29 16:00:33 -07:00
2018-10-24 14:37:02 -07:00
2018-05-29 16:00:33 -07:00
2018-11-11 18:09:00 -08:00
2016-11-29 14:34:33 -08:00
2018-05-29 16:00:33 -07:00
2018-10-17 10:30:08 -07: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-05-29 16:00:33 -07:00
2018-02-13 14:54:54 -08:00
2018-09-26 09:50:58 -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
2018-05-29 16:00:33 -07:00
2018-02-09 10:08:05 -08:00
2018-08-27 10:04:21 -07:00
2018-05-29 16:00:33 -07:00