• Q
    btrfs: inode: cleanup the log-tree exceptions in btrfs_truncate_inode_items() · 82028e0a
    Qu Wenruo 提交于
    There are a lot of root owner checks in btrfs_truncate_inode_items()
    like:
    
    	if (test_bit(BTRFS_ROOT_SHAREABLE, &root->state) ||
    	    root == fs_info->tree_root)
    
    But considering that, only these trees can have INODE_ITEMs:
    
    - tree root (for v1 space cache)
    - subvolume trees
    - tree reloc trees
    - data reloc tree
    - log trees
    
    And since subvolume/tree reloc/data reloc trees all have SHAREABLE bit,
    and we're checking tree root manually, so above check is just excluding
    log trees.
    
    This patch will replace two of such checks to a simpler one:
    
    	if (root->root_key.objectid != BTRFS_TREE_LOG_OBJECTID)
    
    This would merge btrfs_drop_extent_cache() and lock_extent_bits() call
    into the same if branch.
    Signed-off-by: NQu Wenruo <wqu@suse.com>
    Signed-off-by: NDavid Sterba <dsterba@suse.com>
    82028e0a
inode.c 281.2 KB