[lxc-devel] [lxd/master] Fix forkmount

stgraber on Github lxc-bot at linuxcontainers.org
Fri Aug 2 15:03:53 UTC 2019


A non-text attachment was scrubbed...
Name: not available
Type: text/x-mailbox
Size: 301 bytes
Desc: not available
URL: <http://lists.linuxcontainers.org/pipermail/lxc-devel/attachments/20190802/a19d3da9/attachment.bin>
-------------- next part --------------
From dca30cc980b30ddb7cac06151478e577edac2ab8 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?St=C3=A9phane=20Graber?= <stgraber at ubuntu.com>
Date: Fri, 2 Aug 2019 10:34:13 -0400
Subject: [PATCH 1/3] lxd/forkmount: Error on invalid calls
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Signed-off-by: Stéphane Graber <stgraber at ubuntu.com>
---
 lxd/main_forkmount.go | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/lxd/main_forkmount.go b/lxd/main_forkmount.go
index c42bfa1f2d..d4e459faf5 100644
--- a/lxd/main_forkmount.go
+++ b/lxd/main_forkmount.go
@@ -277,6 +277,9 @@ void do_lxc_forkmount()
 		_exit(1);
 
 	_exit(0);
+#else
+	fprintf(stderr, "error: Called lxc_forkmount when missing LXC support\n");
+	_exit(1);
 #endif
 }
 
@@ -308,6 +311,9 @@ void do_lxc_forkumount()
 	lxc_container_put(c);
 	if (ret < 0)
 		_exit(1);
+#else
+	fprintf(stderr, "error: Called lxc_forkumount when missing LXC support\n");
+	_exit(1);
 #endif
 }
 

From d9d76fc93affd542f868a2c33a268e14ac65f32c Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?St=C3=A9phane=20Graber?= <stgraber at ubuntu.com>
Date: Fri, 2 Aug 2019 10:43:36 -0400
Subject: [PATCH 2/3] lxd/forkmount: Properly exit on success
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Signed-off-by: Stéphane Graber <stgraber at ubuntu.com>
---
 lxd/main_forkmount.go | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/lxd/main_forkmount.go b/lxd/main_forkmount.go
index d4e459faf5..07e438f7d4 100644
--- a/lxd/main_forkmount.go
+++ b/lxd/main_forkmount.go
@@ -311,6 +311,8 @@ void do_lxc_forkumount()
 	lxc_container_put(c);
 	if (ret < 0)
 		_exit(1);
+
+	_exit(0);
 #else
 	fprintf(stderr, "error: Called lxc_forkumount when missing LXC support\n");
 	_exit(1);

From 9919dea418f272e56c050aed00dcea7acf6b7335 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?St=C3=A9phane=20Graber?= <stgraber at ubuntu.com>
Date: Fri, 2 Aug 2019 11:01:03 -0400
Subject: [PATCH 3/3] lxc/forkmount: Fix cobra parsing
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Signed-off-by: Stéphane Graber <stgraber at ubuntu.com>
---
 lxd/main_forkmount.go | 32 ++++++++++++++++++++++----------
 1 file changed, 22 insertions(+), 10 deletions(-)

diff --git a/lxd/main_forkmount.go b/lxd/main_forkmount.go
index 07e438f7d4..c861a725ca 100644
--- a/lxd/main_forkmount.go
+++ b/lxd/main_forkmount.go
@@ -387,18 +387,30 @@ func (c *cmdForkmount) Command() *cobra.Command {
 	cmd.Hidden = true
 
 	// mount
-	cmdMount := &cobra.Command{}
-	cmdMount.Use = "mount <PID> <source> <destination>"
-	cmdMount.Args = cobra.ExactArgs(3)
-	cmdMount.RunE = c.Run
-	cmd.AddCommand(cmdMount)
+	cmdLXCMount := &cobra.Command{}
+	cmdLXCMount.Use = "lxc-mount <name> <lxcpath> <configpath> <source> <destination> <fstype> <flags>"
+	cmdLXCMount.Args = cobra.ExactArgs(7)
+	cmdLXCMount.RunE = c.Run
+	cmd.AddCommand(cmdLXCMount)
+
+	cmdLXDMount := &cobra.Command{}
+	cmdLXDMount.Use = "lxd-mount <PID> <source> <destination> <shiftfs>"
+	cmdLXDMount.Args = cobra.ExactArgs(4)
+	cmdLXDMount.RunE = c.Run
+	cmd.AddCommand(cmdLXDMount)
 
 	// umount
-	cmdUmount := &cobra.Command{}
-	cmdUmount.Use = "umount <PID> <path>"
-	cmdUmount.Args = cobra.ExactArgs(2)
-	cmdUmount.RunE = c.Run
-	cmd.AddCommand(cmdUmount)
+	cmdLXCUmount := &cobra.Command{}
+	cmdLXCUmount.Use = "lxc-umount <name> <lxcpath> <configpath> <path>"
+	cmdLXCUmount.Args = cobra.ExactArgs(4)
+	cmdLXCUmount.RunE = c.Run
+	cmd.AddCommand(cmdLXCUmount)
+
+	cmdLXDUmount := &cobra.Command{}
+	cmdLXDUmount.Use = "lxd-umount <PID> <path>"
+	cmdLXDUmount.Args = cobra.ExactArgs(2)
+	cmdLXDUmount.RunE = c.Run
+	cmd.AddCommand(cmdLXDUmount)
 
 	return cmd
 }


More information about the lxc-devel mailing list