On 06/15/2011 06:47 AM, Miao Xie wrote:
> The following deadlock may happen when doing reservation for metadata:
> 
> Task0                         Flush thread            Task1
> start_transaction()
>   shrink_delalloc()
>     writeback_inodes_sb_nr()
>       wait for flush thread
>       end.
>                               btrfs_writepages()
>                                 cow_file_range()
>                                                       btrfs_commit_transaction
>                                                         wait num_writer == 1
>                                                         (wait Task0 end
>                                                          transaction)
>                                 start_transaction()
>                                   wait trans commit
>                                   end
> 
> Task0 -> Flush thread -> Task1 -> Task0
> 
> Fix the above deadlock by doing reservation before the trans handle has
> been joined into the transaction.
> 
> Signed-off-by: Miao Xie <mi...@cn.fujitsu.com>

I've already taken care of this in

[PATCH 1/2] Btrfs: do transaction space reservation before joining the
transaction

Thanks,

Josef
--
To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to