page-io.c (aa7eb8e78d8ecd6cd0475d86ea8385ff9cb47ece) | page-io.c (60ad4466821a96913a9b567115e194ed1087c2d7) |
---|---|
1/* 2 * linux/fs/ext4/page-io.c 3 * 4 * This contains the new page_io functions for ext4 5 * 6 * Written by Theodore Ts'o, 2010. 7 */ 8 --- 271 unchanged lines hidden (view full) --- 280 ext4_io_end_t *io_end; 281 struct page *page = bh->b_page; 282 int nvecs = bio_get_nr_vecs(bh->b_bdev); 283 struct bio *bio; 284 285 io_end = ext4_init_io_end(inode, GFP_NOFS); 286 if (!io_end) 287 return -ENOMEM; | 1/* 2 * linux/fs/ext4/page-io.c 3 * 4 * This contains the new page_io functions for ext4 5 * 6 * Written by Theodore Ts'o, 2010. 7 */ 8 --- 271 unchanged lines hidden (view full) --- 280 ext4_io_end_t *io_end; 281 struct page *page = bh->b_page; 282 int nvecs = bio_get_nr_vecs(bh->b_bdev); 283 struct bio *bio; 284 285 io_end = ext4_init_io_end(inode, GFP_NOFS); 286 if (!io_end) 287 return -ENOMEM; |
288 do { 289 bio = bio_alloc(GFP_NOIO, nvecs); 290 nvecs >>= 1; 291 } while (bio == NULL); 292 | 288 bio = bio_alloc(GFP_NOIO, min(nvecs, BIO_MAX_PAGES)); |
293 bio->bi_sector = bh->b_blocknr * (bh->b_size >> 9); 294 bio->bi_bdev = bh->b_bdev; 295 bio->bi_private = io->io_end = io_end; 296 bio->bi_end_io = ext4_end_bio; 297 298 io_end->offset = (page->index << PAGE_CACHE_SHIFT) + bh_offset(bh); 299 300 io->io_bio = bio; --- 117 unchanged lines hidden --- | 289 bio->bi_sector = bh->b_blocknr * (bh->b_size >> 9); 290 bio->bi_bdev = bh->b_bdev; 291 bio->bi_private = io->io_end = io_end; 292 bio->bi_end_io = ext4_end_bio; 293 294 io_end->offset = (page->index << PAGE_CACHE_SHIFT) + bh_offset(bh); 295 296 io->io_bio = bio; --- 117 unchanged lines hidden --- |