|
@@ -2768,24 +2768,8 @@ raid56_alloc_missing_rbio(struct btrfs_fs_info *fs_info, struct bio *bio,
|
|
|
return rbio;
|
|
|
}
|
|
|
|
|
|
-static void missing_raid56_work(struct btrfs_work *work)
|
|
|
-{
|
|
|
- struct btrfs_raid_bio *rbio;
|
|
|
-
|
|
|
- rbio = container_of(work, struct btrfs_raid_bio, work);
|
|
|
- __raid56_parity_recover(rbio);
|
|
|
-}
|
|
|
-
|
|
|
-static void async_missing_raid56(struct btrfs_raid_bio *rbio)
|
|
|
-{
|
|
|
- btrfs_init_work(&rbio->work, btrfs_rmw_helper,
|
|
|
- missing_raid56_work, NULL, NULL);
|
|
|
-
|
|
|
- btrfs_queue_work(rbio->fs_info->rmw_workers, &rbio->work);
|
|
|
-}
|
|
|
-
|
|
|
void raid56_submit_missing_rbio(struct btrfs_raid_bio *rbio)
|
|
|
{
|
|
|
if (!lock_stripe_add(rbio))
|
|
|
- async_missing_raid56(rbio);
|
|
|
+ async_read_rebuild(rbio);
|
|
|
}
|