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)
Fri, Sep 26, 7:46 PM
Unknown Object (File)
Mon, Sep 15, 1:26 AM
Unknown Object (File)
Fri, Sep 12, 11:16 PM
Unknown Object (File)
Wed, Sep 10, 1:29 PM
Unknown Object (File)
Aug 31 2025, 3:33 AM
Unknown Object (File)
Aug 4 2025, 5:56 AM
Unknown Object (File)
Aug 1 2025, 12:29 PM
Unknown Object (File)
Jul 21 2025, 3:33 AM
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.