search for: dio_bio_submit

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