]> www.infradead.org Git - users/jedix/linux-maple.git/commit
Btrfs: add RAID 5/6 BTRFS_RBIO_REBUILD_MISSING operation
authorOmar Sandoval <osandov@fb.com>
Fri, 19 Jun 2015 18:52:50 +0000 (11:52 -0700)
committerChuck Anderson <chuck.anderson@oracle.com>
Sun, 30 Oct 2016 23:59:08 +0000 (16:59 -0700)
commit28ed3031bea3170917d791a95233bb40894a660d
treec9648b2777bae859a51b2a716cf11c38387e3007
parent8b4bbe39408427da00ea102060b74f17849c6a3e
Btrfs: add RAID 5/6 BTRFS_RBIO_REBUILD_MISSING operation

The current RAID 5/6 recovery code isn't quite prepared to handle
missing devices. In particular, it expects a bio that we previously
attempted to use in the read path, meaning that it has valid pages
allocated. However, missing devices have a NULL blkdev, and we can't
call bio_add_page() on a bio with a NULL blkdev. We could do manual
manipulation of bio->bi_io_vec, but that's pretty gross. So instead, add
a separate path that allows us to manually add pages to the rbio.

Signed-off-by: Omar Sandoval <osandov@fb.com>
Signed-off-by: Chris Mason <clm@fb.com>
Orabug: 24447930
Signed-off-by: Divya Indi <divya.indi@oracle.com>
(cherry picked from commit b4ee1782686d5b7a97826d67fdeaefaedbca23ce)
fs/btrfs/raid56.c
fs/btrfs/raid56.h
fs/btrfs/scrub.c