]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
btrfs: transaction: Cleanup unused TRANS_STATE_BLOCKED
authorQu Wenruo <wqu@suse.com>
Fri, 13 Aug 2021 09:55:28 +0000 (17:55 +0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sun, 15 Aug 2021 11:08:05 +0000 (13:08 +0200)
commit 3296bf562443a8ca35aaad959a76a49e9b412760 upstream

The state was introduced in commit 4a9d8bdee368 ("Btrfs: make the state
of the transaction more readable"), then in commit 302167c50b32
("btrfs: don't end the transaction for delayed refs in throttle") the
state is completely removed.

So we can just clean up the state since it's only compared but never
set.

Signed-off-by: Qu Wenruo <wqu@suse.com>
Reviewed-by: David Sterba <dsterba@suse.com>
Signed-off-by: David Sterba <dsterba@suse.com>
Signed-off-by: Anand Jain <anand.jain@oracle.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
fs/btrfs/disk-io.c
fs/btrfs/transaction.c
fs/btrfs/transaction.h

index 5f88142527c54ac336ccf9b44d290f4091c03ae5..8525503d92b7a3ed35a3e2d6241f24cf058bb2f3 100644 (file)
@@ -1748,7 +1748,7 @@ static int transaction_kthread(void *arg)
                }
 
                now = ktime_get_seconds();
-               if (cur->state < TRANS_STATE_BLOCKED &&
+               if (cur->state < TRANS_STATE_COMMIT_START &&
                    !test_bit(BTRFS_FS_NEED_ASYNC_COMMIT, &fs_info->flags) &&
                    (now < cur->start_time ||
                     now - cur->start_time < fs_info->commit_interval)) {
index d8e4e0bf3fc2dc16c6cde9333322d0c3ebaa16b6..14e6f50b65092e276d791cd225037b150eab2d85 100644 (file)
@@ -27,7 +27,6 @@
 
 static const unsigned int btrfs_blocked_trans_types[TRANS_STATE_MAX] = {
        [TRANS_STATE_RUNNING]           = 0U,
-       [TRANS_STATE_BLOCKED]           =  __TRANS_START,
        [TRANS_STATE_COMMIT_START]      = (__TRANS_START | __TRANS_ATTACH),
        [TRANS_STATE_COMMIT_DOING]      = (__TRANS_START |
                                           __TRANS_ATTACH |
@@ -388,7 +387,7 @@ int btrfs_record_root_in_trans(struct btrfs_trans_handle *trans,
 
 static inline int is_transaction_blocked(struct btrfs_transaction *trans)
 {
-       return (trans->state >= TRANS_STATE_BLOCKED &&
+       return (trans->state >= TRANS_STATE_COMMIT_START &&
                trans->state < TRANS_STATE_UNBLOCKED &&
                !TRANS_ABORTED(trans));
 }
@@ -580,7 +579,7 @@ again:
        INIT_LIST_HEAD(&h->new_bgs);
 
        smp_mb();
-       if (cur_trans->state >= TRANS_STATE_BLOCKED &&
+       if (cur_trans->state >= TRANS_STATE_COMMIT_START &&
            may_wait_transaction(fs_info, type)) {
                current->journal_info = h;
                btrfs_commit_transaction(h);
@@ -797,7 +796,7 @@ int btrfs_should_end_transaction(struct btrfs_trans_handle *trans)
        struct btrfs_transaction *cur_trans = trans->transaction;
 
        smp_mb();
-       if (cur_trans->state >= TRANS_STATE_BLOCKED ||
+       if (cur_trans->state >= TRANS_STATE_COMMIT_START ||
            cur_trans->delayed_refs.flushing)
                return 1;
 
@@ -830,7 +829,6 @@ static int __btrfs_end_transaction(struct btrfs_trans_handle *trans,
 {
        struct btrfs_fs_info *info = trans->fs_info;
        struct btrfs_transaction *cur_trans = trans->transaction;
-       int lock = (trans->type != TRANS_JOIN_NOLOCK);
        int err = 0;
 
        if (refcount_read(&trans->use_count) > 1) {
@@ -846,13 +844,6 @@ static int __btrfs_end_transaction(struct btrfs_trans_handle *trans,
 
        btrfs_trans_release_chunk_metadata(trans);
 
-       if (lock && READ_ONCE(cur_trans->state) == TRANS_STATE_BLOCKED) {
-               if (throttle)
-                       return btrfs_commit_transaction(trans);
-               else
-                       wake_up_process(info->transaction_kthread);
-       }
-
        if (trans->type & __TRANS_FREEZABLE)
                sb_end_intwrite(info->sb);
 
index 7291a2a930751bd5eb8c71a3f132462c1663724c..761cc65a726436f11b6cad2efedbfe035c4e109f 100644 (file)
@@ -13,7 +13,6 @@
 
 enum btrfs_trans_state {
        TRANS_STATE_RUNNING,
-       TRANS_STATE_BLOCKED,
        TRANS_STATE_COMMIT_START,
        TRANS_STATE_COMMIT_DOING,
        TRANS_STATE_UNBLOCKED,