diff options
author | Lars Ellenberg <lars.ellenberg@linbit.com> | 2011-07-16 01:52:44 +0400 |
---|---|---|
committer | Philipp Reisner <philipp.reisner@linbit.com> | 2012-11-08 19:58:00 +0400 |
commit | 97ddb68790891ed568ab8212189f5173dd600ea4 (patch) | |
tree | 172603f7fb027f172e2eff33e93eb858bc000b1f /drivers/block/drbd/drbd_main.c | |
parent | f497609e4c50c6162b51359d560f2454b184e0ec (diff) | |
download | linux-97ddb68790891ed568ab8212189f5173dd600ea4.tar.xz |
drbd: detach must not try to abort non-local requests
Signed-off-by: Philipp Reisner <philipp.reisner@linbit.com>
Signed-off-by: Lars Ellenberg <lars.ellenberg@linbit.com>
Diffstat (limited to 'drivers/block/drbd/drbd_main.c')
-rw-r--r-- | drivers/block/drbd/drbd_main.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/drivers/block/drbd/drbd_main.c b/drivers/block/drbd/drbd_main.c index 2090b78231a2..edd0227f4b43 100644 --- a/drivers/block/drbd/drbd_main.c +++ b/drivers/block/drbd/drbd_main.c @@ -501,6 +501,8 @@ void tl_abort_disk_io(struct drbd_conf *mdev) while (b) { list_for_each_safe(le, tle, &b->requests) { req = list_entry(le, struct drbd_request, tl_requests); + if (!(req->rq_state & RQ_LOCAL_PENDING)) + continue; if (req->w.mdev == mdev) _req_mod(req, ABORT_DISK_IO); } @@ -509,6 +511,8 @@ void tl_abort_disk_io(struct drbd_conf *mdev) list_for_each_safe(le, tle, &tconn->barrier_acked_requests) { req = list_entry(le, struct drbd_request, tl_requests); + if (!(req->rq_state & RQ_LOCAL_PENDING)) + continue; if (req->w.mdev == mdev) _req_mod(req, ABORT_DISK_IO); } |