freebsd-dev/etc/mtree
Sepherosa Ziehau 168fce73b5 hyperv/vss: Add driver and tools for VSS
VSS stands for "Volume Shadow Copy Service".  Unlike virtual machine
snapshot, it only takes snapshot for the virtual disks, so both
filesystem and applications have to aware of it, and cooperate the
whole VSS process.

This driver exposes two device files to the userland:

    /dev/hv_fsvss_dev

    Normally userland programs should _not_ mess with this device file.
    It is currently used by the hv_vss_daemon(8), which freezes and
    thaws the filesystem.  NOTE: currently only UFS is supported, if
    the system mounts _any_ other filesystems, the hv_vss_daemon(8)
    will veto the VSS process.

    If hv_vss_daemon(8) was disabled, then this device file must be
    opened, and proper ioctls must be issued to keep the VSS working.

    /dev/hv_appvss_dev

    Userland application can opened this device file to receive the
    VSS freeze notification, hold the VSS for a while (mainly to flush
    application data to filesystem), release the VSS process, and
    receive the VSS thaw notification i.e. applications can run again.

    The VSS will still work, even if this device file is not opened.
    However, only filesystem consistency is promised, if this device
    file is not opened or is not operated properly.

hv_vss_daemon(8) is started by devd(8) by default.  It can be disabled
by editting /etc/devd/hyperv.conf.

Submitted by:	Hongjiang Zhang <honzhan microsoft com>
Reviewed by:	kib, mckusick
MFC after:	3 weeks
Sponsored by:	Microsoft
Differential Revision:	https://reviews.freebsd.org/D8224
2016-11-15 02:36:12 +00:00
..
BSD.debug.dist Add a debug dir for /boot/modules. 2016-05-03 18:26:07 +00:00
BSD.groff.dist Flesh out WITHOUT_GROFF support to DTRT. 2011-02-22 08:13:49 +00:00
BSD.include.dist hyperv/vss: Add driver and tools for VSS 2016-11-15 02:36:12 +00:00
BSD.lib32.dist Handle lib32 files during delete-old* when MK_LIB32=no. 2015-10-20 20:35:34 +00:00
BSD.libsoft.dist Add libsoft to the tree, just like lib32. 2016-01-03 04:32:05 +00:00
BSD.release.dist
BSD.root.dist syslogd(8): add an 'include' keyword 2016-11-01 01:41:24 +00:00
BSD.sendmail.dist
BSD.tests.dist Integrate contrib/netbsd-tests/fs/tmpfs into the FreeBSD test suite 2016-10-21 05:24:08 +00:00
BSD.usr.dist Remove GNU rcs from base. 2016-10-15 12:07:37 +00:00
BSD.var.dist zfsd(8), the ZFS fault management daemon 2016-05-28 17:43:40 +00:00
Makefile Add libsoft to the tree, just like lib32. 2016-01-03 04:32:05 +00:00
README Fix a small typo nit 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.