From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ian Kent Subject: Re: Union mount and lockdep design issues Date: Mon, 11 Jul 2011 21:50:32 +0800 Message-ID: <1310392232.4276.14.camel@perseus.themaw.net> References: <1310305703.13309.7.camel@twins> <4E0AF2BA.2040706@gmail.com> <1302756608.2854.10.camel@perseus.themaw.net> <4DA4B6A8.7030804@gmail.com> <4DA5DCB8.3040101@gmail.com> <4DA5F569.9020309@gmail.com> <24792.1302808448@redhat.com> <2477.1309342656@redhat.com> <4E1962BE.8010204@redhat.com> <1408.1310382069@redhat.com> <1310385651.18678.59.camel@twins> Mime-Version: 1.0 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: 7bit Cc: Peter Zijlstra , David Howells , Ric Wheeler , Alexander Viro , Christoph Hellwig , Ingo Molnar , linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org, Jeff Moyer , miklos@szeredi.hu To: Michal Suchanek Return-path: In-Reply-To: Sender: linux-kernel-owner@vger.kernel.org List-Id: linux-fsdevel.vger.kernel.org On Mon, 2011-07-11 at 15:36 +0200, Michal Suchanek wrote: > On 11 July 2011 14:00, Peter Zijlstra wrote: > > On Mon, 2011-07-11 at 12:01 +0100, David Howells wrote: > >> Peter Zijlstra wrote: > >> > > >> > Also, why would you want to have a class per sb-instance? From last > >> > talking to David, he said there could only ever be 2 filesystems > >> > involved in this, the top and bottom, and it is determined on (union) > >> > mount time which is which. > >> > >> There can be more than 2 - one upperfs (the actual union) and many lowerfs - > >> though I think only one lowerfs is accessed at a time. > > > > Right, however I understood from our earlier discussion that the vfs > > would only ever try to lock 2 filesystems at a time, the top and one > > lower. > > This is true from local point of view. However, it is technically > possible to use overlayfs as the upper layer of another overlayfs > which allows layering multiple readonly "branches" into a single > overlay. Since the vfs will lock the "union" and one (or possibly > both) of its branches and one of the branches may be itself an union > you can get arbitrary depth (which is currently limited by a constant > in the code to cut recursion depth and stack usage). Off topic but can you elaborate on that? Are you saying the "unioned stack" can consist of more than two file systems and can have more than two layers and possibly a mix of multiple read-only and read-write file systems? Ian