diff options
author | Liu Bo <bo.li.liu@oracle.com> | 2016-09-13 19:15:48 -0700 |
---|---|---|
committer | David Sterba <dsterba@suse.com> | 2016-09-26 18:04:01 +0200 |
commit | a43f7f82064220082eba7075c5a844d773fdef1b (patch) | |
tree | c3b005cedbd3c027247fdf70ace686e9aabff567 /fs/btrfs | |
parent | 3eb548ee3a8042d95ad81be254e67a5222c24e03 (diff) | |
download | linux-a43f7f82064220082eba7075c5a844d773fdef1b.tar.gz linux-a43f7f82064220082eba7075c5a844d773fdef1b.tar.bz2 linux-a43f7f82064220082eba7075c5a844d773fdef1b.zip |
Btrfs: remove BUG_ON in start_transaction
Since we could get errors from the concurrent aborted transaction,
the check of this BUG_ON in start_transaction is not true any more.
Say, while flushing free space cache inode's dirty pages,
btrfs_finish_ordered_io
-> btrfs_join_transaction_nolock
(the transaction has been aborted.)
-> BUG_ON(type == TRANS_JOIN_NOLOCK);
Signed-off-by: Liu Bo <bo.li.liu@oracle.com>
Reviewed-by: Josef Bacik <jbacik@fb.com>
Signed-off-by: David Sterba <dsterba@suse.com>
Diffstat (limited to 'fs/btrfs')
-rw-r--r-- | fs/btrfs/transaction.c | 5 |
1 files changed, 1 insertions, 4 deletions
diff --git a/fs/btrfs/transaction.c b/fs/btrfs/transaction.c index b53104042e95..2ce9115a55fd 100644 --- a/fs/btrfs/transaction.c +++ b/fs/btrfs/transaction.c @@ -549,11 +549,8 @@ again: } } while (ret == -EBUSY); - if (ret < 0) { - /* We must get the transaction if we are JOIN_NOLOCK. */ - BUG_ON(type == TRANS_JOIN_NOLOCK); + if (ret < 0) goto join_fail; - } cur_trans = root->fs_info->running_transaction; |