Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 24 Nov 1998 16:02:07 +0100
From:      Eivind Eklund <eivind@yes.no>
To:        Artem Tepponen <tiny@onego.ru>, freebsd-fs@FreeBSD.ORG
Subject:   Re: unionfs broken?
Message-ID:  <19981124160207.C24412@follo.net>
In-Reply-To: <36599C38.1CFBAE39@onego.ru>; from Artem Tepponen on Mon, Nov 23, 1998 at 05:32:40PM %2B0000
References:  <199811231730.UAA30134@ns.onego.ru> <36599C38.1CFBAE39@onego.ru>

next in thread | previous in thread | raw e-mail | index | archive | help
On Mon, Nov 23, 1998 at 05:32:40PM +0000, Artem Tepponen wrote:
> Hi, all!
> 
>  I have some questions regarding unionfs and mount -o union.
>  Are they broken? Tried to use them both and got kernel panic
>  messages. Is there anybody who's going to fix this?

I don't think there is anybody actively working on it.

>  If no, then can somebody give hints about where to start from?

http://www.freebsd.org/~eivind/VOP_GETBACKINGOBJECT.patch

might prove useful.  The same with the paper Michael referenced, and
Heidemann's paper on stacking layers at the basic level.

You have to fully understand the interactions in the area - I do not.
The patch above is a shot in the dusk at providing the infrastructure
I believe will be needed for a working stacking layer architecture.

Other parts probably include:
VOP_GETBACKINGVP()
	- Translate a VP to the endpoint VP.
Change the locking infrastructure to be veto-based locking.

I'm pretty certain this list is incomplete.  You may want to talk to
Terry Lambert <tlambert@primenet.com>, who probably is the person that
has the best overview of how to fix this.  HOWEVER: Do NOT try to fix
it all at once.  This will almost certainly not be integrated (I'm not
saying this to disparage you, just to make you aware of the problems
you're likely to face).

The best way to fix it (including getting it integrated) is probably
this:
1. Work in a CVS (NOT CVSup) based environment.
2. Attempt to wrap your mind about at least part of the problem.  Try
   to identify things that have to be fixed.
3. Each time you've fixed one part of the problem, take a copy of the
   kernel tree you're working on, including the CVS/ directories that
   contain CVS meta-information.
4. Repeat step 2 and 3 until you have it working.
5. Write up a short description of the steps
   you've taken, a somewhat detailed description of the first step,
   and provide patches for the first step as well as patches to make
   it all work - relative to -current as of the time you submit the
   patches .  Make it clear that you are aware that things will have
   to be stepwise integrated, Ask for feedback on the procedure used
   to solve the problem as well as feedback on the first level
   patches.
6. If your way of solving the problem is at all palatable, you _will_
   get your patches integrated.  Keep the pressure up until you either
   do or get your patches turned down fully (which is very unlikely).
7. Update your set of CVS-trees to be from -current with your
   first-level patches integrated.  (This may be a bit of merge-work -
   unfortunately, I think it is unavoidable.)
8. Repeat step 5 through 7 until all your levels are integrated, and
   unionFS works.

When you do your changes, make sure you don't do random changes (like
whitespace-changes); keep it to minimal patches.  You will probably
want to have your first level of patches reviewed, to make sure any
style-problems are caught as early as possible - otherwise, you'll get
a _LOT_ of merge-work in step 7.

Sorry to have to outline such an elaborate way of handling this;
however, it is the only way I believe it will be possible to get the
necessary changes in (unless one of the committers does it).

Eivind.

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-fs" in the body of the message



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?19981124160207.C24412>