On Wed, Feb 13, 2013 at 11:13:22AM -0500, Josef Bacik wrote: > Miao made the ordered operations stuff run async, which introduced a > deadlock where we could get somebody (sync) racing in and committing the > transaction while a commit was already happening. The new committer would > try and flush ordered operations which would hang waiting for the commit to > finish because it is done asynchronously and no longer inherits the callers > trans handle. To fix this we need to make the ordered operations list a per > transaction list. We can get new inodes added to the ordered operation list > by truncating them and then having another process writing to them, so this > makes it so that anybody trying to add an ordered operation _must_ start a > transaction in order to add itself to the list, which will keep new inodes > from getting added to the ordered operations list after we start committing. > This should fix the deadlock and also keeps us from doing a lot more work > than we need to during commit. Thanks, No deadlock after several hours of xfstests with various mkfs and mount options. Tested-by: David Sterba <dsterba@xxxxxxx> -- To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html
