Patch-mainline: obsolete
References: fate#300964
-Index: head-2008-11-10/drivers/xen/blkback/blkback.c
-===================================================================
---- head-2008-11-10.orig/drivers/xen/blkback/blkback.c 2008-11-10 12:07:53.000000000 +0100
-+++ head-2008-11-10/drivers/xen/blkback/blkback.c 2008-11-10 12:15:51.000000000 +0100
+--- sle11-2009-06-04.orig/drivers/xen/blkback/blkback.c 2009-06-04 10:20:39.000000000 +0200
++++ sle11-2009-06-04/drivers/xen/blkback/blkback.c 2009-06-04 10:46:54.000000000 +0200
@@ -192,13 +192,15 @@ static void fast_flush_area(pending_req_
static void print_stats(blkif_t *blkif)
default:
/* A good sign something is wrong: sleep for a while to
* avoid excessive CPU consumption by a bad guest. */
-Index: head-2008-11-10/drivers/xen/blkback/common.h
-===================================================================
---- head-2008-11-10.orig/drivers/xen/blkback/common.h 2008-11-10 12:14:31.000000000 +0100
-+++ head-2008-11-10/drivers/xen/blkback/common.h 2008-11-10 12:15:51.000000000 +0100
+--- sle11-2009-06-04.orig/drivers/xen/blkback/common.h 2009-06-04 10:46:52.000000000 +0200
++++ sle11-2009-06-04/drivers/xen/blkback/common.h 2009-06-04 10:46:54.000000000 +0200
@@ -87,6 +87,7 @@ typedef struct blkif_st {
int st_wr_req;
int st_oo_req;
int st_rd_sect;
int st_wr_sect;
-Index: head-2008-11-10/drivers/xen/blkfront/blkfront.c
-===================================================================
---- head-2008-11-10.orig/drivers/xen/blkfront/blkfront.c 2008-11-10 12:10:12.000000000 +0100
-+++ head-2008-11-10/drivers/xen/blkfront/blkfront.c 2008-11-10 12:15:51.000000000 +0100
-@@ -622,6 +622,8 @@ static int blkif_queue_request(struct re
+--- sle11-2009-06-04.orig/drivers/xen/blkfront/blkfront.c 2009-06-04 10:21:09.000000000 +0200
++++ sle11-2009-06-04/drivers/xen/blkfront/blkfront.c 2009-06-04 10:46:54.000000000 +0200
+@@ -626,6 +626,8 @@ static int blkif_queue_request(struct re
BLKIF_OP_WRITE : BLKIF_OP_READ;
if (blk_barrier_rq(req))
ring_req->operation = BLKIF_OP_WRITE_BARRIER;
+ if (blk_pc_request(req))
+ ring_req->operation = BLKIF_OP_PACKET;
- ring_req->nr_segments = 0;
- rq_for_each_segment(bvec, req, iter) {
-@@ -678,7 +680,7 @@ void do_blkif_request(struct request_que
+ ring_req->nr_segments = blk_rq_map_sg(req->q, req, info->sg);
+ BUG_ON(ring_req->nr_segments > BLKIF_MAX_SEGMENTS_PER_REQUEST);
+@@ -677,7 +679,7 @@ void do_blkif_request(struct request_que
while ((req = elv_next_request(rq)) != NULL) {
info = req->rq_disk->private_data;
end_request(req, 0);
continue;
}
-@@ -755,6 +757,7 @@ static irqreturn_t blkif_int(int irq, vo
+@@ -754,6 +756,7 @@ static irqreturn_t blkif_int(int irq, vo
/* fall through */
case BLKIF_OP_READ:
case BLKIF_OP_WRITE:
if (unlikely(bret->status != BLKIF_RSP_OKAY))
DPRINTK("Bad return from blkdev data "
"request: %x\n", bret->status);
-Index: head-2008-11-10/drivers/xen/blktap/blktap.c
-===================================================================
---- head-2008-11-10.orig/drivers/xen/blktap/blktap.c 2008-11-10 12:14:32.000000000 +0100
-+++ head-2008-11-10/drivers/xen/blktap/blktap.c 2008-11-10 12:15:51.000000000 +0100
-@@ -1090,13 +1090,14 @@ static void fast_flush_area(pending_req_
+--- sle11-2009-06-04.orig/drivers/xen/blktap/blktap.c 2009-06-04 10:46:52.000000000 +0200
++++ sle11-2009-06-04/drivers/xen/blktap/blktap.c 2009-06-04 10:46:54.000000000 +0200
+@@ -1087,13 +1087,14 @@ static void fast_flush_area(pending_req_
static void print_stats(blkif_t *blkif)
{
}
int tap_blkif_schedule(void *arg)
-@@ -1332,6 +1333,11 @@ static int do_block_io_op(blkif_t *blkif
+@@ -1329,6 +1330,11 @@ static int do_block_io_op(blkif_t *blkif
dispatch_rw_block_io(blkif, &req, pending_req);
break;
default:
/* A good sign something is wrong: sleep for a while to
* avoid excessive CPU consumption by a bad guest. */
-@@ -1370,6 +1376,8 @@ static void dispatch_rw_block_io(blkif_t
+@@ -1368,6 +1374,8 @@ static void dispatch_rw_block_io(blkif_t
struct mm_struct *mm;
switch (req->operation) {
case BLKIF_OP_READ:
operation = READ;
break;
-Index: head-2008-11-10/drivers/xen/blktap/common.h
-===================================================================
---- head-2008-11-10.orig/drivers/xen/blktap/common.h 2008-11-10 12:06:12.000000000 +0100
-+++ head-2008-11-10/drivers/xen/blktap/common.h 2008-11-10 12:15:51.000000000 +0100
+--- sle11-2009-06-04.orig/drivers/xen/blktap/common.h 2009-06-04 10:20:18.000000000 +0200
++++ sle11-2009-06-04/drivers/xen/blktap/common.h 2009-06-04 10:46:54.000000000 +0200
@@ -75,6 +75,7 @@ typedef struct blkif_st {
int st_rd_req;
int st_wr_req;
int st_rd_sect;
int st_wr_sect;
-Index: head-2008-11-10/include/xen/interface/io/blkif.h
-===================================================================
---- head-2008-11-10.orig/include/xen/interface/io/blkif.h 2008-11-10 11:49:25.000000000 +0100
-+++ head-2008-11-10/include/xen/interface/io/blkif.h 2008-11-10 12:15:51.000000000 +0100
+--- sle11-2009-06-04.orig/include/xen/interface/io/blkif.h 2009-06-04 10:18:38.000000000 +0200
++++ sle11-2009-06-04/include/xen/interface/io/blkif.h 2009-06-04 10:46:54.000000000 +0200
@@ -76,6 +76,10 @@
* "feature-flush-cache" node!
*/