Re: [patch 0/3] j_state_lock, j_list_lock, remove-bitlocks

Andrew Morton
2005-03-16T11:19:40Z

Steven Rostedt <rostedt@goodmis.org> wrote:
>
>
>
> On Wed, 16 Mar 2005, Andrew Morton wrote:
>
> >
> > Those two are in the journal, actually. You refer to jbd_lock_bh_state()
> > and jbd_lock_bh_journal_head(). I think they both need to be in the
> > buffer_head. jbd_lock_bh_journal_head() can probably go away (just use
> > caller's jbd_lock_bh_state()).
> >
> > Or make them global, or put them in the journal.
>
> The jbd_lock_bh_journal_head can be one global lock without a problem.

As I say, we can probably eliminate it.

> But
> when I made jbd_lock_bh_state a global lock, I believe it deadlocked on
> me.

That's a worry.

> So this one has to go into the buffer head. What do you mean with
> "put them in the journal", do you mean the journal_s structure?

Yes.

> Is there a
> safe way to get to that structure from the buffer head?

No convenient way, iirc. But there's usually a fairly straightforward way
to get at the journal from within JBD code.

> The state lock is
> used quite a bit and it gets tricky trying to figure out how to use other
> structures wrt buffer_heads at all the locations that use
> jbd_lock_bh_state.

That one should go into the buffer_head, I guess.