Btrfs: do not try and lookup the file extent when finishing ordered io
authorJosef Bacik <josef@redhat.com>
Tue, 2 Feb 2010 20:50:10 +0000 (20:50 +0000)
committerChris Mason <chris.mason@oracle.com>
Thu, 4 Feb 2010 16:31:45 +0000 (11:31 -0500)
commitefd049fb26a162c3830fd3cb1001fdc09b147f3b
treecaedb4f8b1133b209360bd25ff3b2ddd1dc737c0
parent7a7965f83e89f0be506a96769938a721e4e5ae50
Btrfs: do not try and lookup the file extent when finishing ordered io

When running the following fio job

[torrent]
filename=torrent-test
rw=randwrite
size=4g
filesize=4g
bs=4k
ioengine=sync

you would see long stalls where no work was being done.  That is because we were
doing all this extra work to read in the file extent outside of the transaction,
however in the random io case this ends up hurting us because the file extents
are not there to begin with.  So axe this logic, since we end up reading in the
file extent when we go to update it anyway.  This took the fio job from 11 mb/s
with several ~10 second stalls to 24 mb/s to a couple of 1-2 second stalls.

Signed-off-by: Josef Bacik <josef@redhat.com>
Signed-off-by: Chris Mason <chris.mason@oracle.com>
fs/btrfs/inode.c