Index: xen-unstable/tools/examples/block =================================================================== --- xen-unstable.orig/tools/examples/block +++ xen-unstable/tools/examples/block @@ -259,10 +259,13 @@ case "$command" in ;; file) + lo_flags="" + [ "${mode/S}" = "$mode" ] || lo_flags="-y" # Canonicalise the file, for sharing check comparison, and the mode # for ease of use here. file=$(readlink -f "$p") || fatal "$p does not exist." mode=$(canonicalise_mode "$mode") + [ "$mode" = "r" ] && lo_flags="$lo_flags -r" claim_lock "block" @@ -370,11 +373,11 @@ mount it read-write in a guest domain." fatal 'Failed to find an unused loop device' fi - losetup "$loopdev" "$file" && losetup_failure="" && break + losetup $lo_flags "$loopdev" "$file" && losetup_failure="" && break done if [ "$losetup_failure" ] then - fatal 'losetup $loopdev $file' + fatal 'losetup $lo_flags $loopdev $file' fi xenstore_write "$XENBUS_PATH/node" "$loopdev"