Lines Matching refs:dip

7888 	struct btrfs_dio_private *dip = bio->bi_private;  in btrfs_endio_direct_read()  local
7889 struct inode *inode = dip->inode; in btrfs_endio_direct_read()
7893 if (dip->flags & BTRFS_DIO_ORIG_BIO_SUBMITTED) in btrfs_endio_direct_read()
7896 unlock_extent(&BTRFS_I(inode)->io_tree, dip->logical_offset, in btrfs_endio_direct_read()
7897 dip->logical_offset + dip->bytes - 1); in btrfs_endio_direct_read()
7898 dio_bio = dip->dio_bio; in btrfs_endio_direct_read()
7900 kfree(dip); in btrfs_endio_direct_read()
7914 struct btrfs_dio_private *dip = bio->bi_private; in btrfs_endio_direct_write() local
7915 struct inode *inode = dip->inode; in btrfs_endio_direct_write()
7918 u64 ordered_offset = dip->logical_offset; in btrfs_endio_direct_write()
7919 u64 ordered_bytes = dip->bytes; in btrfs_endio_direct_write()
7941 if (ordered_offset < dip->logical_offset + dip->bytes) { in btrfs_endio_direct_write()
7942 ordered_bytes = dip->logical_offset + dip->bytes - in btrfs_endio_direct_write()
7948 dio_bio = dip->dio_bio; in btrfs_endio_direct_write()
7950 kfree(dip); in btrfs_endio_direct_write()
7972 struct btrfs_dio_private *dip = bio->bi_private; in btrfs_end_dio_bio() local
7975 btrfs_warn(BTRFS_I(dip->inode)->root->fs_info, in btrfs_end_dio_bio()
7977 btrfs_ino(dip->inode), bio->bi_rw, in btrfs_end_dio_bio()
7981 if (dip->subio_endio) in btrfs_end_dio_bio()
7982 err = dip->subio_endio(dip->inode, btrfs_io_bio(bio), err); in btrfs_end_dio_bio()
7985 dip->errors = 1; in btrfs_end_dio_bio()
7995 if (!atomic_dec_and_test(&dip->pending_bios)) in btrfs_end_dio_bio()
7998 if (dip->errors) { in btrfs_end_dio_bio()
7999 bio_io_error(dip->orig_bio); in btrfs_end_dio_bio()
8001 set_bit(BIO_UPTODATE, &dip->dio_bio->bi_flags); in btrfs_end_dio_bio()
8002 bio_endio(dip->orig_bio, 0); in btrfs_end_dio_bio()
8017 struct btrfs_dio_private *dip, in btrfs_lookup_and_bind_dio_csum() argument
8022 struct btrfs_io_bio *orig_io_bio = btrfs_io_bio(dip->orig_bio); in btrfs_lookup_and_bind_dio_csum()
8030 if (dip->logical_offset == file_offset) { in btrfs_lookup_and_bind_dio_csum()
8031 ret = btrfs_lookup_bio_sums_dio(root, inode, dip->orig_bio, in btrfs_lookup_and_bind_dio_csum()
8037 if (bio == dip->orig_bio) in btrfs_lookup_and_bind_dio_csum()
8040 file_offset -= dip->logical_offset; in btrfs_lookup_and_bind_dio_csum()
8051 struct btrfs_dio_private *dip = bio->bi_private; in __btrfs_submit_dio_bio() local
8087 ret = btrfs_lookup_and_bind_dio_csum(root, inode, dip, bio, in __btrfs_submit_dio_bio()
8099 static int btrfs_submit_direct_hook(int rw, struct btrfs_dio_private *dip, in btrfs_submit_direct_hook() argument
8102 struct inode *inode = dip->inode; in btrfs_submit_direct_hook()
8105 struct bio *orig_bio = dip->orig_bio; in btrfs_submit_direct_hook()
8108 u64 file_offset = dip->logical_offset; in btrfs_submit_direct_hook()
8123 dip->flags |= BTRFS_DIO_ORIG_BIO_SUBMITTED; in btrfs_submit_direct_hook()
8137 bio->bi_private = dip; in btrfs_submit_direct_hook()
8140 atomic_inc(&dip->pending_bios); in btrfs_submit_direct_hook()
8152 atomic_inc(&dip->pending_bios); in btrfs_submit_direct_hook()
8158 atomic_dec(&dip->pending_bios); in btrfs_submit_direct_hook()
8172 bio->bi_private = dip; in btrfs_submit_direct_hook()
8199 dip->errors = 1; in btrfs_submit_direct_hook()
8205 if (atomic_dec_and_test(&dip->pending_bios)) in btrfs_submit_direct_hook()
8206 bio_io_error(dip->orig_bio); in btrfs_submit_direct_hook()
8216 struct btrfs_dio_private *dip; in btrfs_submit_direct() local
8231 dip = kzalloc(sizeof(*dip), GFP_NOFS); in btrfs_submit_direct()
8232 if (!dip) { in btrfs_submit_direct()
8237 dip->private = dio_bio->bi_private; in btrfs_submit_direct()
8238 dip->inode = inode; in btrfs_submit_direct()
8239 dip->logical_offset = file_offset; in btrfs_submit_direct()
8240 dip->bytes = dio_bio->bi_iter.bi_size; in btrfs_submit_direct()
8241 dip->disk_bytenr = (u64)dio_bio->bi_iter.bi_sector << 9; in btrfs_submit_direct()
8242 io_bio->bi_private = dip; in btrfs_submit_direct()
8243 dip->orig_bio = io_bio; in btrfs_submit_direct()
8244 dip->dio_bio = dio_bio; in btrfs_submit_direct()
8245 atomic_set(&dip->pending_bios, 0); in btrfs_submit_direct()
8253 dip->subio_endio = btrfs_subio_endio_read; in btrfs_submit_direct()
8256 ret = btrfs_submit_direct_hook(rw, dip, skip_sum); in btrfs_submit_direct()