From: Philipp Reisner <philipp.reisner@linbit.com>
Date: Thu, 20 May 2010 08:04:17 +0000 (+0200)
Subject: drbd: Fix: Do not detach, if a bio with a barrier fails
X-Git-Url: http://git.maquefel.me/?a=commitdiff_plain;h=fc8ce1941d668c70e57a07f13f5a63e73e5dbff3;p=linux.git

drbd: Fix: Do not detach, if a bio with a barrier fails

Introduced a few days ago:
  commit 45bb912bd5ea4d2b3a270a93cbdf767a0e2df6f5
  Author: Lars Ellenberg <lars.ellenberg@linbit.com>
  Date:   Fri May 14 17:10:48 2010 +0200

Signed-off-by: Philipp Reisner <philipp.reisner@linbit.com>
Signed-off-by: Lars Ellenberg <lars.ellenberg@linbit.com>
Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
---

diff --git a/drivers/block/drbd/drbd_worker.c b/drivers/block/drbd/drbd_worker.c
index 91085c1ab52fa..15c96207e6266 100644
--- a/drivers/block/drbd/drbd_worker.c
+++ b/drivers/block/drbd/drbd_worker.c
@@ -127,7 +127,7 @@ static void drbd_endio_write_sec_final(struct drbd_epoch_entry *e) __releases(lo
 		drbd_bump_write_ordering(mdev, WO_bdev_flush);
 		spin_lock_irqsave(&mdev->req_lock, flags);
 		list_del(&e->w.list);
-		e->flags |= EE_RESUBMITTED;
+		e->flags = (e->flags & ~EE_WAS_ERROR) | EE_RESUBMITTED;
 		e->w.cb = w_e_reissue;
 		/* put_ldev actually happens below, once we come here again. */
 		__release(local);