summaryrefslogtreecommitdiffstats
path: root/include/rdma
diff options
context:
space:
mode:
authorQu Wenruo <wqu@suse.com>2021-09-27 15:22:02 +0800
committerDavid Sterba <dsterba@suse.com>2021-10-26 19:08:05 +0200
commit66448b9d5b6840c230d81cbf10d6ffaeece2d71b (patch)
tree37a9b08a8d68fba3b0565351dca1ccbdd31055ad /include/rdma
parent741ec653ab58f5f263f2b6df38157997661c7a50 (diff)
downloadlinux-66448b9d5b6840c230d81cbf10d6ffaeece2d71b.tar.bz2
btrfs: subpage: make extent_write_locked_range() compatible
There are two sites are not subpage compatible yet for extent_write_locked_range(): - How @nr_pages are calculated For subpage we can have the following range with 64K page size: 0 32K 64K 96K 128K | |////|/////| | In that case, although 96K - 32K == 64K, thus it looks like one page is enough, but the range spans two pages, not one. Fix it by doing proper round_up() and round_down() to calculate @nr_pages. Also add some extra ASSERT()s to ensure the range passed in is already aligned. - How the page end is calculated Currently we just use cur + PAGE_SIZE - 1 to calculate the page end. Which can't handle the above range layout, and will trigger ASSERT() in btrfs_writepage_endio_finish_ordered(), as the range is no longer covered by the page range. Fix it by taking page end into consideration. Signed-off-by: Qu Wenruo <wqu@suse.com> Signed-off-by: David Sterba <dsterba@suse.com>
Diffstat (limited to 'include/rdma')
0 files changed, 0 insertions, 0 deletions