mirror of
https://github.com/torvalds/linux.git
synced 2026-05-27 00:22:00 +02:00
bcachefs: Improve want_cached_ptr()
If promote target isn't set, rebalance should still leave a cached copy on the faster device. Fall back to foreground_target if it's set, or allow a cached copy on any device if neither are set. Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
This commit is contained in:
parent
df2e19a883
commit
844f766e02
|
|
@ -1056,8 +1056,9 @@ bch2_extent_has_ptr(struct bkey_s_c k1, struct extent_ptr_decoded p1, struct bke
|
|||
static bool want_cached_ptr(struct bch_fs *c, struct bch_io_opts *opts,
|
||||
struct bch_extent_ptr *ptr)
|
||||
{
|
||||
if (!opts->promote_target ||
|
||||
!bch2_dev_in_target(c, ptr->dev, opts->promote_target))
|
||||
unsigned target = opts->promote_target ?: opts->foreground_target;
|
||||
|
||||
if (target && !bch2_dev_in_target(c, ptr->dev, target))
|
||||
return false;
|
||||
|
||||
struct bch_dev *ca = bch2_dev_rcu_noerror(c, ptr->dev);
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user