diff options
author | Nikolay Borisov <nborisov@suse.com> | 2020-09-18 16:34:37 +0300 |
---|---|---|
committer | David Sterba <dsterba@suse.com> | 2020-10-07 12:13:24 +0200 |
commit | 908930f3edad79f7e5e35b7fac09da8c54ca96b5 (patch) | |
tree | b34d81dbd9b82f9120c9f51a666eb5d2d5ab73e9 /fs/btrfs/extent_io.c | |
parent | be17b3afc4a6255008d4bbf7b1b45a36ac54bece (diff) |
btrfs: stop calling submit_bio_hook for data inodes
Instead export and rename the function to btrfs_submit_data_bio and
call it directly in submit_one_bio. This avoids paying the cost for
speculative attacks mitigations and improves code readability.
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')
-rw-r--r-- | fs/btrfs/extent_io.c | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/fs/btrfs/extent_io.c b/fs/btrfs/extent_io.c index eb6094c87a55..bf1cbc171bec 100644 --- a/fs/btrfs/extent_io.c +++ b/fs/btrfs/extent_io.c @@ -168,8 +168,12 @@ int __must_check submit_one_bio(struct bio *bio, int mirror_num, bio->bi_private = NULL; - ret = tree->ops->submit_bio_hook(tree->private_data, bio, mirror_num, - bio_flags); + if (is_data_inode(tree->private_data)) + ret = btrfs_submit_data_bio(tree->private_data, bio, mirror_num, + bio_flags); + else + ret = tree->ops->submit_bio_hook(tree->private_data, bio, + mirror_num, bio_flags); return blk_status_to_errno(ret); } @@ -2879,7 +2883,7 @@ static void end_bio_extent_readpage(struct bio *bio) if (!btrfs_submit_read_repair(inode, bio, offset, page, start - page_offset(page), start, end, mirror, - tree->ops->submit_bio_hook)) { + btrfs_submit_data_bio)) { uptodate = !bio->bi_status; offset += len; continue; |