• Josef Bacik's avatar
    Btrfs: do not use btrfs_end_transaction_throttle everywhere · 7ad85bb7
    Josef Bacik authored
    A user reported a problem where things like open with O_CREAT would take up to
    30 seconds when he had nfs activity on the same mount.  This is because all of
    our quick metadata operations, like create, symlink etc all do
    btrfs_end_transaction_throttle, which if the transaction is blocked will wait
    for the commit to complete before it returns.  This adds a ridiculous amount of
    latency and isn't really needed.  The normal btrfs_end_transaction will mark the
    transaction as blocked and wake the transaction kthread up if it thinks the
    transaction needs to end (this being in the running out of global reserve space
    scenario), and this is all that is really needed since we've already done
    everything we're going to do, we just need to return.  This should help people
    with the latency they were seeing when using synchronous heavy workloads.
    Thanks,
    Signed-off-by: default avatarJosef Bacik <josef@redhat.com>
    Signed-off-by: default avatarChris Mason <chris.mason@oracle.com>
    7ad85bb7
xattr.c 10.8 KB