public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Tejun Heo <tj@kernel.org>
To: axboe@kernel.dk, bharrosh@panasas.com, linux-kernel@vger.kernel.org
Cc: Tejun Heo <tj@kernel.org>
Subject: [PATCH 7/8] blk-map: let blk_rq_map_user_iov() support null mapping
Date: Wed,  1 Apr 2009 20:04:43 +0900	[thread overview]
Message-ID: <1238583884-13517-8-git-send-email-tj@kernel.org> (raw)
In-Reply-To: <1238583884-13517-1-git-send-email-tj@kernel.org>

Impact: API expansion

Till now, only blk_rq_map() supported null mapping.  Add null mapping
support to blk_rq_map_user_iov() by moving BIO_NULL_MAPPED setting to
bio_copy_user_iov().

Signed-off-by: Tejun Heo <tj@kernel.org>
---
 block/blk-map.c |    3 ---
 fs/bio.c        |    4 +++-
 2 files changed, 3 insertions(+), 4 deletions(-)

diff --git a/block/blk-map.c b/block/blk-map.c
index 6718021..ac1961d 100644
--- a/block/blk-map.c
+++ b/block/blk-map.c
@@ -63,9 +63,6 @@ static int __blk_rq_map_user(struct request_queue *q, struct request *rq,
 	if (IS_ERR(bio))
 		return PTR_ERR(bio);
 
-	if (map_data && map_data->null_mapped)
-		bio->bi_flags |= (1 << BIO_NULL_MAPPED);
-
 	orig_bio = bio;
 	blk_queue_bounce(q, &bio);
 
diff --git a/fs/bio.c b/fs/bio.c
index 8ad9784..728bef9 100644
--- a/fs/bio.c
+++ b/fs/bio.c
@@ -869,7 +869,9 @@ struct bio *bio_copy_user_iov(struct request_queue *q,
 	/*
 	 * success
 	 */
-	if (!write_to_vm && (!map_data || !map_data->null_mapped)) {
+	if (unlikely(map_data && map_data->null_mapped))
+		bio->bi_flags |= (1 << BIO_NULL_MAPPED);
+	else if (!write_to_vm) {
 		ret = __bio_copy_iov(bio, bio->bi_io_vec, iov, iov_count, 0, 0);
 		if (ret)
 			goto cleanup;
-- 
1.6.0.2


  parent reply	other threads:[~2009-04-01 11:07 UTC|newest]

Thread overview: 29+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-04-01 11:04 [GIT PATCHSET block#for-linus] block: blk-map related fixes Tejun Heo
2009-04-01 11:04 ` [PATCH 1/8] scatterlist: make sure sg_miter_next() doesn't return 0 sized mappings Tejun Heo
2009-04-01 11:04 ` [PATCH 2/8] block: fix SG_IO vector request data length handling Tejun Heo
2009-04-01 11:47   ` FUJITA Tomonori
2009-04-01 11:50     ` Jens Axboe
2009-04-01 12:18       ` FUJITA Tomonori
2009-04-01 12:24         ` Jens Axboe
2009-04-01 12:27         ` Tejun Heo
2009-04-01 12:29           ` Jens Axboe
2009-04-01 11:04 ` [PATCH 3/8] block: fix queue bounce limit setting Tejun Heo
2009-04-01 11:04 ` [PATCH 4/8] bio: actually inline inline bvecs into bio Tejun Heo
2009-04-01 12:47   ` Jens Axboe
2009-04-01 12:55     ` Tejun Heo
2009-04-01 12:59       ` Jens Axboe
2009-04-01 11:04 ` [PATCH 5/8] bio: fix bio_kmalloc() Tejun Heo
2009-04-01 11:04 ` [PATCH 6/8] bio: remove size/segments limit on bio_{copy|map}_{user|kern}*() Tejun Heo
2009-04-01 11:04 ` Tejun Heo [this message]
2009-04-01 11:54   ` [PATCH 7/8] blk-map: let blk_rq_map_user_iov() support null mapping FUJITA Tomonori
2009-04-01 12:03     ` Tejun Heo
2009-04-01 11:04 ` [PATCH 8/8] blk-map: reimplement blk_rq_map_user() using blk_rq_map_user_iov() Tejun Heo
2009-04-01 12:44   ` FUJITA Tomonori
2009-04-01 12:50     ` Tejun Heo
2009-04-01 12:59       ` FUJITA Tomonori
2009-04-01 13:03         ` Tejun Heo
2009-04-01 13:10           ` FUJITA Tomonori
2009-04-01 13:17             ` Tejun Heo
2009-04-01 13:18               ` Tejun Heo
2009-04-01 13:22               ` FUJITA Tomonori
2009-04-01 13:28                 ` Tejun Heo

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1238583884-13517-8-git-send-email-tj@kernel.org \
    --to=tj@kernel.org \
    --cc=axboe@kernel.dk \
    --cc=bharrosh@panasas.com \
    --cc=linux-kernel@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox