diff options
-rw-r--r-- | fs/btrfs/reada.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/fs/btrfs/reada.c b/fs/btrfs/reada.c index 30947f923620..09230cf3a244 100644 --- a/fs/btrfs/reada.c +++ b/fs/btrfs/reada.c | |||
@@ -428,8 +428,13 @@ static struct reada_extent *reada_find_extent(struct btrfs_root *root, | |||
428 | continue; | 428 | continue; |
429 | } | 429 | } |
430 | if (!dev->bdev) { | 430 | if (!dev->bdev) { |
431 | /* cannot read ahead on missing device */ | 431 | /* |
432 | continue; | 432 | * cannot read ahead on missing device, but for RAID5/6, |
433 | * REQ_GET_READ_MIRRORS return 1. So don't skip missing | ||
434 | * device for such case. | ||
435 | */ | ||
436 | if (nzones > 1) | ||
437 | continue; | ||
433 | } | 438 | } |
434 | if (dev_replace_is_ongoing && | 439 | if (dev_replace_is_ongoing && |
435 | dev == fs_info->dev_replace.tgtdev) { | 440 | dev == fs_info->dev_replace.tgtdev) { |