summaryrefslogtreecommitdiffstats
path: root/fs/btrfs/file.c
diff options
context:
space:
mode:
authorJosef Bacik <jbacik@fb.com>2014-01-24 14:05:42 -0500
committerChris Mason <clm@fb.com>2014-01-28 13:20:28 -0800
commit7ef81ac86c8a44ab9f4e6e04e1f4c9ea53615b8a (patch)
tree70ea7ddd1d3285530f35568c62d1da3fd88b9099 /fs/btrfs/file.c
parent3a6d75e846224542151e9ff186cb89df5a6ca2c6 (diff)
downloadop-kernel-dev-7ef81ac86c8a44ab9f4e6e04e1f4c9ea53615b8a.zip
op-kernel-dev-7ef81ac86c8a44ab9f4e6e04e1f4c9ea53615b8a.tar.gz
Btrfs: only process as many file extents as there are refs
The backref walking code will search down to the key it is looking for and then proceed to walk _all_ of the extents on the file until it hits the end. This is suboptimal with large files, we only need to look for as many extents as we have references for that inode. I have a testcase that creates a randomly written 4 gig file and before this patch it took 6min 30sec to do the initial send, with this patch it takes 2min 30sec to do the intial send. Thanks, Signed-off-by: Josef Bacik <jbacik@fb.com> Signed-off-by: Chris Mason <clm@fb.com>
Diffstat (limited to 'fs/btrfs/file.c')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud