[PATCH] REQ-flags to/from BIO-flags bugfix

Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]
From: Boaz Harrosh
Date: Wednesday, December 12, 2007 - 4:03 am

- BIO flags bio->bi_rw and REQ flags req->cmd_flags no longer match.
   Remove comments and do a proper translation between the 2 systems.

 (Please look in ll_rw_blk.c/blk_rq_bio_prep() below if we need more flags)

Signed-off-by: Boaz Harrosh <bharrosh@panasas.com>
---
 block/ll_rw_blk.c            |   23 +++++++++++++++++------
 include/linux/blktrace_api.h |    8 +++++++-
 2 files changed, 24 insertions(+), 7 deletions(-)

diff --git a/block/ll_rw_blk.c b/block/ll_rw_blk.c
index 8b91994..c6a84bb 100644
--- a/block/ll_rw_blk.c
+++ b/block/ll_rw_blk.c
@@ -1990,10 +1990,6 @@ blk_alloc_request(struct request_queue *q, int rw, int priv, gfp_t gfp_mask)
 	if (!rq)
 		return NULL;
 
-	/*
-	 * first three bits are identical in rq->cmd_flags and bio->bi_rw,
-	 * see bio.h and blkdev.h
-	 */
 	rq->cmd_flags = rw | REQ_ALLOCED;
 
 	if (priv) {
@@ -3772,8 +3768,23 @@ EXPORT_SYMBOL(end_request);
 static void blk_rq_bio_prep(struct request_queue *q, struct request *rq,
 			    struct bio *bio)
 {
-	/* first two bits are identical in rq->cmd_flags and bio->bi_rw */
-	rq->cmd_flags |= (bio->bi_rw & 3);
+	if (bio_data_dir(bio))
+		rq->cmd_flags |= REQ_RW;
+	else
+		rq->cmd_flags &= ~REQ_RW;
+
+	if (bio->bi_rw & (1<<BIO_RW_SYNC))
+		rq->cmd_flags |= REQ_RW_SYNC;
+	else
+		rq->cmd_flags &= ~REQ_RW_SYNC;
+	/* FIXME: what about other flags, should we sync these too? */
+	/*
+	BIO_RW_AHEAD	==> ??
+	BIO_RW_BARRIER	==> REQ_SOFTBARRIER/REQ_HARDBARRIER
+	BIO_RW_FAILFAST	==> REQ_FAILFAST
+	BIO_RW_SYNC	==> REQ_RW_SYNC
+	BIO_RW_META	==> REQ_RW_META
+	*/
 
 	rq->nr_phys_segments = bio_phys_segments(q, bio);
 	rq->nr_hw_segments = bio_hw_segments(q, bio);
diff --git a/include/linux/blktrace_api.h b/include/linux/blktrace_api.h
index 7e11d23..9e7ce65 100644
--- a/include/linux/blktrace_api.h
+++ b/include/linux/blktrace_api.h
@@ -165,7 +165,13 @@ static inline void blk_add_trace_rq(struct request_queue *q, struct request *rq,
 				    u32 what)
 {
 	struct blk_trace *bt = q->blk_trace;
-	int rw = rq->cmd_flags & 0x03;
+	/* blktrace.c prints them according to bio flags */
+	int rw = (((rq_rw_dir(rq) == WRITE) << BIO_RW) |
+	          (((rq->cmd_flags & (REQ_SOFTBARRIER|REQ_HARDBARRIER)) != 0) <<
+	           BIO_RW_BARRIER) |
+	          (((rq->cmd_flags & REQ_FAILFAST) != 0) << BIO_RW_FAILFAST) |
+	          (((rq->cmd_flags & REQ_RW_SYNC) != 0) << BIO_RW_SYNC) |
+	          (((rq->cmd_flags & REQ_RW_META) != 0) << BIO_RW_META));
 
 	if (likely(!bt))
 		return;
-- 
1.5.3.3


--
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]

Messages in current thread:
Re: 2.6.24-rc3-mm1 make headers_check fails, Andrew Morton, (Tue Nov 20, 5:32 pm)
Re: 2.6.24-rc3-mm1, Dave Young, (Tue Nov 20, 10:51 pm)
Re: 2.6.24-rc3-mm1 - Build Failure on S390x, Kamalesh Babulal, (Tue Nov 20, 10:56 pm)
Re: 2.6.24-rc3-mm1, KAMEZAWA Hiroyuki, (Tue Nov 20, 10:58 pm)
Re: 2.6.24-rc3-mm1, Andrew Morton, (Tue Nov 20, 11:00 pm)
Re: 2.6.24-rc3-mm1, Dave Young, (Tue Nov 20, 11:03 pm)
Re: 2.6.24-rc3-mm1 - Build Failure on S390x, Andrew Morton, (Tue Nov 20, 11:04 pm)
Re: 2.6.24-rc3-mm1, Andrew Morton, (Tue Nov 20, 11:08 pm)
Re: 2.6.24-rc3-mm1 - Kernel Panic on IO-APIC, Kamalesh Babulal, (Tue Nov 20, 11:11 pm)
Re: 2.6.24-rc3-mm1, Andrew Morton, (Tue Nov 20, 11:15 pm)
Re: 2.6.24-rc3-mm1, Dave Young, (Tue Nov 20, 11:22 pm)
Re: 2.6.24-rc3-mm1- powerpc link failure, Kamalesh Babulal, (Wed Nov 21, 1:06 am)
Re: 2.6.24-rc3-mm1 make headers_check fails, Kamalesh Babulal, (Wed Nov 21, 1:24 am)
Re: 2.6.24-rc3-mm1 make headers_check fails, Kamalesh Babulal, (Wed Nov 21, 1:41 am)
Re: 2.6.24-rc3-mm1 (sync is slow ?), KAMEZAWA Hiroyuki, (Wed Nov 21, 1:42 am)
Re: 2.6.24-rc3-mm1 make headers_check fails, Avi Kivity, (Wed Nov 21, 1:44 am)
Re: 2.6.24-rc3-mm1 (sync is slow ?), KAMEZAWA Hiroyuki, (Wed Nov 21, 1:49 am)
Re: 2.6.24-rc3-mm1 make headers_check fails, Robert P. J. Day, (Wed Nov 21, 1:52 am)
Re: 2.6.24-rc3-mm1 make headers_check fails, Andrew Morton, (Wed Nov 21, 2:04 am)
Re: 2.6.24-rc3-mm1 make headers_check fails, Robert P. J. Day, (Wed Nov 21, 2:06 am)
Re: 2.6.24-rc3-mm1 - Kernel Panic on IO-APIC, Kamalesh Babulal, (Wed Nov 21, 2:22 am)
Re: 2.6.24-rc3-mm1 - Kernel Panic on IO-APIC, Andrew Morton, (Wed Nov 21, 2:29 am)
Re: 2.6.24-rc3-mm1 - Kernel Panic on IO-APIC, Kamalesh Babulal, (Wed Nov 21, 2:43 am)
Re: 2.6.24-rc3-mm1 make headers_check fails, Sam Ravnborg, (Wed Nov 21, 2:58 am)
Re: 2.6.24-rc3-mm1 make headers_check fails, Avi Kivity, (Wed Nov 21, 3:00 am)
Re: 2.6.24-rc3-mm1 make headers_check fails, Avi Kivity, (Wed Nov 21, 3:17 am)
Re: 2.6.24-rc3-mm1 make headers_check fails, Robert P. J. Day, (Wed Nov 21, 3:31 am)
Re: 2.6.24-rc3-mm1: usb mouse doesn't work, Kirill A. Shutemov, (Wed Nov 21, 11:23 am)
Re: 2.6.24-rc3-mm1, Kirill A. Shutemov, (Wed Nov 21, 11:35 am)
Re: 2.6.24-rc3-mm1 - Kernel Panic on IO-APIC, Len Brown, (Wed Nov 21, 12:22 pm)
Re: 2.6.24-rc3-mm1 - Kernel Panic on IO-APIC, Torsten Kaiser, (Wed Nov 21, 12:33 pm)
Re: 2.6.24-rc3-mm1 - Kernel Panic on IO-APIC, Torsten Kaiser, (Wed Nov 21, 12:48 pm)
Re: 2.6.24-rc3-mm1: I/O error, system hangs, Laurent Riffard, (Wed Nov 21, 2:45 pm)
Re: 2.6.24-rc3-mm1, Andrew Morton, (Wed Nov 21, 3:25 pm)
Re: 2.6.24-rc3-mm1: I/O error, system hangs, Andrew Morton, (Wed Nov 21, 3:41 pm)
Re: 2.6.24-rc3-mm1- powerpc link failure, Stephen Rothwell, (Wed Nov 21, 3:52 pm)
Re: 2.6.24-rc3-mm1 (sync is slow ?), KAMEZAWA Hiroyuki, (Wed Nov 21, 8:06 pm)
Re: 2.6.24-rc3-mm1 - Kernel Panic on IO-APIC, Kirill A. Shutemov, (Thu Nov 22, 3:04 am)
Re: 2.6.24-rc3-mm1: usb mouse doesn't work, Kirill A. Shutemov, (Thu Nov 22, 3:17 am)
Re: 2.6.24-rc3-mm1, Kirill A. Shutemov, (Thu Nov 22, 3:22 am)
Re: 2.6.24-rc3-mm1, Andrew Morton, (Thu Nov 22, 5:18 pm)
Re: 2.6.24-rc3-mm1, Thomas Gleixner, (Thu Nov 22, 5:48 pm)
Re: 2.6.24-rc3-mm1, Gabriel C, (Thu Nov 22, 6:39 pm)
Re: 2.6.24-rc3-mm1, Andrew Morton, (Thu Nov 22, 9:12 pm)
Re: 2.6.24-rc3-mm1, Gabriel C, (Thu Nov 22, 10:55 pm)
Re: 2.6.24-rc3-mm1, Kirill A. Shutemov, (Thu Nov 22, 11:05 pm)
Re: 2.6.24-rc3-mm1: I/O error, system hangs, Laurent Riffard, (Fri Nov 23, 12:29 am)
Re: 2.6.24-rc3-mm1, Andreas Herrmann, (Fri Nov 23, 1:59 am)
Re: 2.6.24-rc3-mm1: I/O error, system hangs, Hannes Reinecke, (Fri Nov 23, 4:38 am)
Re: 2.6.24-rc3-mm1: I/O error, system hangs, Laurent Riffard, (Fri Nov 23, 10:52 am)
Re: 2.6.24-rc3-mm1 - Kernel Panic on IO-APIC, Alexey Dobriyan, (Fri Nov 23, 5:49 pm)
Re: 2.6.24-rc3-mm1: I/O error, system hangs, James Bottomley, (Fri Nov 23, 11:42 pm)
Re: 2.6.24-rc3-mm1 (sync is slow ?), kosaki, (Sat Nov 24, 5:04 am)
Re: 2.6.24-rc3-mm1: I/O error, system hangs, Laurent Riffard, (Sat Nov 24, 5:57 am)
Re: 2.6.24-rc3-mm1: I/O error, system hangs, James Bottomley, (Sat Nov 24, 10:44 am)
Re: 2.6.24-rc3-mm1: I/O error, system hangs, Gabriel C, (Sat Nov 24, 10:54 am)
Re: 2.6.24-rc3-mm1: I/O error, system hangs, James Bottomley, (Sat Nov 24, 11:04 am)
Re: 2.6.24-rc3-mm1: I/O error, system hangs, Gabriel C, (Sat Nov 24, 11:08 am)
Re: 2.6.24-rc3-mm1: I/O error, system hangs, Gabriel C, (Sat Nov 24, 11:28 am)
Re: 2.6.24-rc3-mm1: I/O error, system hangs, Laurent Riffard, (Sat Nov 24, 3:59 pm)
Re: 2.6.24-rc3-mm1: I/O error, system hangs, James Bottomley, (Sun Nov 25, 12:37 am)
Re: 2.6.24-rc3-mm1: I/O error, system hangs, Laurent Riffard, (Sun Nov 25, 1:39 pm)
Re: 2.6.24-rc3-mm1 (sync is slow ?), KAMEZAWA Hiroyuki, (Mon Nov 26, 12:06 am)
Re: 2.6.24-rc3-mm1: I/O error, system hangs, Hannes Reinecke, (Mon Nov 26, 12:54 am)
Re: 2.6.24-rc3-mm1, Rik van Riel, (Mon Nov 26, 11:48 am)
Re: 2.6.24-rc3-mm1, Randy Dunlap, (Mon Nov 26, 12:13 pm)
Re: 2.6.24-rc3-mm1, Jiri Slaby, (Mon Nov 26, 12:33 pm)
Re: 2.6.24-rc3-mm1, Christoph Lameter, (Mon Nov 26, 12:34 pm)
Re: 2.6.24-rc3-mm1 - Kernel Panic on IO-APIC, Rik van Riel, (Mon Nov 26, 12:39 pm)
Re: 2.6.24-rc3-mm1 - Kernel Panic on IO-APIC, Andrew Morton, (Mon Nov 26, 1:33 pm)
Re: 2.6.24-rc3-mm1, Randy Dunlap, (Mon Nov 26, 1:40 pm)
Re: 2.6.24-rc3-mm1 - Kernel Panic on IO-APIC, Ingo Molnar, (Mon Nov 26, 1:45 pm)
[PATCH -mm] x86 allnoconfig memory model, Randy Dunlap, (Mon Nov 26, 1:47 pm)
Re: 2.6.24-rc3-mm1 - Kernel Panic on IO-APIC, Christoph Lameter, (Mon Nov 26, 1:56 pm)
Re: 2.6.24-rc3-mm1, Christoph Lameter, (Mon Nov 26, 1:56 pm)
Re: [PATCH -mm] x86 allnoconfig memory model, Christoph Lameter, (Mon Nov 26, 2:00 pm)
Re: [PATCH -mm] x86 allnoconfig memory model, Randy Dunlap, (Mon Nov 26, 2:17 pm)
Re: [PATCH -mm] x86 allnoconfig memory model, Andrew Morton, (Mon Nov 26, 2:20 pm)
Re: [PATCH -mm] x86 allnoconfig memory model, Christoph Lameter, (Mon Nov 26, 2:52 pm)
Re: [PATCH -mm] x86 allnoconfig memory model, Andrew Morton, (Mon Nov 26, 2:57 pm)
Re: 2.6.24-rc3-mm1 - Kernel Panic on IO-APIC, Jiri Slaby, (Mon Nov 26, 3:08 pm)
Re: 2.6.24-rc3-mm1 - Kernel Panic on IO-APIC, Andrew Morton, (Mon Nov 26, 3:17 pm)
Re: 2.6.24-rc3-mm1 - Kernel Panic on IO-APIC, Jiri Slaby, (Mon Nov 26, 3:22 pm)
Re: 2.6.24-rc3-mm1 - Kernel Panic on IO-APIC, Jiri Slaby, (Mon Nov 26, 4:14 pm)
Re: [PATCH -mm] x86 allnoconfig memory model, Christoph Lameter, (Mon Nov 26, 4:19 pm)
Re: 2.6.24-rc3-mm1 - Kernel Panic on IO-APIC, Andrew Morton, (Mon Nov 26, 4:28 pm)
Re: 2.6.24-rc3-mm1, Andrew Morton, (Mon Nov 26, 11:15 pm)
Re: 2.6.24-rc3-mm1 - brick my Dell Latitude D820, Valdis.Kletnieks, (Tue Nov 27, 12:16 am)
Re: 2.6.24-rc3-mm1 - brick my Dell Latitude D820, Andrew Morton, (Tue Nov 27, 12:27 am)
Re: 2.6.24-rc3-mm1 - brick my Dell Latitude D820, Valdis.Kletnieks, (Tue Nov 27, 12:54 am)
Re: 2.6.24-rc3-mm1 - brick my Dell Latitude D820, Andrew Morton, (Tue Nov 27, 1:17 am)
Re: 2.6.24-rc3-mm1 - brick my Dell Latitude D820, Dave Young, (Tue Nov 27, 1:25 am)
Re: 2.6.24-rc3-mm1 - brick my Dell Latitude D820, Valdis.Kletnieks, (Tue Nov 27, 1:46 am)
Re: 2.6.24-rc3-mm1 - brick my Dell Latitude D820, Ingo Molnar, (Tue Nov 27, 3:25 am)
Re: 2.6.24-rc3-mm1 - Kernel Panic on IO-APIC, Rik van Riel, (Tue Nov 27, 10:50 am)
Re: 2.6.24-rc3-mm1 make headers_check fails, Andrew Morton, (Tue Nov 27, 10:02 pm)
Re: 2.6.24-rc3-mm1: I/O error, system hangs, Laurent Riffard, (Wed Nov 28, 2:38 pm)
Re: 2.6.24-rc3-mm1 make headers_check fails, Avi Kivity, (Sun Dec 2, 1:56 am)
Re: 2.6.24-rc3-mm1, James Bottomley, (Tue Dec 11, 9:33 am)
[PATCH] REQ-flags to/from BIO-flags bugfix, Boaz Harrosh, (Wed Dec 12, 4:03 am)
Re: 2.6.24-rc3-mm1, Jens Axboe, (Wed Dec 12, 4:36 am)
Re: [PATCH] REQ-flags to/from BIO-flags bugfix, Matthew Wilcox, (Wed Dec 12, 8:18 am)
Re: [PATCH] REQ-flags to/from BIO-flags bugfix, Boaz Harrosh, (Wed Dec 12, 9:06 am)
Re: [PATCH] REQ-flags to/from BIO-flags bugfix, Matthew Wilcox, (Wed Dec 12, 9:33 am)
Re: [PATCH] REQ-flags to/from BIO-flags bugfix, David Chinner, (Wed Dec 12, 10:36 pm)
Re: 2.6.24-rc3-mm1, Hannes Reinecke, (Fri Dec 14, 2:00 am)
Re: 2.6.24-rc3-mm1, James Bottomley, (Fri Dec 14, 7:26 am)
Multipath failover handling (Was: Re: 2.6.24-rc3-mm1), Hannes Reinecke, (Mon Jan 7, 7:05 am)
Re: Multipath failover handling (Was: Re: 2.6.24-rc3-mm1), James Bottomley, (Mon Jan 7, 10:57 am)
Re: Multipath failover handling (Was: Re: 2.6.24-rc3-mm1), Mike Christie, (Mon Jan 7, 11:24 am)