• Filipe Manana's avatar
    btrfs: avoid search for logged i_size when logging inode if possible · a5c733a4
    Filipe Manana authored
    If we are logging that an inode exists and the inode was not logged
    before, we can avoid searching in the log tree for the inode item since we
    know it does not exists. That wastes time and adds more lock contention on
    the extent buffers of the log tree when there are other tasks that are
    logging other inodes.
    
    This patch is part of a patch set comprised of the following patches:
    
      btrfs: check if a log tree exists at inode_logged()
      btrfs: remove no longer needed checks for NULL log context
      btrfs: do not log new dentries when logging that a new name exists
      btrfs: always update the logged transaction when logging new names
      btrfs: avoid expensive search when dropping inode items from log
      btrfs: add helper to truncate inode items when logging inode
      btrfs: avoid expensive search when truncating inode items from the log
      btrfs: avoid search for logged i_size when logging inode if possible
      btrfs: avoid attempt to drop extents when logging inode for the first time
      btrfs: do not commit delayed inode when logging a file in full sync mode
    
    This is patch 8/10 and test results are listed in the change log of the
    last patch in the set.
    Signed-off-by: default avatarFilipe Manana <fdmanana@suse.com>
    Signed-off-by: default avatarDavid Sterba <dsterba@suse.com>
    a5c733a4
tree-log.c 180 KB