On Mon, Aug 6, 2012 at 3:18 PM, Arne Jansen <[email protected]> wrote:
> Commit a168650c introduced a waiting mechanism to prevent busy waiting in
> btrfs_run_delayed_refs. This can deadlock with btrfs_run_ordered_operations,
> where a tree_mod_seq is held while waiting for the io to complete, while
> the end_io calls btrfs_run_delayed_refs.
> This whole mechanism is unnecessary. If not enough runnable refs are
> available to satisfy count, just return as count is more like a guideline
> than a strict requirement.
> In case we have to run all refs, commit transaction makes sure that no
> other threads are working in the transaction anymore, so we just assert
> here that no refs are blocked.
>

I've been testing this patch after manually merging on top of Josef's
"Btrfs: barrier before waitqueue_active V2" patch.

With that arrangement, I've been unable to reproduce the deadlock on my system.

I'll continue banging away on it tomorrow, and let you know if I
attain a deadlock.

Also, let me know if you need me to test without including Josef's
added barriers.
--
To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to