bug-hurd
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH 3/3] Add the mountee to the list of merged filesystems.


From: Sergiu Ivanov
Subject: Re: [PATCH 3/3] Add the mountee to the list of merged filesystems.
Date: Mon, 13 Jul 2009 16:04:57 +0300
User-agent: Mutt/1.5.18 (2008-05-17)

Hello,

On Mon, Jul 13, 2009 at 12:02:50PM +0200, address@hidden wrote:
> On Fri, Jul 10, 2009 at 08:22:51PM +0300, Sergiu Ivanov wrote:
> > On Fri, Jul 10, 2009 at 04:20:35AM +0200, address@hidden
> > wrote:
> > > On Sun, Jul 05, 2009 at 06:53:50PM +0300, Sergiu Ivanov wrote:
> 
> > > > ulfs_check is used to update the list of ports to the underlying
> > > > filesystems maintained by unionfs, while node_init_root is used to
> > > > store a (similar) list of ports in the root node.
> > > > 
> > > > unionfs invokes both of these functions only in
> > > > _root_update_thread and does this with the point of doing a global
> > > > synchronization, i.e. making sure the merged directories still
> > > > exist and dropping dead items.
> > > > 
> > > > I call these functions explicitly because I want to force the
> > > > update of the list of filesystems and the root node.
> > > 
> > > Why?
> > 
> > Ah, sure, I forgot to tell the most important bit :-( The greater part
> > of what these updating routines do is making sure that the list of
> > filesystems is consistent, updating the corresponding list in the root
> > node, and opening the ports to the roots of these filesystems.  If I
> > don't do the update, the mountee will not be included in the list of
> > merged filesystems and the user will not see the mountee's filesystem
> > at all.
> 
> I still don't understand why this needs to be done differently with
> unionmount than without mounting. I either case, the list of filesystems
> needs do be kept consistent in the very same way I would think?...

The problem is that unionfs updates the list of filesystems when it
has finished parsing its command line arguments.  At that time it can
open ports to all directories to be merged, but the mountee is *not*
running yet.  Therefore, in setup_mountee, I have to force an update.
As I have said (sorry if I haven't), I could use root_update_schedule
to do a full update, but I just call these two functions because it's
much cheaper.

Nevertheless, your questions made me consider whether these calls are
necessary when starting up the mountee immediately after
initialization.  I changed the code a little bit (I'll post the
corrected patch shortly) and it turned out that it's not necessary to
force the update from within setup_mountee.
 
> My guess would be that obtaining the root nodes at this place might be a
> good way to force the mountee startup at a defined place -- but
> according to your explanation this in not the purpose, so I really don't
> get it.

I must say I cannot fully understand what you are talking about here
:-( I hope the explanation above explained the situation more or less
satisfactorily.

Regards,
scolobb




reply via email to

[Prev in Thread] Current Thread [Next in Thread]