• Qu Wenruo's avatar
    btrfs: factor uncompressed async extent submission code into a new helper · 2b83a0ee
    Qu Wenruo authored
    Introduce a new helper, submit_uncompressed_range(), for async cow cases
    where we fallback to COW.
    
    There are some new updates introduced to the helper:
    
    - Proper locked_page detection
      It's possible that the async_extent range doesn't cover the locked
      page.  In that case we shouldn't unlock the locked page.
    
      In the new helper, we will ensure that we only unlock the locked page
      when:
    
      * The locked page covers part of the async_extent range
      * The locked page is not unlocked by cow_file_range() nor
        extent_write_locked_range()
    
      This also means extra comments are added focusing on the page locking.
    
    - Add extra comment on some rare parameter used.
      We use @unlock_page = 0 for cow_file_range(), where only two call
      sites doing the same thing, including the new helper.
    
      It's definitely worth some comments.
    Signed-off-by: default avatarQu Wenruo <wqu@suse.com>
    Signed-off-by: default avatarDavid Sterba <dsterba@suse.com>
    2b83a0ee
inode.c 308 KB