K 10 svn:author V 7 asomers K 8 svn:date V 27 2014-05-23T23:13:34.813856Z K 7 svn:log V 1781 MFP4 zfsd-related changes Convert libdevctl to use devd's new SEQPACKET socket. lib/libdevctl/consumer.cc lib/libdevctl/event_buffer.cc lib/libdevctl/event_buffer.h lib/libdevctl/reader.cc lib/libdevctl/reader.h Read from the new /var/run/devd.seqpacket.pipe instead of /var/run/devd.pipe. Since it preserves record boundaries, we can eliminate all the repacketization code in EventBuffer::ExtractEvent as well as much supporting code from the Reader class. lib/libdevctl/consumer.cc Make the pipe nonblocking. Previously, we avoided blocking by using the FIONREAD ioctl, but this is simpler. cddl/sbin/zfsd/case_file.cc cddl/sbin/zfsd/tests/zfsd_unittest.cc cddl/sbin/zfsd/vdev.cc cddl/sbin/zfsd/zfsd.cc cddl/sbin/zfsd/zfsd.h cddl/sbin/zfsd/zfsd_event.cc Update zfsd according to the libdevctl changes. The only nontrivial change is to CaseFile::DeSerialize, which elimintes the use of IStreamReader. cddl/sbin/zfsd/case_file.cc For an unknown reason, sometimes the std::ios::failbit will get set on caseStream. Instead of checking for !eof(), check for good(). That method checks the eofbit, errorbit, and failbit. livdevctl cleanup (from gibbs) lib/libdevctl/event.cc: lib/libdevctl/event.h: Remove the event class's name from its Builder method. It's perfectly clear that DevfsEvent::Builder() is the DevfsEvent class's Builder function. cddl/sbin/zfsd/zfsd.cc: cddl/sbin/zfsd/zfsd_event.cc: cddl/sbin/zfsd/zfsd_event.h: Conform to new libdevct Builder naming convention. Fix autoreplace by physical path when a hotspare is present cddl/sbin/zfsd/case_file.cc Fix logic error in CaseFile::Replace regarding whether the replacement device is a spare or not. Reviewed by: gibbs Sponsored by: Spectra Logic END