From: Tejun Heo <tj@kernel.org>
To: jaxboe@fusionio.com, k-ueda@ct.jp.nec.com, snitzer@redhat.com,
j-nomura@ce.jp.nec.com, jamie@shareable.org,
linux-kernel@vger.kernel.org, linux-fsdevel@vger.kernel.org,
linux-raid@vge
Cc: Tejun Heo <tj@kernel.org>
Subject: [PATCH 1/4] block: make __blk_rq_prep_clone() copy most command flags
Date: Fri, 27 Aug 2010 19:10:57 +0200 [thread overview]
Message-ID: <1282929060-23663-2-git-send-email-tj@kernel.org> (raw)
In-Reply-To: <1282929060-23663-1-git-send-email-tj@kernel.org>
Currently __blk_rq_prep_clone() copies only REQ_WRITE and REQ_DISCARD.
There's no reason to omit other command flags and REQ_FUA needs to be
copied to implement FUA support in request-based dm.
REQ_COMMON_MASK which specifies flags to be copied from bio to request
already identifies all the command flags. Define REQ_CLONE_MASK to be
the same as REQ_COMMON_MASK for clarity and make __blk_rq_prep_clone()
copy all flags in the mask.
Signed-off-by: Tejun Heo <tj@kernel.org>
---
block/blk-core.c | 4 +---
include/linux/blk_types.h | 1 +
2 files changed, 2 insertions(+), 3 deletions(-)
diff --git a/block/blk-core.c b/block/blk-core.c
index 495bdc4..2a5b192 100644
--- a/block/blk-core.c
+++ b/block/blk-core.c
@@ -2505,9 +2505,7 @@ EXPORT_SYMBOL_GPL(blk_rq_unprep_clone);
static void __blk_rq_prep_clone(struct request *dst, struct request *src)
{
dst->cpu = src->cpu;
- dst->cmd_flags = (rq_data_dir(src) | REQ_NOMERGE);
- if (src->cmd_flags & REQ_DISCARD)
- dst->cmd_flags |= REQ_DISCARD;
+ dst->cmd_flags = (src->cmd_flags & REQ_CLONE_MASK) | REQ_NOMERGE;
dst->cmd_type = src->cmd_type;
dst->__sector = blk_rq_pos(src);
dst->__data_len = blk_rq_bytes(src);
diff --git a/include/linux/blk_types.h b/include/linux/blk_types.h
index 1797994..36edadf 100644
--- a/include/linux/blk_types.h
+++ b/include/linux/blk_types.h
@@ -168,6 +168,7 @@ enum rq_flag_bits {
#define REQ_COMMON_MASK \
(REQ_WRITE | REQ_FAILFAST_MASK | REQ_HARDBARRIER | REQ_SYNC | \
REQ_META | REQ_DISCARD | REQ_NOIDLE | REQ_FLUSH | REQ_FUA)
+#define REQ_CLONE_MASK REQ_COMMON_MASK
#define REQ_UNPLUG (1 << __REQ_UNPLUG)
#define REQ_RAHEAD (1 << __REQ_RAHEAD)
--
1.7.1
WARNING: multiple messages have this Message-ID (diff)
From: Tejun Heo <tj@kernel.org>
To: jaxboe@fusionio.com, k-ueda@ct.jp.nec.com, snitzer@redhat.com,
j-nomura@ce.jp.nec.com, jamie@shareable.org,
linux-kernel@vger.kernel.org, linux-fsdevel@vger.kernel.org,
linux-raid@vger.kernel.org, hch@lst.de
Cc: Tejun Heo <tj@kernel.org>
Subject: [PATCH 1/4] block: make __blk_rq_prep_clone() copy most command flags
Date: Fri, 27 Aug 2010 19:10:57 +0200 [thread overview]
Message-ID: <1282929060-23663-2-git-send-email-tj@kernel.org> (raw)
In-Reply-To: <1282929060-23663-1-git-send-email-tj@kernel.org>
Currently __blk_rq_prep_clone() copies only REQ_WRITE and REQ_DISCARD.
There's no reason to omit other command flags and REQ_FUA needs to be
copied to implement FUA support in request-based dm.
REQ_COMMON_MASK which specifies flags to be copied from bio to request
already identifies all the command flags. Define REQ_CLONE_MASK to be
the same as REQ_COMMON_MASK for clarity and make __blk_rq_prep_clone()
copy all flags in the mask.
Signed-off-by: Tejun Heo <tj@kernel.org>
---
block/blk-core.c | 4 +---
include/linux/blk_types.h | 1 +
2 files changed, 2 insertions(+), 3 deletions(-)
diff --git a/block/blk-core.c b/block/blk-core.c
index 495bdc4..2a5b192 100644
--- a/block/blk-core.c
+++ b/block/blk-core.c
@@ -2505,9 +2505,7 @@ EXPORT_SYMBOL_GPL(blk_rq_unprep_clone);
static void __blk_rq_prep_clone(struct request *dst, struct request *src)
{
dst->cpu = src->cpu;
- dst->cmd_flags = (rq_data_dir(src) | REQ_NOMERGE);
- if (src->cmd_flags & REQ_DISCARD)
- dst->cmd_flags |= REQ_DISCARD;
+ dst->cmd_flags = (src->cmd_flags & REQ_CLONE_MASK) | REQ_NOMERGE;
dst->cmd_type = src->cmd_type;
dst->__sector = blk_rq_pos(src);
dst->__data_len = blk_rq_bytes(src);
diff --git a/include/linux/blk_types.h b/include/linux/blk_types.h
index 1797994..36edadf 100644
--- a/include/linux/blk_types.h
+++ b/include/linux/blk_types.h
@@ -168,6 +168,7 @@ enum rq_flag_bits {
#define REQ_COMMON_MASK \
(REQ_WRITE | REQ_FAILFAST_MASK | REQ_HARDBARRIER | REQ_SYNC | \
REQ_META | REQ_DISCARD | REQ_NOIDLE | REQ_FLUSH | REQ_FUA)
+#define REQ_CLONE_MASK REQ_COMMON_MASK
#define REQ_UNPLUG (1 << __REQ_UNPLUG)
#define REQ_RAHEAD (1 << __REQ_RAHEAD)
--
1.7.1
next prev parent reply other threads:[~2010-08-27 17:10 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-08-27 17:10 [PATCHSET 2.6.36-rc2] block, dm: finish REQ_FLUSH/FUA conversion Tejun Heo
2010-08-27 17:10 ` Tejun Heo
2010-08-27 17:10 ` Tejun Heo [this message]
2010-08-27 17:10 ` [PATCH 1/4] block: make __blk_rq_prep_clone() copy most command flags Tejun Heo
2010-08-27 17:57 ` Mike Snitzer
2010-08-27 17:10 ` [PATCH 2/4] dm: implement REQ_FLUSH/FUA support Tejun Heo
2010-08-27 17:10 ` Tejun Heo
2010-08-27 20:24 ` Mike Snitzer
2010-08-27 23:28 ` Tejun Heo
2010-08-28 0:35 ` Mike Snitzer
2010-08-28 0:35 ` Mike Snitzer
2010-08-27 17:10 ` Tejun Heo
2010-08-27 17:10 ` [PATCH 3/4] dm: relax ordering of bio-based flush implementation Tejun Heo
2010-08-27 17:10 ` Tejun Heo
2010-08-27 17:10 ` Tejun Heo
2010-08-27 17:11 ` [PATCH 4/4] block: remove the WRITE_BARRIER flag Tejun Heo
2010-08-27 17:11 ` Tejun Heo
2010-08-27 17:11 ` Tejun Heo
2010-08-27 17:15 ` [PATCHSET 2.6.36-rc2] block, dm: finish REQ_FLUSH/FUA conversion Tejun Heo
2010-08-27 17:15 ` Tejun Heo
2010-08-27 17:15 ` 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=1282929060-23663-2-git-send-email-tj@kernel.org \
--to=tj@kernel.org \
--cc=j-nomura@ce.jp.nec.com \
--cc=jamie@shareable.org \
--cc=jaxboe@fusionio.com \
--cc=k-ueda@ct.jp.nec.com \
--cc=linux-fsdevel@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-raid@vge \
--cc=snitzer@redhat.com \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.