[lxc-devel] [lxc/master] Handle alternative loop device location on Android

kubiko on Github lxc-bot at linuxcontainers.org
Fri Jan 18 08:16:48 UTC 2019


A non-text attachment was scrubbed...
Name: not available
Type: text/x-mailbox
Size: 414 bytes
Desc: not available
URL: <http://lists.linuxcontainers.org/pipermail/lxc-devel/attachments/20190118/c6fc73a8/attachment.bin>
-------------- next part --------------
From 51e3e94253b7f1cb7eecca77408589bb5b1a2569 Mon Sep 17 00:00:00 2001
From: ondra <ondrak at localhost.localdomain>
Date: Fri, 11 Jan 2019 14:45:38 +0000
Subject: [PATCH] Handle alternative loop device location on Android

Signed-off-by: ondra <ondrak at localhost.localdomain>
---
 src/lxc/utils.c | 12 ++++++++++--
 1 file changed, 10 insertions(+), 2 deletions(-)

diff --git a/src/lxc/utils.c b/src/lxc/utils.c
index ef71b6df7..06e05f355 100644
--- a/src/lxc/utils.c
+++ b/src/lxc/utils.c
@@ -1485,8 +1485,16 @@ static int lxc_get_unused_loop_dev(char *name_loop)
 		goto on_error;
 
 	fd_tmp = open(name_loop, O_RDWR | O_CLOEXEC);
-	if (fd_tmp < 0)
-		SYSERROR("Failed to open loop \"%s\"", name_loop);
+	if (fd_tmp < 0) {
+		// on Android loop devices are moved under /dev/block, give it a shot
+		TRACE("Trying Android loop layout");
+		ret = snprintf(name_loop, LO_NAME_SIZE, "/dev/block/loop%d", loop_nr);
+                if (ret < 0 || ret >= LO_NAME_SIZE)
+                        goto on_error;
+		fd_tmp = open(name_loop, O_RDWR | O_CLOEXEC);
+		if (fd_tmp < 0)
+			SYSERROR("Failed to open loop \"%s\"", name_loop);
+	}
 
 on_error:
 	close(fd_ctl);


More information about the lxc-devel mailing list