linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [owen.smith@citrix.com: [Xen-devel] [PATCH 1/2 xen/stable-2.6.32.x] Union the blkif_request request specific fields]
@ 2011-03-07 17:34 Konrad Rzeszutek Wilk
  2011-03-07 19:46 ` Jens Axboe
  0 siblings, 1 reply; 3+ messages in thread
From: Konrad Rzeszutek Wilk @ 2011-03-07 17:34 UTC (permalink / raw)
  To: Jens Axboe; +Cc: linux-kernel, owen.smith

Jens,

Are you OK with this patch? I was thinking to push it for 2.6.39.
I've it in my tree, but if you would rather carry it for the merge window
it is in 
git://git.kernel.org/pub/scm/linux/kernel/git/konrad/xen.git stable/blkfront-cleanup


commit cd50f830627fd8ec0d97a73c970ccec9811c6bae
Author: Owen Smith <owen.smith@citrix.com>
Date:   Wed Dec 22 15:05:00 2010 +0000

    xen: Union the blkif_request request specific fields
    
    Prepare for extending the block device ring to allow request
    specific fields, by moving the request specific fields for
    reads, writes and barrier requests to a union member.
    
    Signed-off-by: Owen Smith <owen.smith@citrix.com>
    Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>

diff --git a/drivers/block/xen-blkfront.c b/drivers/block/xen-blkfront.c
index d7aa39e..cc4514c 100644
--- a/drivers/block/xen-blkfront.c
+++ b/drivers/block/xen-blkfront.c
@@ -281,7 +281,7 @@ static int blkif_queue_request(struct request *req)
 	info->shadow[id].request = req;
 
 	ring_req->id = id;
-	ring_req->sector_number = (blkif_sector_t)blk_rq_pos(req);
+	ring_req->u.rw.sector_number = (blkif_sector_t)blk_rq_pos(req);
 	ring_req->handle = info->handle;
 
 	ring_req->operation = rq_data_dir(req) ?
@@ -317,7 +317,7 @@ static int blkif_queue_request(struct request *req)
 				rq_data_dir(req) );
 
 		info->shadow[id].frame[i] = mfn_to_pfn(buffer_mfn);
-		ring_req->seg[i] =
+		ring_req->u.rw.seg[i] =
 				(struct blkif_request_segment) {
 					.gref       = ref,
 					.first_sect = fsect,
@@ -615,7 +615,7 @@ static void blkif_completion(struct blk_shadow *s)
 {
 	int i;
 	for (i = 0; i < s->req.nr_segments; i++)
-		gnttab_end_foreign_access(s->req.seg[i].gref, 0, 0UL);
+		gnttab_end_foreign_access(s->req.u.rw.seg[i].gref, 0, 0UL);
 }
 
 static irqreturn_t blkif_interrupt(int irq, void *dev_id)
@@ -932,7 +932,7 @@ static int blkif_recover(struct blkfront_info *info)
 		/* Rewrite any grant references invalidated by susp/resume. */
 		for (j = 0; j < req->nr_segments; j++)
 			gnttab_grant_foreign_access_ref(
-				req->seg[j].gref,
+				req->u.rw.seg[j].gref,
 				info->xbdev->otherend_id,
 				pfn_to_mfn(info->shadow[req->id].frame[j]),
 				rq_data_dir(info->shadow[req->id].request));
diff --git a/include/xen/interface/io/blkif.h b/include/xen/interface/io/blkif.h
index c2d1fa4..e4f743c 100644
--- a/include/xen/interface/io/blkif.h
+++ b/include/xen/interface/io/blkif.h
@@ -51,11 +51,7 @@ typedef uint64_t blkif_sector_t;
  */
 #define BLKIF_MAX_SEGMENTS_PER_REQUEST 11
 
-struct blkif_request {
-	uint8_t        operation;    /* BLKIF_OP_???                         */
-	uint8_t        nr_segments;  /* number of segments                   */
-	blkif_vdev_t   handle;       /* only for read/write requests         */
-	uint64_t       id;           /* private guest value, echoed in resp  */
+struct blkif_request_rw {
 	blkif_sector_t sector_number;/* start sector idx on disk (r/w only)  */
 	struct blkif_request_segment {
 		grant_ref_t gref;        /* reference to I/O buffer frame        */
@@ -65,6 +61,16 @@ struct blkif_request {
 	} seg[BLKIF_MAX_SEGMENTS_PER_REQUEST];
 };
 
+struct blkif_request {
+	uint8_t        operation;    /* BLKIF_OP_???                         */
+	uint8_t        nr_segments;  /* number of segments                   */
+	blkif_vdev_t   handle;       /* only for read/write requests         */
+	uint64_t       id;           /* private guest value, echoed in resp  */
+	union {
+		struct blkif_request_rw rw;
+	} u;
+};
+
 struct blkif_response {
 	uint64_t        id;              /* copied from request */
 	uint8_t         operation;       /* copied from request */

^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: [owen.smith@citrix.com: [Xen-devel] [PATCH 1/2 xen/stable-2.6.32.x] Union the blkif_request request specific fields]
  2011-03-07 17:34 [owen.smith@citrix.com: [Xen-devel] [PATCH 1/2 xen/stable-2.6.32.x] Union the blkif_request request specific fields] Konrad Rzeszutek Wilk
@ 2011-03-07 19:46 ` Jens Axboe
  2011-03-07 19:55   ` Konrad Rzeszutek Wilk
  0 siblings, 1 reply; 3+ messages in thread
From: Jens Axboe @ 2011-03-07 19:46 UTC (permalink / raw)
  To: Konrad Rzeszutek Wilk; +Cc: linux-kernel@vger.kernel.org, owen.smith@citrix.com

On 2011-03-07 18:34, Konrad Rzeszutek Wilk wrote:
> Jens,
> 
> Are you OK with this patch? I was thinking to push it for 2.6.39.
> I've it in my tree, but if you would rather carry it for the merge window
> it is in 
> git://git.kernel.org/pub/scm/linux/kernel/git/konrad/xen.git stable/blkfront-cleanup

I'd prefer block drivers going through the block tree, but if you have
it queued and since it's completely local to that driver, go ahead and
keep it in your tree. No worries on my side :-)

You can add my acked-by, if you want.

-- 
Jens Axboe


^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [owen.smith@citrix.com: [Xen-devel] [PATCH 1/2 xen/stable-2.6.32.x] Union the blkif_request request specific fields]
  2011-03-07 19:46 ` Jens Axboe
