git://ftp.safe.ca
/
safe
/
jmp
/
linux-2.6
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
usb: atm: speedtch: use new hex_to_bin() method
[safe/jmp/linux-2.6]
/
mm
/
bounce.c
diff --git
a/mm/bounce.c
b/mm/bounce.c
index
b6d2d0f
..
13b6dad
100644
(file)
--- a/
mm/bounce.c
+++ b/
mm/bounce.c
@@
-6,6
+6,7
@@
#include <linux/mm.h>
#include <linux/module.h>
#include <linux/swap.h>
#include <linux/mm.h>
#include <linux/module.h>
#include <linux/swap.h>
+#include <linux/gfp.h>
#include <linux/bio.h>
#include <linux/pagemap.h>
#include <linux/mempool.h>
#include <linux/bio.h>
#include <linux/pagemap.h>
#include <linux/mempool.h>
@@
-13,9
+14,10
@@
#include <linux/init.h>
#include <linux/hash.h>
#include <linux/highmem.h>
#include <linux/init.h>
#include <linux/hash.h>
#include <linux/highmem.h>
-#include <linux/blktrace_api.h>
#include <asm/tlbflush.h>
#include <asm/tlbflush.h>
+#include <trace/events/block.h>
+
#define POOL_SIZE 64
#define ISA_POOL_SIZE 16
#define POOL_SIZE 64
#define ISA_POOL_SIZE 16
@@
-189,14
+191,19
@@
static void __blk_queue_bounce(struct request_queue *q, struct bio **bio_orig,
/*
* is destination page below bounce pfn?
*/
/*
* is destination page below bounce pfn?
*/
- if (page_to_pfn(page) <= q
->bounce_pfn
)
+ if (page_to_pfn(page) <= q
ueue_bounce_pfn(q)
)
continue;
/*
* irk, bounce it
*/
continue;
/*
* irk, bounce it
*/
- if (!bio)
- bio = bio_alloc(GFP_NOIO, (*bio_orig)->bi_vcnt);
+ if (!bio) {
+ unsigned int cnt = (*bio_orig)->bi_vcnt;
+
+ bio = bio_alloc(GFP_NOIO, cnt);
+ memset(bio->bi_io_vec, 0, cnt * sizeof(struct bio_vec));
+ }
+
to = bio->bi_io_vec + i;
to = bio->bi_io_vec + i;
@@
-222,7
+229,7
@@
static void __blk_queue_bounce(struct request_queue *q, struct bio **bio_orig,
if (!bio)
return;
if (!bio)
return;
-
blk_add_trace_bio(q, *bio_orig, BLK_TA_BOUNCE
);
+
trace_block_bio_bounce(q, *bio_orig
);
/*
* at least one page was bounced, fill in possible non-highmem
/*
* at least one page was bounced, fill in possible non-highmem
@@
-267,7
+274,7
@@
void blk_queue_bounce(struct request_queue *q, struct bio **bio_orig)
/*
* Data-less bio, nothing to bounce
*/
/*
* Data-less bio, nothing to bounce
*/
- if (
bio_empty_barrier
(*bio_orig))
+ if (
!bio_has_data
(*bio_orig))
return;
/*
return;
/*
@@
-276,7
+283,7
@@
void blk_queue_bounce(struct request_queue *q, struct bio **bio_orig)
* don't waste time iterating over bio segments
*/
if (!(q->bounce_gfp & GFP_DMA)) {
* don't waste time iterating over bio segments
*/
if (!(q->bounce_gfp & GFP_DMA)) {
- if (q
->bounce_pfn
>= blk_max_pfn)
+ if (q
ueue_bounce_pfn(q)
>= blk_max_pfn)
return;
pool = page_pool;
} else {
return;
pool = page_pool;
} else {