drbd: Fix: Do not detach, if a bio with a barrier fails
authorPhilipp Reisner <philipp.reisner@linbit.com>
Thu, 20 May 2010 08:04:17 +0000 (10:04 +0200)
committerJens Axboe <jens.axboe@oracle.com>
Fri, 21 May 2010 19:12:00 +0000 (21:12 +0200)
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>
drivers/block/drbd/drbd_worker.c

index 91085c1ab52faca1511b531c050fdeb814e2e89a..15c96207e6266f4f40ebb1ef4ad45efb44948fc0 100644 (file)
@@ -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);