btrfs: add cached_state to read_extent_buffer_subpage
authorJosef Bacik <josef@toxicpanda.com>
Fri, 30 Sep 2022 20:45:13 +0000 (16:45 -0400)
committerDavid Sterba <dsterba@suse.com>
Mon, 5 Dec 2022 17:00:36 +0000 (18:00 +0100)
commite5e886bad9e9e87b767ade3884faec1cfdec9b43
treee9aff5b62a9b96b17cd526b9d71b5c00c1fba181
parent123a7f008c9e2b25b451c116620f1f6c77bd6b2b
btrfs: add cached_state to read_extent_buffer_subpage

We don't use a cached state here at all, which generally makes sense as
async reads are going to unlock at endio time.  However for blocking
reads we will call wait_extent_bit() for our range.  Since the
lock_extent() stuff will return the cached_state for the start of the
range this is a helpful optimization to have for this case, we'll have
the exact state we want to wait on.  Add a cached state here and simply
throw it away if we're a non-blocking read, otherwise we'll get a small
improvement by eliminating some tree searches.

Reviewed-by: Filipe Manana <fdmanana@suse.com>
Signed-off-by: Josef Bacik <josef@toxicpanda.com>
Reviewed-by: David Sterba <dsterba@suse.com>
Signed-off-by: David Sterba <dsterba@suse.com>
fs/btrfs/extent_io.c