btrfs: make alloc_extent_buffer() check subpage dirty bitmap
authorQu Wenruo <wqu@suse.com>
Thu, 25 Mar 2021 07:14:41 +0000 (15:14 +0800)
committerDavid Sterba <dsterba@suse.com>
Mon, 19 Apr 2021 15:25:18 +0000 (17:25 +0200)
commit1e5eb3d6a443d0271a5bb798e1bc94d549895efe
tree0f7da228fa00dbcdb490964f65c09e6c0d9b8978
parenteca0f6f64349c412695315490c30cda1622fba9f
btrfs: make alloc_extent_buffer() check subpage dirty bitmap

In alloc_extent_buffer(), we make sure that the newly allocated page is
never dirty.

This is fine for sector size == PAGE_SIZE case, but for subpage it's
possible that one extent buffer in the page is dirty, thus the whole
page is marked dirty, and could cause false alert.

To support subpage, call btrfs_page_test_dirty() to handle both cases.

Signed-off-by: Qu Wenruo <wqu@suse.com>
Reviewed-by: David Sterba <dsterba@suse.com>
Signed-off-by: David Sterba <dsterba@suse.com>
fs/btrfs/extent_io.c