]> www.infradead.org Git - users/dwmw2/linux.git/commitdiff
btrfs: subpage: fix error handling in end_bio_subpage_eb_writepage
authorChristoph Hellwig <hch@lst.de>
Wed, 3 May 2023 15:24:22 +0000 (17:24 +0200)
committerDavid Sterba <dsterba@suse.com>
Mon, 19 Jun 2023 11:59:27 +0000 (13:59 +0200)
Call btrfs_page_clear_uptodate instead of ClearPageUptodate to properly
manage the uptodate bit for the subpage case.

Reported-by: Qu Wenruo <wqu@suse.com>
Reviewed-by: Qu Wenruo <wqu@suse.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 9827403ce2fbe1239f44715be30ce3102f706e42..a75e05c4f496e3e4a7da4fc1d8d68d4460e09de8 100644 (file)
@@ -1915,7 +1915,8 @@ static void end_bio_subpage_eb_writepage(struct btrfs_bio *bbio)
 
                        if (bio->bi_status ||
                            test_bit(EXTENT_BUFFER_WRITE_ERR, &eb->bflags)) {
-                               ClearPageUptodate(page);
+                               btrfs_page_clear_uptodate(fs_info, page,
+                                                         eb->start, eb->len);
                                set_btree_ioerr(page, eb);
                        }