Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 251222
b: refs/heads/master
c: 314146e
h: refs/heads/master
v: v3
  • Loading branch information
Tom Goetz authored and Konrad Rzeszutek Wilk committed Apr 14, 2011
1 parent a5dae76 commit 494578a
Show file tree
Hide file tree
Showing 2 changed files with 7 additions and 5 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: a742b02c75e6e76bd0833f9b6e702f1be7d7e008
refs/heads/master: 314146e515710f8a7d7eaf7a58b7ed590c9c14c3
10 changes: 6 additions & 4 deletions trunk/drivers/xen/blkback/blkback.c
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,8 @@
#include <asm/xen/hypercall.h>
#include "common.h"

#define WRITE_BARRIER (REQ_WRITE | REQ_FLUSH | REQ_FUA)

/*
* These are rather arbitrary. They are fairly large because adjacent requests
* pulled from a communication ring are quite likely to end up being part of
Expand Down Expand Up @@ -420,7 +422,7 @@ static void dispatch_rw_block_io(blkif_t *blkif,
operation = WRITE;
break;
case BLKIF_OP_WRITE_BARRIER:
operation = REQ_FLUSH | REQ_FUA;
operation = WRITE_BARRIER;
break;
default:
operation = 0; /* make gcc happy */
Expand All @@ -429,7 +431,7 @@ static void dispatch_rw_block_io(blkif_t *blkif,

/* Check that number of segments is sane. */
nseg = req->nr_segments;
if (unlikely(nseg == 0 && operation != (REQ_FLUSH | REQ_FUA)) ||
if (unlikely(nseg == 0 && operation != WRITE_BARRIER) ||
unlikely(nseg > BLKIF_MAX_SEGMENTS_PER_REQUEST)) {
DPRINTK("Bad number of segments in request (%d)\n", nseg);
goto fail_response;
Expand Down Expand Up @@ -537,7 +539,7 @@ static void dispatch_rw_block_io(blkif_t *blkif,
}

if (!bio) {
BUG_ON(operation != (REQ_FLUSH | REQ_FUA));
BUG_ON(operation != WRITE_BARRIER);
bio = bio_alloc(GFP_KERNEL, 0);
if (unlikely(bio == NULL))
goto fail_put_bio;
Expand All @@ -552,7 +554,7 @@ static void dispatch_rw_block_io(blkif_t *blkif,

if (operation == READ)
blkif->st_rd_sect += preq.nr_sects;
else if (operation == WRITE || operation == (REQ_FLUSH | REQ_FUA))
else if (operation == WRITE || operation == WRITE_BARRIER)
blkif->st_wr_sect += preq.nr_sects;

return;
Expand Down

0 comments on commit 494578a

Please sign in to comment.