diff options
author | Josef Bacik <josef@toxicpanda.com> | 2021-06-22 15:51:59 +0300 |
---|---|---|
committer | David Sterba <dsterba@suse.com> | 2021-06-22 14:51:10 +0200 |
commit | 048085539243bfd43839fe3dc6cbc02b0c620fdc (patch) | |
tree | aa8a1254dc2c4b27477200444bae43b1f391ffbe /fs/btrfs/space-info.c | |
parent | c416a30cddec0840520e9ffb170aea6c6b6c64af (diff) | |
download | linux-048085539243bfd43839fe3dc6cbc02b0c620fdc.tar.bz2 |
btrfs: remove FLUSH_DELAYED_REFS from data ENOSPC flushing
Since we unconditionally commit the transaction now we no longer need to
run the delayed refs to make sure our total_bytes_pinned value is
uptodate, we can simply commit the transaction. Remove this stage from
the data flushing list.
Reviewed-by: Nikolay Borisov <nborisov@suse.com>
Signed-off-by: Josef Bacik <josef@toxicpanda.com>
Signed-off-by: David Sterba <dsterba@suse.com>
Diffstat (limited to 'fs/btrfs/space-info.c')
-rw-r--r-- | fs/btrfs/space-info.c | 16 |
1 files changed, 0 insertions, 16 deletions
diff --git a/fs/btrfs/space-info.c b/fs/btrfs/space-info.c index 4c0d7290c557..ec18fed8ec80 100644 --- a/fs/btrfs/space-info.c +++ b/fs/btrfs/space-info.c @@ -1080,21 +1080,6 @@ static void btrfs_preempt_reclaim_metadata_space(struct work_struct *work) * immediately re-usable, it comes in the form of a delayed ref, which must be * run and then the transaction must be committed. * - * FLUSH_DELAYED_REFS - * The above two cases generate delayed refs that will affect - * ->total_bytes_pinned. However this counter can be inconsistent with - * reality if there are outstanding delayed refs. This is because we adjust - * the counter based solely on the current set of delayed refs and disregard - * any on-disk state which might include more refs. So for example, if we - * have an extent with 2 references, but we only drop 1, we'll see that there - * is a negative delayed ref count for the extent and assume that the space - * will be freed, and thus increase ->total_bytes_pinned. - * - * Running the delayed refs gives us the actual real view of what will be - * freed at the transaction commit time. This stage will not actually free - * space for us, it just makes sure that may_commit_transaction() has all of - * the information it needs to make the right decision. - * * COMMIT_TRANS * This is where we reclaim all of the pinned space generated by running the * iputs @@ -1107,7 +1092,6 @@ static void btrfs_preempt_reclaim_metadata_space(struct work_struct *work) static const enum btrfs_flush_state data_flush_states[] = { FLUSH_DELALLOC_WAIT, RUN_DELAYED_IPUTS, - FLUSH_DELAYED_REFS, COMMIT_TRANS, ALLOC_CHUNK_FORCE, }; |