btrfs: move writeback_control::nr_to_write update to __extent_writepage
authorChristoph Hellwig <hch@lst.de>
Wed, 31 May 2023 06:05:00 +0000 (08:05 +0200)
committerDavid Sterba <dsterba@suse.com>
Mon, 19 Jun 2023 11:59:35 +0000 (13:59 +0200)
Move the nr_to_write accounting from __extent_writepage_io to
__extent_writepage_io as we'll grow another __extent_writepage_io that
doesn't want this accounting soon.  Also drop the obsolete comment -
decrementing a counter in the on-stack writeback_control data structure
doesn't need the page lock.

Reviewed-by: Anand Jain <anand.jain@oracle.com>
Reviewed-by: Josef Bacik <josef@toxicpanda.com>
Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: David Sterba <dsterba@suse.com>
Signed-off-by: David Sterba <dsterba@suse.com>
fs/btrfs/extent_io.c

index a2e1dbd..f773ee1 100644 (file)
@@ -1370,12 +1370,6 @@ static noinline_for_stack int __extent_writepage_io(struct btrfs_inode *inode,
                return 1;
        }
 
-       /*
-        * we don't want to touch the inode after unlocking the page,
-        * so we update the mapping writeback index now
-        */
-       bio_ctrl->wbc->nr_to_write--;
-
        bio_ctrl->end_io_func = end_bio_extent_writepage;
        while (cur <= end) {
                u64 disk_bytenr;
@@ -1521,6 +1515,8 @@ static int __extent_writepage(struct page *page, struct btrfs_bio_ctrl *bio_ctrl
        if (ret == 1)
                return 0;
 
+       bio_ctrl->wbc->nr_to_write--;
+
 done:
        if (nr == 0) {
                /* make sure the mapping tag for page dirty gets cleared */