HomeFreeBSD

OpenZFS 9338 - moved dnode has incorrect dn_next_type

Description

OpenZFS 9338 - moved dnode has incorrect dn_next_type

Authored by: Matthew Ahrens <mahrens@delphix.com>
Reviewed by: Prashanth Sreenivasa <pks@delphix.com>
Reviewed by: Serapheim Dimitropoulos <serapheim.dimitro@delphix.com>
Reviewed by: Dan Kimmel <dan.kimmel@delphix.com>
Reviewed by: Giuseppe Di Natale <guss80@gmail.com>
Reviewed by: George Melikov <mail@gmelikov.ru>
Approved by: Robert Mustacchi <rm@joyent.com>
Ported-by: Brian Behlendorf <behlendorf1@llnl.gov>

While investigating a different problem, I noticed that moved dnodes
(those processed by dnode_move_impl() via kmem_move()) have an incorrect
dn_next_type. This could cause the on-disk dn_type to be changed to an
invalid value. The fix to copy the dn_next_type in dnode_move_impl().

Porting notes:

  • For the moment this potential issue cannot occur on Linux since the SPL does not provide the kmem_move() functionality.

OpenZFS-issue: https://illumos.org/issues/9338
OpenZFS-commit: https://github.com/openzfs/openzfs/commit/0717e6f13
Closes #7715

Details

Provenance
mahrensAuthored on Jun 23 2017, 7:32 PM
Brian Behlendorf <behlendorf1@llnl.gov>Committed on Jul 25 2018, 12:10 AM
Parents
rGb7ddeaef3dee: Refactor arc_hdr_realloc_crypt()
Branches
Unknown
Tags
Unknown