• Q
    btrfs: do not reset extent map members for inline extents read · a196a894
    Qu Wenruo 提交于
    Currently for inline extents read inside btrfs_get_extent(), we will
    reset several extent map members:
    
    - em->start
    
      Reset to extent_start, which is completely unnecessary.
      The extent_start and em->start should have already be zero, ensured by
      tree-checker already.
    
    - em->len
    
      Reset the round_up(copy_size, fs_info->sectorsize), which is again
      unnecessary.
    
    - em->orig_block_len
    
      Reset to em->len (sectorsize), while it is originally unset from
      btrfs_extent_item_to_extent_map().
    
      This makes no difference, as all extent map handling paths will
      ignore the orig_block_len if they found it's an inlined extent.
    
      Such inline extent orig_block_len ignoring examples can be found in
      btrfs_drop_extent_cache().
    
    - em->orig_start
    
      Reset to em->start (0), while it is originally set to EXTENT_MAP_HOLE.
    
      This makes no difference either, as all extent map handling paths will
      ignore the em->orig_start if they found it's an inline extent.
    
    Thus all these em members resetting are unnecessary.
    
    Replace them with ASSERT()s checking the only two members (block_start
    and length) that make sense.
    Signed-off-by: NQu Wenruo <wqu@suse.com>
    Signed-off-by: NDavid Sterba <dsterba@suse.com>
    a196a894
inode.c 325.3 KB