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>
This commit is contained in:
Lars Ellenberg 2011-07-15 23:52:44 +02:00 committed by Philipp Reisner
parent f497609e4c
commit 97ddb68790
2 changed files with 6 additions and 0 deletions

View file

@ -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);
}

View file

@ -436,6 +436,7 @@ int __req_mod(struct drbd_request *req, enum drbd_req_event what,
/* so we can verify the handle in the answer packet
* corresponding hlist_del is in _req_may_be_done() */
D_ASSERT(drbd_interval_empty(&req->i));
drbd_insert_interval(&mdev->read_requests, &req->i);
set_bit(UNPLUG_REMOTE, &mdev->flags);
@ -453,6 +454,7 @@ int __req_mod(struct drbd_request *req, enum drbd_req_event what,
/* from __drbd_make_request only */
/* corresponding hlist_del is in _req_may_be_done() */
D_ASSERT(drbd_interval_empty(&req->i));
drbd_insert_interval(&mdev->write_requests, &req->i);
/* NOTE