mbox series

[v2,0/3] btrfs: small cleanups mostly for subpage cases

Message ID cover.1685411033.git.wqu@suse.com (mailing list archive)
Headers show
Series btrfs: small cleanups mostly for subpage cases | expand

Message

Qu Wenruo May 30, 2023, 1:45 a.m. UTC
Changelog:
v2:
- Fix an offset-by-one bug in the 3rd patch
  Unlock extent range end is inclusive.

During my hunt on the subpage uptodate desync bugs reported from Matt, I
exposed several PageUptodate usage which results inefficiency for
subpage cases.

Those two are fixed in the first two patches.

Furthermore I found processed_extent infrastructure is no longer needed
especially after all the csum verification is moved to storage layer (or
bio.c inside btrfs), we can easily unlock the full range without the
need for the infrastructure.

Thus the last patch would delete the processed_extent infrastructure
completely.

Qu Wenruo (3):
  btrfs: make alloc_extent_buffer() handle previously uptodate range
    more efficient for subpage
  btrfs: use the same @uptodate variable for end_bio_extent_readpage()
  btrfs: remove processed_extent infrastructure

 fs/btrfs/extent_io.c | 89 +++++---------------------------------------
 1 file changed, 10 insertions(+), 79 deletions(-)

Comments

David Sterba May 30, 2023, 12:48 p.m. UTC | #1
On Tue, May 30, 2023 at 09:45:26AM +0800, Qu Wenruo wrote:
> Changelog:
> v2:
> - Fix an offset-by-one bug in the 3rd patch
>   Unlock extent range end is inclusive.
> 
> During my hunt on the subpage uptodate desync bugs reported from Matt, I
> exposed several PageUptodate usage which results inefficiency for
> subpage cases.
> 
> Those two are fixed in the first two patches.
> 
> Furthermore I found processed_extent infrastructure is no longer needed
> especially after all the csum verification is moved to storage layer (or
> bio.c inside btrfs), we can easily unlock the full range without the
> need for the infrastructure.
> 
> Thus the last patch would delete the processed_extent infrastructure
> completely.
> 
> Qu Wenruo (3):
>   btrfs: make alloc_extent_buffer() handle previously uptodate range
>     more efficient for subpage
>   btrfs: use the same @uptodate variable for end_bio_extent_readpage()

1 and 2 added to devel.

>   btrfs: remove processed_extent infrastructure

As Christoph pointed out this needs some investigation.