提交 3892ac90 编写于 作者: L Liu Bo 提交者: David Sterba

Btrfs: unify naming of btrfs_io_bio

All dio endio functions are using io_bio for struct btrfs_io_bio, this
makes btrfs_submit_direct to follow this convention.
Signed-off-by: NLiu Bo <bo.li.liu@oracle.com>
Reviewed-by: NDavid Sterba <dsterba@suse.com>
Signed-off-by: NDavid Sterba <dsterba@suse.com>
上级 11b56165
......@@ -8577,16 +8577,16 @@ static void btrfs_submit_direct(struct bio *dio_bio, struct inode *inode,
loff_t file_offset)
{
struct btrfs_dio_private *dip = NULL;
struct bio *io_bio = NULL;
struct btrfs_io_bio *btrfs_bio;
struct bio *bio = NULL;
struct btrfs_io_bio *io_bio;
int skip_sum;
bool write = (bio_op(dio_bio) == REQ_OP_WRITE);
int ret = 0;
skip_sum = BTRFS_I(inode)->flags & BTRFS_INODE_NODATASUM;
io_bio = btrfs_bio_clone(dio_bio, GFP_NOFS);
if (!io_bio) {
bio = btrfs_bio_clone(dio_bio, GFP_NOFS);
if (!bio) {
ret = -ENOMEM;
goto free_ordered;
}
......@@ -8602,17 +8602,17 @@ static void btrfs_submit_direct(struct bio *dio_bio, struct inode *inode,
dip->logical_offset = file_offset;
dip->bytes = dio_bio->bi_iter.bi_size;
dip->disk_bytenr = (u64)dio_bio->bi_iter.bi_sector << 9;
io_bio->bi_private = dip;
dip->orig_bio = io_bio;
bio->bi_private = dip;
dip->orig_bio = bio;
dip->dio_bio = dio_bio;
atomic_set(&dip->pending_bios, 0);
btrfs_bio = btrfs_io_bio(io_bio);
btrfs_bio->logical = file_offset;
io_bio = btrfs_io_bio(bio);
io_bio->logical = file_offset;
if (write) {
io_bio->bi_end_io = btrfs_endio_direct_write;
bio->bi_end_io = btrfs_endio_direct_write;
} else {
io_bio->bi_end_io = btrfs_endio_direct_read;
bio->bi_end_io = btrfs_endio_direct_read;
dip->subio_endio = btrfs_subio_endio_read;
}
......@@ -8635,8 +8635,8 @@ static void btrfs_submit_direct(struct bio *dio_bio, struct inode *inode,
if (!ret)
return;
if (btrfs_bio->end_io)
btrfs_bio->end_io(btrfs_bio, ret);
if (io_bio->end_io)
io_bio->end_io(io_bio, ret);
free_ordered:
/*
......@@ -8648,16 +8648,16 @@ static void btrfs_submit_direct(struct bio *dio_bio, struct inode *inode,
* same as btrfs_endio_direct_[write|read] because we can't call these
* callbacks - they require an allocated dip and a clone of dio_bio.
*/
if (io_bio && dip) {
io_bio->bi_error = -EIO;
bio_endio(io_bio);
if (bio && dip) {
bio->bi_error = -EIO;
bio_endio(bio);
/*
* The end io callbacks free our dip, do the final put on io_bio
* The end io callbacks free our dip, do the final put on bio
* and all the cleanup and final put for dio_bio (through
* dio_end_io()).
*/
dip = NULL;
io_bio = NULL;
bio = NULL;
} else {
if (write)
__endio_write_update_ordered(inode,
......@@ -8675,8 +8675,8 @@ static void btrfs_submit_direct(struct bio *dio_bio, struct inode *inode,
*/
dio_end_io(dio_bio, ret);
}
if (io_bio)
bio_put(io_bio);
if (bio)
bio_put(bio);
kfree(dip);
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册