btrfs: add missing path cache update during fiemap
authorFilipe Manana <fdmanana@suse.com>
Mon, 3 Oct 2022 14:57:30 +0000 (15:57 +0100)
committerDavid Sterba <dsterba@suse.com>
Fri, 7 Oct 2022 15:55:00 +0000 (17:55 +0200)
commit96dbcc0072acf4f9565a16e8da96e57e5cee1068
tree9be0247eea88deca6d49badd2379f8de403a08fb
parentcbddcc4fa3443fe8cfb2ff8e210deb1f6a0eea38
btrfs: add missing path cache update during fiemap

When looking the stored result for a cached path node, if the stored
result is valid and has a value of true, we must update all the nodes for
all levels below it with a result of true as well. This is necessary when
moving from one leaf in the fs tree to the next one, as well as when
moving from a node at any level to the next node at the same level.

Currently this logic is missing as it was somehow forgotten by a recent
patch with the subject: "btrfs: speedup checking for extent sharedness
during fiemap".

This adds the missing logic, which is the counter part to what we do
when adding a shared node to the cache at store_backref_shared_cache().

Fixes: 12a824dc67a6 ("btrfs: speedup checking for extent sharedness during fiemap")
Signed-off-by: Filipe Manana <fdmanana@suse.com>
Signed-off-by: David Sterba <dsterba@suse.com>
fs/btrfs/backref.c