"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.