btrfs: don't arbitrarily slow down delalloc if we're committing
authorJosef Bacik <josef@toxicpanda.com>
Mon, 18 Sep 2023 18:15:33 +0000 (14:15 -0400)
committerDavid Sterba <dsterba@suse.com>
Thu, 12 Oct 2023 14:44:08 +0000 (16:44 +0200)
We have a random schedule_timeout() if the current transaction is
committing, which seems to be a holdover from the original delalloc
reservation code.

Remove this, we have the proper flushing stuff, we shouldn't be hoping
for random timing things to make everything work.  This just induces
latency for no reason.

CC: stable@vger.kernel.org # 5.4+
Signed-off-by: Josef Bacik <josef@toxicpanda.com>
Reviewed-by: David Sterba <dsterba@suse.com>
Signed-off-by: David Sterba <dsterba@suse.com>
fs/btrfs/delalloc-space.c

index a764db6..51453d4 100644 (file)
@@ -322,9 +322,6 @@ int btrfs_delalloc_reserve_metadata(struct btrfs_inode *inode, u64 num_bytes,
        } else {
                if (current->journal_info)
                        flush = BTRFS_RESERVE_FLUSH_LIMIT;
-
-               if (btrfs_transaction_in_commit(fs_info))
-                       schedule_timeout(1);
        }
 
        num_bytes = ALIGN(num_bytes, fs_info->sectorsize);