svn commit: r308664 - in head: contrib/hyperv/tools etc/devd etc/mtree include share/man/man4 sys/conf sys/dev/hyperv/utilities sys/modules/hyperv/utilities usr.sbin/hyperv usr.sbin/hyperv/tools us...

Mark Johnston markj at FreeBSD.org
Wed Nov 16 22:08:59 UTC 2016


On Tue, Nov 15, 2016 at 02:36:12AM +0000, Sepherosa Ziehau wrote:
> Author: sephe
> Date: Tue Nov 15 02:36:12 2016
> New Revision: 308664
> URL: https://svnweb.freebsd.org/changeset/base/308664
> 
> Log:
>   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
> 
> Added:
>   head/contrib/hyperv/tools/hv_vss_daemon.8
>   head/contrib/hyperv/tools/hv_vss_daemon.c
>   head/share/man/man4/hv_vss.4   (contents, props changed)
>   head/sys/dev/hyperv/utilities/hv_snapshot.c   (contents, props changed)
>   head/sys/dev/hyperv/utilities/hv_snapshot.h   (contents, props changed)
>   head/usr.sbin/hyperv/tools/kvp/
>   head/usr.sbin/hyperv/tools/kvp/Makefile
>      - copied, changed from r308663, head/usr.sbin/hyperv/tools/Makefile
>   head/usr.sbin/hyperv/tools/kvp/Makefile.depend
>      - copied unchanged from r308663, head/usr.sbin/hyperv/tools/Makefile.depend
>   head/usr.sbin/hyperv/tools/vss/
>   head/usr.sbin/hyperv/tools/vss/Makefile   (contents, props changed)
>   head/usr.sbin/hyperv/tools/vss/Makefile.depend   (contents, props changed)
> Deleted:
>   head/usr.sbin/hyperv/tools/Makefile
>   head/usr.sbin/hyperv/tools/Makefile.depend
> Modified:
>   head/etc/devd/hyperv.conf
>   head/etc/mtree/BSD.include.dist
>   head/include/Makefile
>   head/share/man/man4/Makefile
>   head/sys/conf/files.amd64
>   head/sys/conf/files.i386
>   head/sys/modules/hyperv/utilities/Makefile
>   head/usr.sbin/hyperv/Makefile

This appears to install hv_kvp_daemon and hv_vss_daemon to / instead of
/usr/sbin, and breaks the -DNO_ROOT build. I think a Makefile.inc is
needed in usr.sbin/hyperv/tools in order to preserve BINDIR from
usr.sbin/Makefile.inc. I fixed the problem in my tree with the diff
below, but am not sure if this is the right way to do it. For some
reason, doing this resulted in unused var warnings compiling
hv_vss_daemon.c.

diff --git a/contrib/hyperv/tools/hv_vss_daemon.c b/contrib/hyperv/tools/hv_vss_daemon.c
index 8b58bc9..a1ba98d 100644
--- a/contrib/hyperv/tools/hv_vss_daemon.c
+++ b/contrib/hyperv/tools/hv_vss_daemon.c
@@ -158,10 +158,9 @@ main(int argc, char* argv[])
 
 	struct pollfd hv_vss_poll_fd[1];
 	uint32_t op;
-	int ch, r, len, error;
+	int ch, r, error;
 	int hv_vss_dev_fd;
 
-	int freeze_thaw = UNDEF_FREEZE_THAW;
 	while ((ch = getopt(argc, argv, "dnh")) != -1) {
 		switch (ch) {
 		case 'n':
diff --git a/usr.sbin/hyperv/Makefile.inc b/usr.sbin/hyperv/tools/Makefile.inc
similarity index 60%
rename from usr.sbin/hyperv/Makefile.inc
rename to usr.sbin/hyperv/tools/Makefile.inc
index edb0129..7e09f32 100644
--- a/usr.sbin/hyperv/Makefile.inc
+++ b/usr.sbin/hyperv/tools/Makefile.inc
@@ -1,4 +1,4 @@
 # $FreeBSD$
 
 CFLAGS.gcc+= -Wno-uninitialized
-.include "../Makefile.inc"
+.include "../../Makefile.inc"


More information about the svn-src-head mailing list