Re: [PATCH 19/39] union-mount: Implement union lookup

From: Miklos Szeredi
Date: Wed Aug 18 2010 - 04:11:42 EST


On Tue, 17 Aug 2010, Valerie Aurora wrote:
> On Fri, Aug 13, 2010 at 03:49:04PM +0200, Miklos Szeredi wrote:
> > On Sun, 8 Aug 2010, Valerie Aurora wrote:
> > > Implement unioned directories, whiteouts, and fallthrus in pathname
> > > lookup routines. do_lookup() and lookup_hash() call lookup_union()
> > > after looking up the dentry from the top-level file system.
> > > lookup_union() is centered around __lookup_hash(), which does cached
> > > and/or real lookups and revalidates each dentry in the union stack.
> > >
> > > XXX - implement negative union cache entries
> > >
> > > XXX - handle different permissions on directories
> >
> > If process doing the lookup doesn't have write permission on the top
> > level directory then the lookup will fail. This is not intended, is
> > it?
>
> Does it fail? I'm not checking permissions before calling
> ->fallthru(). But I can't test this because the code doesn't set the
> owner of the copied up directory correctly. :)

It fails because everything, including copyup, is done with the
credentials of the user doing the lookup/copyup. This is wrong, for
the time of the copyup the credentials need to be upgraded to be able
to create and copy the lower file or directory into the upper
filesystem even when the current process doesn't have enough
privileges for that.

Thanks,
Miklos
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/