]> git.baikalelectronics.ru Git - kernel.git/commit
Btrfs: make find_first_extent_bit be able to cache any state
authorFilipe Manana <fdmanana@suse.com>
Mon, 13 Oct 2014 11:28:38 +0000 (12:28 +0100)
committerChris Mason <clm@fb.com>
Fri, 21 Nov 2014 01:14:29 +0000 (17:14 -0800)
commitd6ca3b89f223071b38e67cd9569d2f1fc3f3f25f
tree315b8703ca6c3317996de05a55ceb252257cbcff
parentf7e371e48aab6530a8a55629aa14533a5b504912
Btrfs: make find_first_extent_bit be able to cache any state

Right now the only caller of find_first_extent_bit() that is interested
in caching extent states (transaction or log commit), never gets an extent
state cached. This is because find_first_extent_bit() only caches states
that have at least one of the flags EXTENT_IOBITS or EXTENT_BOUNDARY, and
the transaction/log commit caller always passes a tree that doesn't have
ever extent states with any of those flags (they can only have one of the
following flags: EXTENT_DIRTY, EXTENT_NEW or EXTENT_NEED_WAIT).

This change together with the following one in the patch series (titled
"Btrfs: avoid returning -ENOMEM in convert_extent_bit() too early") will
help reduce significantly the chances of calls to convert_extent_bit()
fail with -ENOMEM when called from the transaction/log commit code.

Signed-off-by: Filipe Manana <fdmanana@suse.com>
Signed-off-by: Chris Mason <clm@fb.com>
fs/btrfs/extent_io.c
fs/btrfs/transaction.c