From owner-svn-soc-all@freebsd.org Sun Jul 23 07:42:34 2017 Return-Path: Delivered-To: svn-soc-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id D8E04C7F0DD for ; Sun, 23 Jul 2017 07:42:34 +0000 (UTC) (envelope-from kneitinger@FreeBSD.org) Received: from socsvn.freebsd.org (socsvn.freebsd.org [IPv6:2001:1900:2254:206a::50:2]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id C296777D38 for ; Sun, 23 Jul 2017 07:42:34 +0000 (UTC) (envelope-from kneitinger@FreeBSD.org) Received: from socsvn.freebsd.org ([127.0.1.124]) by socsvn.freebsd.org (8.15.2/8.15.2) with ESMTP id v6N7gYZd073294 for ; Sun, 23 Jul 2017 07:42:34 GMT (envelope-from kneitinger@FreeBSD.org) Received: (from www@localhost) by socsvn.freebsd.org (8.15.2/8.15.2/Submit) id v6N7gXdN073291 for svn-soc-all@FreeBSD.org; Sun, 23 Jul 2017 07:42:33 GMT (envelope-from kneitinger@FreeBSD.org) Date: Sun, 23 Jul 2017 07:42:33 GMT Message-Id: <201707230742.v6N7gXdN073291@socsvn.freebsd.org> X-Authentication-Warning: socsvn.freebsd.org: www set sender to kneitinger@FreeBSD.org using -f From: kneitinger@FreeBSD.org To: svn-soc-all@FreeBSD.org Subject: socsvn commit: r325005 - soc2017/kneitinger/libbe-head/sbin/be MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-soc-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: SVN commit messages for the entire Summer of Code repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 23 Jul 2017 07:42:35 -0000 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 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 #include -#include - #include 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); }