Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 02a93208 authored by Linus Torvalds's avatar Linus Torvalds
Browse files

Merge branch 'for-2.6.22' of git://git.kernel.dk/data/git/linux-2.6-block

* 'for-2.6.22' of git://git.kernel.dk/data/git/linux-2.6-block:
  [PATCH] ll_rw_blk: fix missing bounce in blk_rq_map_kern()
  [PATCH] splice: always call into page_cache_readahead()
  [PATCH] splice(): fix interaction with readahead
parents 18062a91 821de3a2
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -2558,6 +2558,7 @@ int blk_rq_map_kern(request_queue_t *q, struct request *rq, void *kbuf,
		bio->bi_rw |= (1 << BIO_RW);

	blk_rq_bio_prep(q, rq, bio);
	blk_queue_bounce(q, &rq->bio);
	rq->buffer = rq->data = NULL;
	return 0;
}
+8 −9
Original line number Diff line number Diff line
@@ -289,11 +289,9 @@ __generic_file_splice_read(struct file *in, loff_t *ppos,
		nr_pages = PIPE_BUFFERS;

	/*
	 * Initiate read-ahead on this page range. however, don't call into
	 * read-ahead if this is a non-zero offset (we are likely doing small
	 * chunk splice and the page is already there) for a single page.
	 * Don't try to 2nd guess the read-ahead logic, call into
	 * page_cache_readahead() like the page cache reads would do.
	 */
	if (!loff || nr_pages > 1)
	page_cache_readahead(mapping, &in->f_ra, in, index, nr_pages);

	/*
@@ -378,9 +376,10 @@ __generic_file_splice_read(struct file *in, loff_t *ppos,
			 * If in nonblock mode then dont block on waiting
			 * for an in-flight io page
			 */
			if (flags & SPLICE_F_NONBLOCK)
			if (flags & SPLICE_F_NONBLOCK) {
				if (TestSetPageLocked(page))
					break;

			} else
				lock_page(page);

			/*