The call to btrfs_btree_balance_dirty has been there since the early days of BTRFS, when the btree was directly modified from the write path, hence dirtied btree inode pages. With the implementation of b888db2bd7b6 ("Btrfs: Add delayed allocation to the extent based page tree code") 13 years ago the btree is no longer modified from the write path, hence there is no point in calling this function. Just remove it. Signed-off-by: Nikolay Borisov <nborisov@suse.com> --- fs/btrfs/file.c | 2 -- 1 file changed, 2 deletions(-) diff --git a/fs/btrfs/file.c b/fs/btrfs/file.c index fde125616687..6a76aea7bcb3 100644 --- a/fs/btrfs/file.c +++ b/fs/btrfs/file.c @@ -1784,8 +1784,6 @@ static noinline ssize_t btrfs_buffered_write(struct kiocb *iocb, cond_resched(); balance_dirty_pages_ratelimited(inode->i_mapping); - if (dirty_pages < (fs_info->nodesize >> PAGE_SHIFT) + 1) - btrfs_btree_balance_dirty(fs_info); pos += copied; num_written += copied; -- 2.17.1
On Thu, May 28, 2020 at 11:05:13AM +0300, Nikolay Borisov wrote:
> The call to btrfs_btree_balance_dirty has been there since the early
> days of BTRFS, when the btree was directly modified from the write path,
> hence dirtied btree inode pages. With the implementation of
> b888db2bd7b6 ("Btrfs: Add delayed allocation to the extent based page tree code")
> 13 years ago the btree is no longer modified from the write path, hence
> there is no point in calling this function. Just remove it.
>
> Signed-off-by: Nikolay Borisov <nborisov@suse.com>
Added to misc-next, thanks.