summaryrefslogtreecommitdiffstats
path: root/fs/btrfs/extent_io.c
diff options
context:
space:
mode:
authorNikolay Borisov <nborisov@suse.com>2018-11-08 16:16:38 +0200
committerDavid Sterba <dsterba@suse.com>2018-12-17 14:51:32 +0100
commitfc8a168aa9ab1680c2bd52bf9db7c994e0f2524f (patch)
tree5053642c07010c27328e5692bed011952cc87adb /fs/btrfs/extent_io.c
parentab457246f8a45bbb3e79fd2a9c1044b5ac14ec99 (diff)
downloadtalos-obmc-linux-fc8a168aa9ab1680c2bd52bf9db7c994e0f2524f.tar.gz
talos-obmc-linux-fc8a168aa9ab1680c2bd52bf9db7c994e0f2524f.zip
btrfs: Check for missing device before bio submission in btrfs_map_bio
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. Reviewed-by: Josef Bacik <josef@toxicpanda.com> Reviewed-by: Anand Jain <anand.jain@oracle.com> Signed-off-by: Nikolay Borisov <nborisov@suse.com> Reviewed-by: David Sterba <dsterba@suse.com> Signed-off-by: David Sterba <dsterba@suse.com>
Diffstat (limited to 'fs/btrfs/extent_io.c')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud