Skip site navigation (1)Skip section navigation (2)
Date:      25 Oct 1998 16:27:25 +0100
From:      Bjoern Groenvall <bg@sics.se>
To:        Love <lha@e.kth.se>
Cc:        Michael Hancock <michaelh@cet.co.jp>, freebsd-fs@FreeBSD.ORG, freebsd-bugs@FreeBSD.ORG, kom-arla@stacken.kth.se
Subject:   Re: deadfs in FreeBSD 3.0/current ?
Message-ID:  <wu1znwr7aa.fsf@bg.sics.se>
In-Reply-To: Love's message of 25 Oct 1998 15:17:50 %2B0100
References:  <Pine.BSF.3.95LJ1.1b3.981025202548.1224A-100000@sv01.cet.co.jp> <amiuh867zl.fsf@zinfandel.e.kth.se>

next in thread | previous in thread | raw e-mail | index | archive | help
Love <lha@e.kth.se> writes:

> Michael Hancock <michaelh@cet.co.jp> writes:
> 
> > On 25 Oct 1998, Love wrote:
> > 
> > > But that is done *after* the tsleep, and therefor that code will *never* be
> > > reached. Kind of hard to wake yourself up. It will hang in
> > > miscfs/deadfs/dead_vnops.c(1.24):240 forever.
> > 
> > Umm...  Why are you using deadfs in arla?  I think you're breaking an
> > invariant if vclean is trying to clean out something that's already dead.
> > Kinda like a double free.
> >
> >Sorry, let me guess.  You're trying to cache vnodes but the kernel wants
> >to control the lifetime of vnodes.  With the global vnode management
> >policy and how deadfs works this is tricky.  You might want to look at how
> >the Coda people solved this, I don't have a clue.
> 
> Arla is like coda (http://www.coda.cs.cmu.edu/) and has a userland daemon
> that keeps track of all things, the kernel module does caching to keep the
> speed up. But then the userland-daemon is dead you have to return something
> in the kernel-module so we do:
> 
>     return getnewvnode(VT_NON, mp, dead_vnodeop_p, vpp);}
> 
> Because we don't want to do magic with xfs_vnodeops_p when there is no
> userland daemon, they do that with coda.
> 
> So you have a deadvnodeops that isn't really vnodeops or what (just used the
> small timeframe from when a vnode is vclean()ed to its assigned to a new
> filesystem by checkalias(), vflush(), or vgonel() ?)
> 
> Should we bake our own dead_vnodeops_p that is really dead vnodes ?

In the evil old days when I wrote xfs; dead vnodes was only used to be
able to unmount xfs when there was no user space daemon running. Is it
still required to have a root vnode to be able to unmount? If not, you
no longer need that hack, it's enough to have xfs_root fail.

Cheers,
Björn

-- 
  _     _                                               ,_______________.  
Bjorn Gronvall (Björn Grönvall)                        /_______________/|     
Swedish Institute of Computer Science                  |               ||
PO Box 1263, S-164 29 Kista, Sweden                    | Schroedingers ||
Email: bg@sics.se, Phone +46 -8 633 15 25              |      Cat      |/
Cellular +46 -70 768 06 35, Fax +46 -8 751 72 30       `---------------' 

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



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