mirror of
https://git.proxmox.com/git/mirror_lxc
synced 2025-07-13 14:53:42 +00:00
lxc-start-ephemeral: handle the overlayfs workdir option (v2)
We fixed this some time ago for basic lxc-start, but never did lxc-start-ephemeral. Since the lxc-start patches were pushed, Miklos has given us a way to detect whether we need the workdir= option. So the bdev.c code could be simplified to check for "overlay\n" in /proc/filesystems just as lxc-start-ephemeral does. This patch doesn't do that. Changelog (v2): 1. use 'overlay' fstype for new overlay upstream module 2. avoid using unneeded readlines(). Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com> Acked-by: Stéphane Graber <stgraber@ubuntu.com>
This commit is contained in:
parent
38005c5436
commit
4799a1e7ec
@ -219,6 +219,14 @@ for entry in args.cdir:
|
||||
dst_path = "%s/rootfs/%s" % (dest_path, src_path)
|
||||
overlay_dirs += [(src_path, dst_path)]
|
||||
|
||||
# do we have the new overlay fs which requires workdir, or the older
|
||||
# overlayfs which does not?
|
||||
have_new_overlay = False
|
||||
with open("/proc/filesystems", "r") as fd:
|
||||
for line in fd:
|
||||
if line == "nodev\toverlay\n":
|
||||
have_new_overlay = True
|
||||
|
||||
# Generate pre-mount script
|
||||
with open(os.path.join(dest_path, "pre-mount"), "w+") as fd:
|
||||
os.fchmod(fd.fileno(), 0o755)
|
||||
@ -231,16 +239,31 @@ LXC_NAME="%s"
|
||||
count = 0
|
||||
for entry in overlay_dirs:
|
||||
target = "%s/delta%s" % (dest_path, count)
|
||||
workdir = "%s/work%s" % (dest_path, count)
|
||||
fd.write("mkdir -p %s %s\n" % (target, entry[1]))
|
||||
if have_new_overlay:
|
||||
fd.write("mkdir -p %s\n" % workdir)
|
||||
|
||||
if args.storage_type == "tmpfs":
|
||||
fd.write("mount -n -t tmpfs -o mode=0755 none %s\n" % (target))
|
||||
if have_new_overlay:
|
||||
fd.write("mount -n -t tmpfs -o mode=0755 none %s\n" % (workdir))
|
||||
|
||||
fd.write("getfacl -a %s | setfacl --set-file=- %s || true\n" % (entry[0], target))
|
||||
fd.write("getfacl -a %s | setfacl --set-file=- %s || true\n" % (entry[0], entry[1]))
|
||||
if have_new_overlay:
|
||||
fd.write("getfacl -a %s | setfacl --set-file=- %s || true\n" % (entry[0], workdir))
|
||||
|
||||
if args.union_type == "overlayfs":
|
||||
fd.write("mount -n -t overlayfs"
|
||||
if have_new_overlay:
|
||||
fd.write("mount -n -t overlay"
|
||||
" -oupperdir=%s,lowerdir=%s,workdir=%s none %s\n" % (
|
||||
target,
|
||||
entry[0],
|
||||
workdir,
|
||||
entry[1]))
|
||||
else:
|
||||
fd.write("mount -n -t overlayfs"
|
||||
" -oupperdir=%s,lowerdir=%s none %s\n" % (
|
||||
target,
|
||||
entry[0],
|
||||
|
Loading…
Reference in New Issue
Block a user