Page MenuHomeFreeBSD

zfsd should be able to online an L2ARC that disappears and returns
ClosedPublic

Authored by asomers on Oct 25 2017, 4:07 PM.
Tags
None
Referenced Files
Unknown Object (File)
Mar 22 2024, 11:03 PM
Unknown Object (File)
Mar 22 2024, 11:03 PM
Unknown Object (File)
Mar 22 2024, 11:03 PM
Unknown Object (File)
Mar 8 2024, 8:27 AM
Unknown Object (File)
Feb 4 2024, 9:52 AM
Unknown Object (File)
Jan 28 2024, 6:38 PM
Unknown Object (File)
Jan 15 2024, 1:03 AM
Unknown Object (File)
Jan 11 2024, 9:47 PM
Subscribers

Details

Summary

zfsd should be able to online an L2ARC that disappears and returns

Previously, this didn't work because L2ARC devices' labels don't contain pool
GUIDs. Modify zfsd so that the pool GUID won't be required:

lib/libdevdctl/guid.h
Change INVALID_GUID from a uint64_t constant to a function that
returns an invalid Guid object. Remove the void constructor.
Nothing uses it, and it violates RAII.

cddl/usr.sbin/zfsd/case_file.h
cddl/usr.sbin/zfsd/case_file.cc
Allow CaseFile::Find to match a CaseFile based on Vdev GUID alone.
In CaseFile::ReEvaluate, attempt to online devices even if the newly
arrived device has no pool GUID.

cddl/usr.sbin/zfsd/vdev_iterator.cc
Iterate through a pool's cache devices as well as its regular
devices.

Reported by: avg

Diff Detail

Repository
rS FreeBSD src repository - subversion
Lint
Lint Not Applicable
Unit
Tests Not Applicable

Event Timeline

This revision is now accepted and ready to land.Oct 26 2017, 3:09 PM
This revision was automatically updated to reflect the committed changes.