Enable multiple lower layers for overlayfs
authorWolfgang Scheicher <wolfgang.scheicher@gmail.com>
Sun, 20 Dec 2015 01:10:58 +0000 (02:10 +0100)
committerEvgeni Golov <evgeni@debian.org>
Sun, 20 Dec 2015 12:14:34 +0000 (13:14 +0100)
components/9990-misc-helpers.sh

index 943e73b..83eca32 100755 (executable)
@@ -1304,15 +1304,14 @@ do_union ()
                        ;;
 
                overlay)
-                       # XXX: can multiple unionro be used? (overlay only handles two dirs, but perhaps they can be chained?)
-                       # XXX: and can unionro be optional? i.e. can overlay skip lowerdir?
-                       if echo ${unionro} | grep -q " "
-                       then
-                               panic "Multiple lower filesystems are currently not supported with overlay (unionro = ${unionro})."
-                       elif [ -z "${unionro}"  ]
+                       # XXX: can unionro be optional? i.e. can overlay skip lowerdir?
+                       if [ -z "${unionro}" ]
                        then
                                panic "overlay needs at least one lower filesystem (read-only branch)."
                        fi
+                       # Multiple lower layers can now be given using the the colon (":") as a
+                       # separator character between the directory names.
+                       unionro="$(echo ${unionro} | sed -e 's| |:|g')"
                        # overlayfs requires:
                        # + a workdir to become mounted
                        # + workdir and upperdir to reside under the same mount