• Qu Wenruo's avatar
    btrfs: subpage: add bitmap for PageChecked flag · e4f94347
    Qu Wenruo authored
    Although in btrfs we have very limited usage of PageChecked flag, it's
    still some page flag not yet subpage compatible.
    
    Fix it by introducing btrfs_subpage::checked_offset to do the convert.
    
    For most call sites, especially for free-space cache, COW fixup and
    btrfs_invalidatepage(), they all work in full page mode anyway.
    
    For other call sites, they work as subpage compatible mode.
    
    Some call sites need extra modification:
    
    - btrfs_drop_pages()
      Needs extra parameter to get the real range we need to clear checked
      flag.
    
      Also since btrfs_drop_pages() will accept pages beyond the dirtied
      range, update btrfs_subpage_clamp_range() to handle such case
      by setting @len to 0 if the page is beyond target range.
    
    - btrfs_invalidatepage()
      We need to call subpage helper before calling __btrfs_releasepage(),
      or it will trigger ASSERT() as page->private will be cleared.
    
    - btrfs_verify_data_csum()
      In theory we don't need the io_bio->csum check anymore, but it's
      won't hurt.  Just change the comment.
    Signed-off-by: default avatarQu Wenruo <wqu@suse.com>
    Signed-off-by: default avatarDavid Sterba <dsterba@suse.com>
    e4f94347
reflink.c 27.4 KB