From: Keir Fraser Date: Thu, 24 Jan 2008 14:58:25 +0000 (+0000) Subject: tools/examples/block better use of losetup -r X-Git-Tag: 3.1.3-rc2~3 X-Git-Url: http://xenbits.xensource.com/gitweb?a=commitdiff_plain;h=e1139af433cbc5e8d1e637a31fbb71b69251f68b;p=people%2Fvhanquez%2Fxen.git tools/examples/block better use of losetup -r Use losetup -r when the vbd is specified to be readonly, but only if -r is supported (rather than always creating a writeable losetup mapping if possible). This was inspired by (but not derived from) a diff from the Fedora 8 patchset which uses -r iff the vbd is specified as readonly. We need to be cleverer upstream because not all systems have losetup -r. Signed-off-by: Ian Jackson xen-unstable changeset: 16642:643ab64d12d5ce57e5f1e08f85ab4bb7fbc136ae xen-unstable date: Wed Dec 19 15:05:15 2007 +0000 --- diff --git a/tools/examples/block b/tools/examples/block index a058f5c30..566a8acba 100644 --- a/tools/examples/block +++ b/tools/examples/block @@ -367,10 +367,13 @@ mount it read-write in a guest domain." fatal 'Failed to find an unused loop device' fi - status=$(losetup "$loopdev" "$file" || echo "failed") - if [ -n "$status" ]; then - do_or_die losetup -r "$loopdev" "$file" + if LANG=C losetup -h 2>&1 | grep read-only >/dev/null + then + roflag="-$mode"; roflag="${roflag#-w}" + else + roflag='' fi + do_or_die losetup $roflag "$loopdev" "$file" xenstore_write "$XENBUS_PATH/node" "$loopdev" write_dev "$loopdev" release_lock "block"