]> git.hungrycats.org Git - linux/commitdiff
Revert "Revert "Btrfs: fix list transaction->pending_ordered corruption""
authorZygo Blaxell <zblaxell@thirteen.furryterror.org>
Wed, 22 Jul 2015 21:24:06 +0000 (17:24 -0400)
committerZygo Blaxell <zblaxell@thirteen.furryterror.org>
Wed, 22 Jul 2015 21:24:06 +0000 (17:24 -0400)
This reverts commit ee84f696e37b04843e3740c8c77d342f0f398f4c.

fs/btrfs/transaction.c

index 8be4278e25e8e06e32d52b5ac412201d7b20a53c..cf8c516723acc4439279b84ff40e996c072b659e 100644 (file)
@@ -753,7 +753,7 @@ static int __btrfs_end_transaction(struct btrfs_trans_handle *trans,
 
        if (!list_empty(&trans->ordered)) {
                spin_lock(&info->trans_lock);
-               list_splice(&trans->ordered, &cur_trans->pending_ordered);
+               list_splice_init(&trans->ordered, &cur_trans->pending_ordered);
                spin_unlock(&info->trans_lock);
        }
 
@@ -1811,7 +1811,7 @@ int btrfs_commit_transaction(struct btrfs_trans_handle *trans,
        }
 
        spin_lock(&root->fs_info->trans_lock);
-       list_splice(&trans->ordered, &cur_trans->pending_ordered);
+       list_splice_init(&trans->ordered, &cur_trans->pending_ordered);
        if (cur_trans->state >= TRANS_STATE_COMMIT_START) {
                spin_unlock(&root->fs_info->trans_lock);
                atomic_inc(&cur_trans->use_count);