Btrfs: remove BUG_ON in start_transaction
authorLiu Bo <bo.li.liu@oracle.com>
Wed, 14 Sep 2016 02:15:48 +0000 (19:15 -0700)
committerDavid Sterba <dsterba@suse.com>
Mon, 26 Sep 2016 16:04:01 +0000 (18:04 +0200)
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>
fs/btrfs/transaction.c

index b53104042e954f493aee84965072567a040a6d47..2ce9115a55fde82ddf492ff5bef2783a5036ef01 100644 (file)
@@ -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;