[PATCH] xfs: lock for removing item from cil->xc_cil in xlog_cil_push

Eric Sandeen sandeen at sandeen.net
Fri Oct 10 23:19:36 CDT 2014


On 10/10/14 7:07 AM, Brian Foster wrote:
 
> Isn't this fixed by the following commit?
> 
> 8af3dcd3 xfs: xlog_cil_force_lsn doesn't always wait correctly
> 
> With that patch, xlog_cil_push() adds the ctx to the committing list
> before draining the ctx and updating the current sequence number.
> xlog_cil_force_lsn() walks the committing list and checks the sequence
> number and ctx list, all under the push lock.
> 
> That means that xlog_cil_force_lsn() should see the ctx either on the
> committing list and wait for it (commit_lsn != NULL), or not on the
> committing list at all. If it's not on the committing list yet,
> xlog_cil_push() won't have either drained the ctx or updated the
> sequence number, as it adds to the committing list first and that
> requires the push lock (which xlog_cil_force_lsn() holds and doesn't
> release until after the restart check).
> 
> Am I missing something? Do you reproduce a problem with the latest tree
> that includes the above patch?

We clarified that Dave's patch does fix the problem; this was a Red Hat
bug, and I hadn't put the upstream commit into it yet, sorry about that.

George, thanks for working on it!

-Eric

> Brian



More information about the xfs mailing list