OSDN Git Service

Btrfs: take into account total references when doing backref lookup
authorJosef Bacik <jbacik@fb.com>
Wed, 19 Mar 2014 17:35:14 +0000 (13:35 -0400)
committerChris Mason <clm@fb.com>
Fri, 21 Mar 2014 22:28:09 +0000 (15:28 -0700)
commit4485386853454f184235c8a973b29fa7fa522eb1
tree6f0569ba8c5f10bc047f9e7326f18eae56edfe78
parentbfa7e1f8be4bd7118e485a42cc8889530d415d05
Btrfs: take into account total references when doing backref lookup

I added an optimization for large files where we would stop searching for
backrefs once we had looked at the number of references we currently had for
this extent.  This works great most of the time, but for snapshots that point to
this extent and has changes in the original root this assumption falls on it
face.  So keep track of any delayed ref mods made and add in the actual ref
count as reported by the extent item and use that to limit how far down an inode
we'll search for extents.  Thanks,

Reportedy-by: Hugo Mills <hugo@carfax.org.uk>
Signed-off-by: Josef Bacik <jbacik@fb.com>
Reported-by: Hugo Mills <hugo@carfax.org.uk>
Tested-by: Hugo Mills <hugo@carfax.org.uk>
Signed-off-by: Chris Mason <clm@fb.com>
fs/btrfs/backref.c