diff options
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/block/brd.c | 2 | ||||
-rw-r--r-- | drivers/block/virtio_blk.c | 9 | ||||
-rw-r--r-- | drivers/block/xen-blkfront.c | 8 | ||||
-rw-r--r-- | drivers/scsi/sd.c | 4 |
4 files changed, 5 insertions, 18 deletions
diff --git a/drivers/block/brd.c b/drivers/block/brd.c index 1c7f63792ff8..47a41272d26b 100644 --- a/drivers/block/brd.c +++ b/drivers/block/brd.c | |||
@@ -482,7 +482,7 @@ static struct brd_device *brd_alloc(int i) | |||
482 | if (!brd->brd_queue) | 482 | if (!brd->brd_queue) |
483 | goto out_free_dev; | 483 | goto out_free_dev; |
484 | blk_queue_make_request(brd->brd_queue, brd_make_request); | 484 | blk_queue_make_request(brd->brd_queue, brd_make_request); |
485 | blk_queue_ordered(brd->brd_queue, QUEUE_ORDERED_TAG); | 485 | blk_queue_ordered(brd->brd_queue, QUEUE_ORDERED_DRAIN); |
486 | blk_queue_max_hw_sectors(brd->brd_queue, 1024); | 486 | blk_queue_max_hw_sectors(brd->brd_queue, 1024); |
487 | blk_queue_bounce_limit(brd->brd_queue, BLK_BOUNCE_ANY); | 487 | blk_queue_bounce_limit(brd->brd_queue, BLK_BOUNCE_ANY); |
488 | 488 | ||
diff --git a/drivers/block/virtio_blk.c b/drivers/block/virtio_blk.c index 2aafafca2b13..79652809eee8 100644 --- a/drivers/block/virtio_blk.c +++ b/drivers/block/virtio_blk.c | |||
@@ -395,15 +395,6 @@ static int __devinit virtblk_probe(struct virtio_device *vdev) | |||
395 | * to implement write barrier support. | 395 | * to implement write barrier support. |
396 | */ | 396 | */ |
397 | blk_queue_ordered(q, QUEUE_ORDERED_DRAIN_FLUSH); | 397 | blk_queue_ordered(q, QUEUE_ORDERED_DRAIN_FLUSH); |
398 | } else if (virtio_has_feature(vdev, VIRTIO_BLK_F_BARRIER)) { | ||
399 | /* | ||
400 | * If the BARRIER feature is supported the host expects us | ||
401 | * to order request by tags. This implies there is not | ||
402 | * volatile write cache on the host, and that the host | ||
403 | * never re-orders outstanding I/O. This feature is not | ||
404 | * useful for real life scenarious and deprecated. | ||
405 | */ | ||
406 | blk_queue_ordered(q, QUEUE_ORDERED_TAG); | ||
407 | } else { | 398 | } else { |
408 | /* | 399 | /* |
409 | * If the FLUSH feature is not supported we must assume that | 400 | * If the FLUSH feature is not supported we must assume that |
diff --git a/drivers/block/xen-blkfront.c b/drivers/block/xen-blkfront.c index ac1b682edecb..50ec6f834996 100644 --- a/drivers/block/xen-blkfront.c +++ b/drivers/block/xen-blkfront.c | |||
@@ -424,8 +424,7 @@ static int xlvbd_barrier(struct blkfront_info *info) | |||
424 | const char *barrier; | 424 | const char *barrier; |
425 | 425 | ||
426 | switch (info->feature_barrier) { | 426 | switch (info->feature_barrier) { |
427 | case QUEUE_ORDERED_DRAIN: barrier = "enabled (drain)"; break; | 427 | case QUEUE_ORDERED_DRAIN: barrier = "enabled"; break; |
428 | case QUEUE_ORDERED_TAG: barrier = "enabled (tag)"; break; | ||
429 | case QUEUE_ORDERED_NONE: barrier = "disabled"; break; | 428 | case QUEUE_ORDERED_NONE: barrier = "disabled"; break; |
430 | default: return -EINVAL; | 429 | default: return -EINVAL; |
431 | } | 430 | } |
@@ -1078,8 +1077,7 @@ static void blkfront_connect(struct blkfront_info *info) | |||
1078 | * we're dealing with a very old backend which writes | 1077 | * we're dealing with a very old backend which writes |
1079 | * synchronously; draining will do what needs to get done. | 1078 | * synchronously; draining will do what needs to get done. |
1080 | * | 1079 | * |
1081 | * If there are barriers, then we can do full queued writes | 1080 | * If there are barriers, then we use flush. |
1082 | * with tagged barriers. | ||
1083 | * | 1081 | * |
1084 | * If barriers are not supported, then there's no much we can | 1082 | * If barriers are not supported, then there's no much we can |
1085 | * do, so just set ordering to NONE. | 1083 | * do, so just set ordering to NONE. |
@@ -1087,7 +1085,7 @@ static void blkfront_connect(struct blkfront_info *info) | |||
1087 | if (err) | 1085 | if (err) |
1088 | info->feature_barrier = QUEUE_ORDERED_DRAIN; | 1086 | info->feature_barrier = QUEUE_ORDERED_DRAIN; |
1089 | else if (barrier) | 1087 | else if (barrier) |
1090 | info->feature_barrier = QUEUE_ORDERED_TAG; | 1088 | info->feature_barrier = QUEUE_ORDERED_DRAIN_FLUSH; |
1091 | else | 1089 | else |
1092 | info->feature_barrier = QUEUE_ORDERED_NONE; | 1090 | info->feature_barrier = QUEUE_ORDERED_NONE; |
1093 | 1091 | ||
diff --git a/drivers/scsi/sd.c b/drivers/scsi/sd.c index 2714becc2eaf..cdfc51ab9cf2 100644 --- a/drivers/scsi/sd.c +++ b/drivers/scsi/sd.c | |||
@@ -2151,9 +2151,7 @@ static int sd_revalidate_disk(struct gendisk *disk) | |||
2151 | 2151 | ||
2152 | /* | 2152 | /* |
2153 | * We now have all cache related info, determine how we deal | 2153 | * We now have all cache related info, determine how we deal |
2154 | * with ordered requests. Note that as the current SCSI | 2154 | * with ordered requests. |
2155 | * dispatch function can alter request order, we cannot use | ||
2156 | * QUEUE_ORDERED_TAG_* even when ordered tag is supported. | ||
2157 | */ | 2155 | */ |
2158 | if (sdkp->WCE) | 2156 | if (sdkp->WCE) |
2159 | ordered = sdkp->DPOFUA | 2157 | ordered = sdkp->DPOFUA |