]> git.baikalelectronics.ru Git - kernel.git/commit
Btrfs: make free space caching faster with many non-inline extent references
authorLiu Bo <bo.li.liu@oracle.com>
Thu, 11 Jul 2013 09:51:15 +0000 (17:51 +0800)
committerChris Mason <chris.mason@fusionio.com>
Sun, 1 Sep 2013 11:57:24 +0000 (07:57 -0400)
commit9afc780e7deaa19ce040140cddf57d7dfa82cecb
tree423ee82e53b79dcb322036f4a2dea7690164e311
parent45929a285f6d6f25673a44814f8ae91c13466089
Btrfs: make free space caching faster with many non-inline extent references

So to cache free space, we iterate every extent item to gather free space info.

When we have say 10,000 non-inline extent refs(such as BTRFS_EXTENT_DATA_REF),
it takes quite a long time, and since inline extent refs and non-inline ones have
same objectid in their keys, we can just re-search the tree with the next address
to skip non-inline references.

(This is found by dedup feature because dedup extents can end up with many
non-inline extent refs.)

Signed-off-by: Liu Bo <bo.li.liu@oracle.com>
Signed-off-by: Josef Bacik <jbacik@fusionio.com>
Signed-off-by: Chris Mason <chris.mason@fusionio.com>
fs/btrfs/extent-tree.c