Okay, reverting this:
http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=52b1fd5a27
commit 52b1fd5a27c625c78373e024bf570af3c9d44a79 Author: Mikulas Patocka <email address hidden> Date: Mon Jun 22 10:12:21 2009 +0100
dm: send empty barriers to targets in dm_flush
Pass empty barrier flushes to the targets in dm_flush().
Signed-off-by: Mikulas Patocka <email address hidden> Signed-off-by: Alasdair G Kergon <email address hidden>
fixes it for me
Also, this little hack fixes it too:
@@ -1163,7 +1163,7 @@ static int __make_request(struct request_queue *q, struct const int unplug = bio_unplug(bio); int rw_flags;
- if (bio_barrier(bio) && bio_has_data(bio) && + if (bio_barrier(bio) && /* bio_has_data(bio) && */ (q->next_ordered == QUEUE_ORDERED_NONE)) { bio_endio(bio, -EOPNOTSUPP); return 0;
virtio_blk doesn't support barriers, and it seems these empty barriers submitted by device-mapper are getting through to the device and causing these errors
Okay, reverting this:
http:// git.kernel. org/?p= linux/kernel/ git/torvalds/ linux-2. 6.git;a= commitdiff; h=52b1fd5a27
commit 52b1fd5a27c625c 78373e024bf570a f3c9d44a79
Author: Mikulas Patocka <email address hidden>
Date: Mon Jun 22 10:12:21 2009 +0100
dm: send empty barriers to targets in dm_flush
Pass empty barrier flushes to the targets in dm_flush().
Signed-off-by: Mikulas Patocka <email address hidden>
Signed-off-by: Alasdair G Kergon <email address hidden>
fixes it for me
Also, this little hack fixes it too:
@@ -1163,7 +1163,7 @@ static int __make_ request( struct request_queue *q, struct
const int unplug = bio_unplug(bio);
int rw_flags;
- if (bio_barrier(bio) && bio_has_data(bio) &&
(q->next_ ordered == QUEUE_ORDERED_ NONE)) {
bio_ endio(bio, -EOPNOTSUPP);
return 0;
+ if (bio_barrier(bio) && /* bio_has_data(bio) && */
virtio_blk doesn't support barriers, and it seems these empty barriers submitted by device-mapper are getting through to the device and causing these errors