Page MenuHomeFreeBSD

loader: zfs toplevel vdev must have spa set.
ClosedPublic

Authored by tsoome on Nov 9 2016, 11:13 PM.
Tags
None
Referenced Files
F106615120: D8487.diff
Thu, Jan 2, 6:57 PM
Unknown Object (File)
Thu, Dec 5, 6:01 AM
Unknown Object (File)
Wed, Dec 4, 9:17 AM
Unknown Object (File)
Nov 24 2024, 11:26 PM
Unknown Object (File)
Nov 24 2024, 4:53 AM
Unknown Object (File)
Nov 23 2024, 8:50 AM
Unknown Object (File)
Nov 20 2024, 7:22 AM
Unknown Object (File)
Nov 19 2024, 4:07 AM

Details

Summary

With salted checksums the salt setup is using spa to store runtime salt,
and for the IO, the spa is often fetched from vdev structure.

Unfortunately the vdev->spa is set only for leaf devices, which leaves
mirror and raidz pool toplevel devices with vdev->spa unset, and this
does break salt based checksums and will cause system reset while booting
from such pool.

Test Plan

Tested with 2+1 raidz and zpool create -O checksum=skein.

Diff Detail

Repository
rS FreeBSD src repository - subversion
Lint
Lint Passed
Unit
No Test Coverage
Build Status
Buildable 5908
Build 6194: arc lint + arc unit

Event Timeline

tsoome retitled this revision from to loader: zfs toplevel vdev must have spa set..
tsoome updated this object.
tsoome edited the test plan for this revision. (Show Details)
tsoome added reviewers: allanjude, imp.

With this patch applied on top of svn head r308477, I built a custom memstick image, wiped the harddrives and reran my build guide steps including creation of the RAIDZ zpool with "-O checksum=skein" option and can confirm the system boots, so although I did not test without this patch applied, I think it's safe to say the patch fixed things given that there have been no other relevant changes in sys/boot between the revision I tested with previously (r307747) and r308477.

allanjude edited edge metadata.

approved for commit

Remember to set the MFC field

This revision is now accepted and ready to land.Nov 17 2016, 6:58 PM
imp edited edge metadata.
This revision was automatically updated to reflect the committed changes.