Commit ad357938 authored by Christoph Hellwig's avatar Christoph Hellwig Committed by David Sterba
Browse files

btrfs: do not return errors from submit_bio_hook_t instances



Both btrfs_repair_one_sector and submit_bio_one as the direct caller of
one of the instances ignore errors as they expect the methods themselves
to call ->bi_end_io on error.  Remove the unused and dangerous return
value.

Reviewed-by: default avatarQu Wenruo <wqu@suse.com>
Reviewed-by: default avatarNikolay Borisov <nborisov@suse.com>
Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
Reviewed-by: default avatarDavid Sterba <dsterba@suse.com>
Signed-off-by: default avatarDavid Sterba <dsterba@suse.com>
parent cb4411dd
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -3250,7 +3250,7 @@ void btrfs_inode_safe_disk_i_size_write(struct btrfs_inode *inode, u64 new_i_siz
u64 btrfs_file_extent_end(const struct btrfs_path *path);

/* inode.c */
blk_status_t btrfs_submit_data_bio(struct inode *inode, struct bio *bio,
void btrfs_submit_data_bio(struct inode *inode, struct bio *bio,
			   int mirror_num, unsigned long bio_flags);
unsigned int btrfs_verify_data_csum(struct btrfs_bio *bbio,
				    u32 bio_offset, struct page *page,
+1 −1
Original line number Diff line number Diff line
@@ -71,7 +71,7 @@ struct btrfs_fs_info;
struct io_failure_record;
struct extent_io_tree;

typedef blk_status_t (submit_bio_hook_t)(struct inode *inode, struct bio *bio,
typedef void (submit_bio_hook_t)(struct inode *inode, struct bio *bio,
					 int mirror_num,
					 unsigned long bio_flags);

+8 −15
Original line number Diff line number Diff line
@@ -2570,9 +2570,8 @@ static blk_status_t extract_ordered_extent(struct btrfs_inode *inode,
 *
 *    c-3) otherwise:			async submit
 */
blk_status_t btrfs_submit_data_bio(struct inode *inode, struct bio *bio,
void btrfs_submit_data_bio(struct inode *inode, struct bio *bio,
			   int mirror_num, unsigned long bio_flags)

{
	struct btrfs_fs_info *fs_info = btrfs_sb(inode->i_sb);
	struct btrfs_root *root = BTRFS_I(inode)->root;
@@ -2609,7 +2608,7 @@ blk_status_t btrfs_submit_data_bio(struct inode *inode, struct bio *bio,
			 */
			btrfs_submit_compressed_read(inode, bio, mirror_num,
						     bio_flags);
			return BLK_STS_OK;
			return;
		} else {
			/*
			 * Lookup bio sums does extra checks around whether we
@@ -2643,7 +2642,6 @@ blk_status_t btrfs_submit_data_bio(struct inode *inode, struct bio *bio,
		bio->bi_status = ret;
		bio_endio(bio);
	}
	return ret;
}

/*
@@ -7787,25 +7785,20 @@ static void btrfs_dio_private_put(struct btrfs_dio_private *dip)
	kfree(dip);
}

static blk_status_t submit_dio_repair_bio(struct inode *inode, struct bio *bio,
					  int mirror_num,
					  unsigned long bio_flags)
static void submit_dio_repair_bio(struct inode *inode, struct bio *bio,
				  int mirror_num, unsigned long bio_flags)
{
	struct btrfs_dio_private *dip = bio->bi_private;
	struct btrfs_fs_info *fs_info = btrfs_sb(inode->i_sb);
	blk_status_t ret;

	BUG_ON(bio_op(bio) == REQ_OP_WRITE);

	ret = btrfs_bio_wq_end_io(fs_info, bio, BTRFS_WQ_ENDIO_DATA);
	if (ret)
		return ret;
	if (btrfs_bio_wq_end_io(fs_info, bio, BTRFS_WQ_ENDIO_DATA))
		return;

	refcount_inc(&dip->refs);
	ret = btrfs_map_bio(fs_info, bio, mirror_num);
	if (ret)
	if (btrfs_map_bio(fs_info, bio, mirror_num))
		refcount_dec(&dip->refs);
	return ret;
}

static blk_status_t btrfs_check_read_dio_bio(struct btrfs_dio_private *dip,