• Qu Wenruo's avatar
    btrfs: introduce read_extent_buffer_subpage() · 4012daf7
    Qu Wenruo authored
    Introduce a helper, read_extent_buffer_subpage(), to do the subpage
    extent buffer read.
    
    The difference between regular and subpage routines are:
    
    - No page locking
      Here we completely rely on extent locking.
      Page locking can reduce the concurrency greatly, as if we lock one
      page to read one extent buffer, all the other extent buffers in the
      same page will have to wait.
    
    - Extent uptodate condition
      Despite the existing PageUptodate() and EXTENT_BUFFER_UPTODATE check,
      We also need to check btrfs_subpage::uptodate_bitmap.
    
    - No page iteration
      Just one page, no need to loop, this greatly simplified the subpage
      routine.
    
    This patch only implements the bio submit part, no endio support yet.
    Reviewed-by: default avatarJosef Bacik <josef@toxicpanda.com>
    Signed-off-by: default avatarQu Wenruo <wqu@suse.com>
    Reviewed-by: default avatarDavid Sterba <dsterba@suse.com>
    Signed-off-by: default avatarDavid Sterba <dsterba@suse.com>
    4012daf7
extent_io.c 170 KB