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.