[buildd-tools-devel] [PATCH 02/12] [chroot_loopback] Reuse loopback device

Jan-Marek Glogowski glogow at fbihome.de
Fri Jul 31 14:21:39 UTC 2009


Checks if any loopback device points to the file and reuses
it.
---
 etc/setup.d/10mount |   12 +++++++++++-
 1 files changed, 11 insertions(+), 1 deletions(-)

diff --git a/etc/setup.d/10mount b/etc/setup.d/10mount
index 139c4eb..190dd58 100755
--- a/etc/setup.d/10mount
+++ b/etc/setup.d/10mount
@@ -111,7 +111,17 @@ if [ "$CHROOT_TYPE" = "directory" ] || [ "$CHROOT_TYPE" = "file" ] || [ "$CHROOT
 	CHROOT_MOUNT_OPTIONS="--bind"
 	CHROOT_MOUNT_DEVICE="$UNPACK_LOCATION"
     elif [ "$CHROOT_TYPE" = "loopback" ]; then
-	CHROOT_MOUNT_OPTIONS="$CHROOT_MOUNT_OPTIONS -o loop"
+	LOOP_DEVICE=$(losetup -j ${CHROOT_FILE} | sed -e 's/:.*$//')
+	if [ -z "${LOOP_DEVICE}" ]; then
+	    CHROOT_MOUNT_DEVICE="${CHROOT_FILE}"
+	    CHROOT_MOUNT_OPTIONS="${CHROOT_MOUNT_OPTIONS} -o loop"
+	else
+	    CHROOT_MOUNT_DEVICE="${LOOP_DEVICE}"
+	    CHROOT_MOUNT_OPTIONS=""
+	fi
+
+    elif [ "$CHROOT_TYPE" = "block-device" ]; then
+	CHROOT_MOUNT_DEVICE="$CHROOT_DEVICE"
     fi
 
     if [ $1 = "setup-start" ] || [ $1 = "setup-recover" ]; then
-- 
1.6.3.2




More information about the Buildd-tools-devel mailing list