Alan Somers 6c96553e8a 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
2014-05-23 23:13:34 +00:00
..
2014-05-21 20:30:52 +00:00
2014-05-21 20:30:52 +00:00
2014-05-23 23:13:34 +00:00
2014-02-21 10:34:59 +00:00
2011-01-19 20:16:47 +00:00

$FreeBSD$

Note: If you modify these files, please keep hier(7) updated!

These files are used to create empty file hierarchies for building the
system into.  Some notes about working with them are placed here to try
and keep them in good working order.

    a)  The files use 4 space indentation, and other than in the header
        comments, should not contain any tabs.  An indentation of 4 is
        preferable to the standard indentation of 8 because the indentation
        of levels in these files can become quite deep causing the line to
        overflow 80 characters.

        This also matches with the files generated when using the
        mtree -c option, which was implemented that way for the same reason.

    b)  Only directories should be listed here.

    c)  The listing should be kept in filename sorted order.

    d)  Sanity checking changes to these files can be done by following
        this procedure (the sed -e is ugly, but fixing mtree -c to
        not emit the trailing white space would be even uglier):

            mkdir /tmp/MTREE
            mtree -deU -f BSD.X.dist -p /tmp/MTREE
            mtree -cdin -k uname,gname,mode -p /tmp/MTREE | \
		sed -e 's/ *$//' >BSD.X.new
            diff -u BSD.X.dist BSD.X.new
            rm -r /tmp/MTREE

        Note that you will get some differences about /set lines,
        and uname= gname= on certain directory areas, mainly man page
        sections.  This is caused by mtree not having a look ahead
        mechanism for making better selections for these as it
        traverses the hierarchy.

        The BSD.X.new file should NOT be committed, as it will be missing
        the correct header, and important keywords like ``nochange''.
        Simply use the diff for a sanity check to make sure things are in
        the correct order and correctly indented.

    e)  Further sanity checking of the system builds with DESTDIR=/someplace
        are more complicated, but can often catch missing entries in these
        files.  I tend to run this more complete sanity check shortly after
        the target date for a new release is announced.

        If you want details on it bug me about it via email to
        rgrimes@FreeBSD.org.