socsvn commit: r325005 - soc2017/kneitinger/libbe-head/sbin/be
kneitinger at FreeBSD.org
kneitinger at FreeBSD.org
Sun Jul 23 07:42:35 UTC 2017
Author: kneitinger
Date: Sun Jul 23 07:42:33 2017
New Revision: 325005
URL: http://svnweb.FreeBSD.org/socsvn/?view=rev&rev=325005
Log:
be(1): remove dependence on libzfs which cannot be included with src. Clean up add/rename/mount/unmount error reporting and structure.
Modified:
soc2017/kneitinger/libbe-head/sbin/be/Makefile
soc2017/kneitinger/libbe-head/sbin/be/be.c
Modified: soc2017/kneitinger/libbe-head/sbin/be/Makefile
==============================================================================
--- soc2017/kneitinger/libbe-head/sbin/be/Makefile Sun Jul 23 06:33:58 2017 (r325004)
+++ soc2017/kneitinger/libbe-head/sbin/be/Makefile Sun Jul 23 07:42:33 2017 (r325005)
@@ -5,21 +5,5 @@
MAN= be.1
LIBADD+= be
-LIBADD+= nvpair
-
-CFLAGS+= -I${SRCTOP}/lib/libbe
-
-CFLAGS+= -I${SRCTOP}/cddl/compat/opensolaris/include
-CFLAGS+= -I${SRCTOP}/cddl/compat/opensolaris/lib/libumem
-CFLAGS+= -I${SRCTOP}/cddl/contrib/opensolaris/lib/libzfs/common
-CFLAGS+= -I${SRCTOP}/cddl/contrib/opensolaris/lib/libzfs_core/common
-CFLAGS+= -I${SRCTOP}/cddl/contrib/opensolaris/lib/libzpool/common
-CFLAGS+= -I${SRCTOP}/cddl/contrib/opensolaris/lib/libnvpair
-CFLAGS+= -I${SRCTOP}/sys/cddl/compat/opensolaris
-CFLAGS+= -I${SRCTOP}/sys/cddl/contrib/opensolaris/uts/common/fs/zfs
-CFLAGS+= -I${SRCTOP}/sys/cddl/contrib/opensolaris/uts/common
-CFLAGS+= -I${SRCTOP}/cddl/contrib/opensolaris/head
-
-CFLAGS+= -DNEED_SOLARIS_BOOLEAN
.include <bsd.prog.mk>
Modified: soc2017/kneitinger/libbe-head/sbin/be/be.c
==============================================================================
--- soc2017/kneitinger/libbe-head/sbin/be/be.c Sun Jul 23 06:33:58 2017 (r325004)
+++ soc2017/kneitinger/libbe-head/sbin/be/be.c Sun Jul 23 07:42:33 2017 (r325005)
@@ -33,8 +33,6 @@
#include <sysexits.h>
#include <unistd.h>
-#include <libnvpair.h>
-
#include <be.h>
static int be_cmd_activate(int argc, char *argv[]);
@@ -189,8 +187,17 @@
}
switch (err) {
+ case BE_ERR_SUCCESS:
+ break;
default:
- fprintf(stderr, "TODO FILL IN");
+ if (existing == NULL) {
+ fprintf(stderr,
+ "failed to create bootenv %s\n", bootenv);
+ } else {
+ fprintf(stderr,
+ "failed to create bootenv %s from snapshot %s\n",
+ bootenv, existing);
+ }
}
return (err);
@@ -227,6 +234,7 @@
}
/* Determine bootenv name, and snapshot if provided */
+ /* TODO: Handle be snapshot destroy */
char *buffer = malloc((strlen(argv[0])+1) * sizeof(char));
strcpy(buffer, argv[0]);
char *delimiter;
@@ -314,14 +322,10 @@
static int
be_cmd_mount(int argc, char *argv[])
{
- int err, flags;
+ int err;
char *bootenv;
char *mountpoint;
- // TODO: force flag?
-
- flags = 0;
-
if (argc < 2) {
fprintf(stderr, "be mount: missing argument(s)\n");
return (usage(false));
@@ -333,17 +337,22 @@
}
bootenv = argv[1];
- mountpoint = argc == 3 ? argv[2] : NULL;
+ mountpoint = ((argc == 3) ? argv[2] : NULL);
- err = be_mount(be, bootenv, mountpoint, flags);
+ err = be_mount(be, bootenv, mountpoint, 0);
switch (err) {
- BE_ERR_SUCCESS:
- return (0);
+ case BE_ERR_SUCCESS:
+ break;
+ default:
+ fprintf(stderr,
+ (argc == 3) ? "failed to mount bootenv %s at %s\n" :
+ "failed to mount bootenv %s at temporary path %s\n",
+ bootenv, mountpoint);
}
- return (0);
+ return (err);
}
@@ -370,8 +379,11 @@
err = be_rename(be, src, dest);
switch (err) {
- BE_ERR_SUCCESS:
- return (0);
+ case BE_ERR_SUCCESS:
+ break;
+ default:
+ fprintf(stderr, "failed to rename bootenv %s to %s\n",
+ src, dest);
}
return (0);
@@ -452,11 +464,13 @@
err = be_unmount(be, bootenv, flags);
switch (err) {
+ case BE_ERR_SUCCESS:
+ break;
default:
- fprintf(stderr, "TODO FILL ME IN");
+ fprintf(stderr, "failed to unmount bootenv %s\n", bootenv);
}
- return (0);
+ return (err);
}
More information about the svn-soc-all
mailing list