diff options
author | Miao Xie <miaox@cn.fujitsu.com> | 2012-11-01 08:32:18 +0100 |
---|---|---|
committer | Josef Bacik <jbacik@fusionio.com> | 2012-12-12 23:15:20 +0100 |
commit | b7d5b0a819498a9c04e1d18201a42468f7edd92a (patch) | |
tree | ac708a897951993954b0e52b33641c4ee19bfa2c /fs/btrfs/file-item.c | |
parent | Btrfs: cleanup for btrfs_wait_order_range (diff) | |
download | linux-b7d5b0a819498a9c04e1d18201a42468f7edd92a.tar.xz linux-b7d5b0a819498a9c04e1d18201a42468f7edd92a.zip |
Btrfs: fix joining the same transaction handler more than 2 times
If we flush inodes with pending delalloc in a transaction, we may join
the same transaction handler more than 2 times.
The reason is:
Task use_count of trans handle
commit_transaction 1
|-> btrfs_start_delalloc_inodes 1
|-> run_delalloc_nocow 1
|-> join_transaction 2
|-> cow_file_range 2
|-> join_transaction 3
In fact, cow_file_range needn't join the transaction again because the caller
have joined the transaction, so we fix this problem by this way.
Reported-by: Liu Bo <bo.li.liu@oracle.com>
Signed-off-by: Miao Xie <miaox@cn.fujitsu.com>
Signed-off-by: Chris Mason <chris.mason@fusionio.com>
Diffstat (limited to 'fs/btrfs/file-item.c')
0 files changed, 0 insertions, 0 deletions