[haiku-gsoc] Re: BFS bug #2

  • From: "Axel Dörfler" <axeld@xxxxxxxxxxxxxxxx>
  • To: haiku-gsoc@xxxxxxxxxxxxx
  • Date: Sat, 28 Jun 2008 18:24:23 +0200 CEST

"Salvatore Benedetto" <emitrax@xxxxxxxxx> wrote:
> 2008/6/28 Axel Dörfler <axeld@xxxxxxxxxxxxxxxx>:
> > Instead, I have two different suggestions:
> > 1) the simple one: get rid of the volume lock in remove/rename, and
> > start the transaction in rename earlier (at the place where the
> > volume
> > is locked now)
> You mean to totally remove the volume lock in the bfs_rename and
> bfs_unlink?
> So Transaction would get locked first, and then let the Inode get the
> volume lock?

Just what I said: *remove* the volume lock there - there is no holding
of the volume lock anymore.
Since it's way easier to fix it without writing a whole essay, I just
went ahead and did so in r26154; I certainly don't want to hurt your
feelings, but I really don't see any space for misconstruction in what
I wrote above. Please at least read what I write carefully before
shooting questions; that just unnecessarily costs time for both of us.

> > 2) the needlessly complex one: make the journal lock an r/w lock,
> > and
> > make rename read lock it before actually starting a transaction (a
> > transaction would always write lock).
> >
> > IMO 1) is the way to go, since 2) would only be an optimization for
> > the
> > error case, and can thus be neglected.
> Just to make things clear, which lock are you saying should be held
> first?
> Journaled lock, or volume lock?

2) implies 1) in the sense that the volume lock is removed.

Bye,
   Axel.


Other related posts: