diff options
author | Josef Bacik <jbacik@fb.com> | 2014-01-24 14:05:42 -0500 |
---|---|---|
committer | Chris Mason <clm@fb.com> | 2014-01-28 13:20:28 -0800 |
commit | 7ef81ac86c8a44ab9f4e6e04e1f4c9ea53615b8a (patch) | |
tree | 70ea7ddd1d3285530f35568c62d1da3fd88b9099 /fs/btrfs/file.c | |
parent | 3a6d75e846224542151e9ff186cb89df5a6ca2c6 (diff) | |
download | op-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