"Salvatore Benedetto" <emitrax@xxxxxxxxx> wrote: > By browsing the code the easy way to fix this seems to be > inverting the two lines below in the Transaction destructor. > _UnlockInodes, in fact, starts a new transaction, thus > trying to reacquire the journal lock after locking the inodes in > write mode. > > ~Transaction() > { > if (fJournal != NULL) { > fJournal->Unlock(this, false); > _UnlockInodes(); > } > } Indeed, switching the two lines should do the trick - any transaction started in _UnlockInodes() will then reuse the current transaction, instead of trying to start a new one. Nice one! Bye, Axel.