btrfs_check_shared calls find_parent_nodes in a loop. In each iteration it passes in a share_check struct to request a check for a shared extent. The share_check::share_count must be re-initialized to zero for each iteration in order to avoid using a stale count value from the previous iteration, thus causing a false shared extent indication. Signed-off-by: Edmund Nadolski <enadolski@xxxxxxxx> --- fs/btrfs/backref.c | 1 + 1 file changed, 1 insertion(+) diff --git a/fs/btrfs/backref.c b/fs/btrfs/backref.c index 4e89598..4a33448 100644 --- a/fs/btrfs/backref.c +++ b/fs/btrfs/backref.c @@ -1519,6 +1519,7 @@ int btrfs_check_shared(struct btrfs_root *root, u64 inum, u64 bytenr) if (!node) break; bytenr = node->val; + shared.share_count = 0; cond_resched(); } -- 2.10.2 -- To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html