@ 2011-03-07 19:55   ` Konrad Rzeszutek Wilk
  0 siblings, 0 replies; 3+ messages in thread
From: Konrad Rzeszutek Wilk @ 2011-03-07 19:55 UTC (permalink / raw)
  To: Jens Axboe; +Cc: linux-kernel@vger.kernel.org, owen.smith@citrix.com

On Mon, Mar 07, 2011 at 08:46:45PM +0100, Jens Axboe wrote:
> On 2011-03-07 18:34, Konrad Rzeszutek Wilk wrote:
> > Jens,
> > 
> > Are you OK with this patch? I was thinking to push it for 2.6.39.
> > I've it in my tree, but if you would rather carry it for the merge window
> > it is in 
> > git://git.kernel.org/pub/scm/linux/kernel/git/konrad/xen.git stable/blkfront-cleanup
> 
> I'd prefer block drivers going through the block tree, but if you have
> it queued and since it's completely local to that driver, go ahead and
> keep it in your tree. No worries on my side :-)

OK. Thank you.
> 
> You can add my acked-by, if you want.

Will do.

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2011-03-07 19:56 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-03-07 17:34 [owen.smith@citrix.com: [Xen-devel] [PATCH 1/2 xen/stable-2.6.32.x] Union the blkif_request request specific fields] Konrad Rzeszutek Wilk
2011-03-07 19:46 ` Jens Axboe
2011-03-07 19:55   ` Konrad Rzeszutek Wilk

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).