Displaying 4 results from an estimated 4 matches for "dio_bio_submit".
2010 Sep 02
3
[patch] O_DIRECT: fix the splitting up of contiguous I/O
...imply uses the correct variable when calculating whether
> there is a mismatch between contiguous logical blocks and contiguous
> physical blocks (as described in the comments).
>
> I also switched the if conditional following this check to an else if,
> to ensure that we never call dio_bio_submit twice for the same dio (in
> theory, this should not happen, anyway).
>
> I've tested this by running blktrace and verifying that a 64KB I/O was
> submitted as a single I/O. I also ran the patched kernel through
> xfstests' aio tests using xfs, ext4 (with 1k and 4k block si...
2010 May 12
0
[PATCH 2/4] direct-io: add a hook for the fs to provide its own submit_bio function V3
...*bdev,
sector_t first_sector, int nr_vecs)
@@ -316,6 +330,7 @@ dio_bio_alloc(struct dio *dio, struct block_device *bdev,
bio->bi_end_io = dio_bio_end_io;
dio->bio = bio;
+ dio->logical_offset_in_bio = dio->cur_page_fs_offset;
return 0;
}
@@ -340,10 +355,15 @@ static void dio_bio_submit(struct dio *dio)
if (dio->is_async && dio->rw == READ)
bio_set_pages_dirty(bio);
- submit_bio(dio->rw, bio);
+ if (!dio->submit_io)
+ submit_bio(dio->rw, bio);
+ else
+ dio->submit_io(dio->rw, bio, dio->inode,
+ dio->logical_offset_in_bio);
d...
2010 Nov 02
2
[RFC][PATCH] direct-io: btrfs: avoid splitting dio requests for non-btrfs filesystems
...e_t *end_io; /* IO completion function */
@@ -659,7 +661,7 @@ static int dio_send_cur_page(struct dio *dio)
* Submit now if the underlying fs is about to perform a
* metadata read
*/
- else if (dio->boundary)
+ else if (dio->separate_meta_reads && dio->boundary)
dio_bio_submit(dio);
}
@@ -1245,6 +1247,11 @@ __blockdev_direct_IO(int rw, struct kiocb *iocb, struct inode *inode,
dio->is_async = !is_sync_kiocb(iocb) && !((rw & WRITE) &&
(end > i_size_read(inode)));
+ /*
+ * some filesystems e.g. btrfs need to separate metadata read
+ */...
2010 May 07
6
[PATCH 1/5] fs: allow short direct-io reads to be completed via buffered IO V2
V1->V2: Check to see if our current ppos is >= i_size after a short DIO read,
just in case it was actually a short read and we need to just return.
This is similar to what already happens in the write case. If we have a short
read while doing O_DIRECT, instead of just returning, fallthrough and try to
read the rest via buffered IO. BTRFS needs this because if we encounter a
compressed or