• Josef Bacik's avatar
    btrfs: wakeup cleaner thread when adding delayed iput · fd340d0f
    Josef Bacik authored
    The cleaner thread usually takes care of delayed iputs, with the
    exception of the btrfs_end_transaction_throttle path.  Delaying iputs
    means we are potentially delaying the eviction of an inode and it's
    respective space.  The cleaner thread only gets woken up every 30
    seconds, or when we require space.  If there are a lot of inodes that
    need to be deleted we could induce a serious amount of latency while we
    wait for these inodes to be evicted.  So instead wakeup the cleaner if
    it's not already awake to process any new delayed iputs we add to the
    list.  If we suddenly need space we will less likely be backed up
    behind a bunch of inodes that are waiting to be deleted, and we could
    possibly free space before we need to get into the flushing logic which
    will save us some latency.
    Reviewed-by: default avatarFilipe Manana <fdmanana@suse.com>
    Signed-off-by: default avatarJosef Bacik <josef@toxicpanda.com>
    Signed-off-by: default avatarDavid Sterba <dsterba@suse.com>
    fd340d0f
disk-io.c 124 KB