Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752562AbdLMKK0 (ORCPT ); Wed, 13 Dec 2017 05:10:26 -0500 Received: from mail-lf0-f50.google.com ([209.85.215.50]:47035 "EHLO mail-lf0-f50.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751614AbdLMKKW (ORCPT ); Wed, 13 Dec 2017 05:10:22 -0500 X-Google-Smtp-Source: ACJfBotkPlg0J1yI7XoB1adJfL0oicVN7mQ+6+1e+oaLkV2WBfdBmLmGtitymjXH12XGOeqg+mqa7w== Cc: linux-kernel@vger.kernel.org, linux-fsdevel@vger.kernel.org To: Miklos Szeredi , linux-unionfs@vger.kernel.org From: =?UTF-8?B?UmFmYcWCIE1pxYJlY2tp?= Subject: Using overlay on top of overlay Message-ID: <1c1c2e7d-8121-65bc-60f9-b93bbe2ff411@gmail.com> Date: Wed, 13 Dec 2017 11:10:17 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.6.0 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2198 Lines: 52 Hi, For few kernel releases overlay supported using it on top of another overlay. FWIW there was a regression related to this "feature" in 4.2: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=4bacc9c9234c7c8eec44f5ed4e960d9f96fa0f01 but it was fixed: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=1c8a47df36d72ace8cf78eb6c228aa0f8027d3c2 Starting with kernel 4.4 this "feature" seems to be disabled explicitly: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=76bc8e2843b66f8205026365966b49ec6da39ae7 Disabling commit says that it "does not make sense" but actually there seem to be few projects that are looking for such a solution, see: 1) https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1629509 2) https://bugs.centos.org/view.php?id=12986 3) https://github.com/rkt/rkt/issues/1537 I can't really elaborate on above cases but I have a similar need for my OpenWrt system running LXC (Linux Containers). First of all OpenWrt uses overlay to "merge" squashfs and some writable filesystem partition. It needs squashfs due to dealing with devices with really small flashes (down to 4 - 8 MiB). Then it stores all its LXC containers in the /srv/lxc/. Secondly LXC itself uses overlay feature in few places, e.g. 1) lxc.rootfs with the overlayfs:lower:upper syntax 2) lxc.mount.entry with the fstab syntax As you can guess LXC simply assumes overlay can be used and doesn't check if the host system uses it for directory holding container data. This breaks LXC because kernel refuses mounting dir with some message like: overlayfs: filesystem on '/foo' not supported as upperdir I managed to find a workaround for this. As OpenWrt uses: overlayfs:/overlay on / type overlay (rw,noatime,lowerdir=/,upperdir=/overlay/upper,workdir=/overlay/work) I can simply replace upperdir=/srv/lxc/foo/upper with upperdir=/overlay/upper/srv/lxc/foo/upper (same for workdir) but this isn't really a user friendly solution. I would like to ask if use cases I described above make any sense to you? Is there any chance someone could work on a proper support for overlay on top of overlay and enabling it again?