Re: [PATCH AUTOSEL 4.19 071/219] btrfs: Check for missing device before bio submission in btrfs_map_bio

From: David Sterba
Date: Fri Nov 22 2019 - 06:33:41 EST


On Fri, Nov 22, 2019 at 12:46:43AM -0500, Sasha Levin wrote:
> From: Nikolay Borisov <nborisov@xxxxxxxx>
>
> [ Upstream commit fc8a168aa9ab1680c2bd52bf9db7c994e0f2524f ]
>
> Before btrfs_map_bio submits all stripe bios it does a number of checks
> to ensure the device for every stripe is present. However, it doesn't do
> a DEV_STATE_MISSING check, instead this is relegated to the lower level
> btrfs_schedule_bio (in the async submission case, sync submission
> doesn't check DEV_STATE_MISSING at all). Additionally
> btrfs_schedule_bios does the duplicate device->bdev check which has
> already been performed in btrfs_map_bio.
>
> This patch moves the DEV_STATE_MISSING check in btrfs_map_bio and
> removes the duplicate device->bdev check. Doing so ensures that no bio
> cloning/submission happens for both async/sync requests in the face of
> missing device. This makes the async io submission path slightly shorter
> in terms of instruction count. No functional changes.
^^^^^^^^^^^^^^^^^^^^^

This should be a strong indication that the patch is not suitable for
autosel/stable, please remove it. Thanks.