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)
commit52ee28d249571616c80df7562bd4412ac253899a
tree423ee82e53b79dcb322036f4a2dea7690164e311
parentee3441b49092000402748f5345ee0a3d4c8ac04e
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