diff --no-dereference -uNr opennebula-5.2.1.orig/src/tm_mad/ceph/mkimage opennebula-5.2.1-mkswapsparse/src/tm_mad/ceph/mkimage
--- opennebula-5.2.1.orig/src/tm_mad/ceph/mkimage	2017-01-04 10:40:37.000000000 -0600
+++ opennebula-5.2.1-mkswapsparse/src/tm_mad/ceph/mkimage	2017-04-19 11:51:00.207273149 -0500
@@ -97,12 +97,15 @@
 
 MKIMAGE_CMD=$(cat <<EOF
     export PATH=/usr/sbin:/sbin:\$PATH
-    $RBD create $FORMAT_OPT $RBD_SOURCE --size ${SIZE} || exit \$?
-
     if [ "$FSTYPE" = "swap" ]; then
-        $SUDO $RBD map $RBD_SOURCE || exit \$?
-        $SUDO $MKSWAP -L swap /dev/rbd/$RBD_SOURCE
-        $SUDO $RBD unmap /dev/rbd/$RBD_SOURCE
+        tmpfile="\$(mktemp)" && \
+                dd if=/dev/zero of="\${tmpfile}" bs=$[1024*1024] seek=$[${SIZE} - 1] count=1 2>/dev/null && \
+                mkswap "\${tmpfile}" && \
+                dd if="\${tmpfile}" bs=\$(getconf PAGESIZE) count=1 2>/dev/null | $RBD import - $RBD_SOURCE && \
+                $RBD resize --size ${SIZE}M $RBD_SOURCE
+        rm -f "\${tmpfile}" 
+    else
+        $RBD create $FORMAT_OPT $RBD_SOURCE --size ${SIZE} || exit \$?
     fi
 EOF
 )
