drbd: Removed the now empty w_io_error() function
Signed-off-by: Philipp Reisner <philipp.reisner@linbit.com> Signed-off-by: Lars Ellenberg <lars.ellenberg@linbit.com> Signed-off-by: Jens Axboe <jaxboe@fusionio.com>
This commit is contained in:
parent
039e1fb654
commit
32fa7e91f9
@ -1474,7 +1474,6 @@ extern int w_e_end_ov_req(struct drbd_conf *, struct drbd_work *, int);
|
||||
extern int w_ov_finished(struct drbd_conf *, struct drbd_work *, int);
|
||||
extern int w_resync_inactive(struct drbd_conf *, struct drbd_work *, int);
|
||||
extern int w_resume_next_sg(struct drbd_conf *, struct drbd_work *, int);
|
||||
extern int w_io_error(struct drbd_conf *, struct drbd_work *, int);
|
||||
extern int w_send_write_hint(struct drbd_conf *, struct drbd_work *, int);
|
||||
extern int w_make_resync_request(struct drbd_conf *, struct drbd_work *, int);
|
||||
extern int w_send_dblock(struct drbd_conf *, struct drbd_work *, int);
|
||||
|
@ -102,32 +102,7 @@ static void _req_is_done(struct drbd_conf *mdev, struct drbd_request *req, const
|
||||
}
|
||||
}
|
||||
|
||||
/* if it was a local io error, we want to notify our
|
||||
* peer about that, and see if we need to
|
||||
* detach the disk and stuff.
|
||||
* to avoid allocating some special work
|
||||
* struct, reuse the request. */
|
||||
|
||||
/* THINK
|
||||
* why do we do this not when we detect the error,
|
||||
* but delay it until it is "done", i.e. possibly
|
||||
* until the next barrier ack? */
|
||||
|
||||
if (rw == WRITE &&
|
||||
((s & RQ_LOCAL_MASK) && !(s & RQ_LOCAL_OK))) {
|
||||
if (!(req->w.list.next == LIST_POISON1 ||
|
||||
list_empty(&req->w.list))) {
|
||||
/* DEBUG ASSERT only; if this triggers, we
|
||||
* probably corrupt the worker list here */
|
||||
dev_err(DEV, "req->w.list.next = %p\n", req->w.list.next);
|
||||
dev_err(DEV, "req->w.list.prev = %p\n", req->w.list.prev);
|
||||
}
|
||||
req->w.cb = w_io_error;
|
||||
drbd_queue_work(&mdev->data.work, &req->w);
|
||||
/* drbd_req_free() is done in w_io_error */
|
||||
} else {
|
||||
drbd_req_free(req);
|
||||
}
|
||||
drbd_req_free(req);
|
||||
}
|
||||
|
||||
static void queue_barrier(struct drbd_conf *mdev)
|
||||
|
@ -257,20 +257,6 @@ void drbd_endio_pri(struct bio *bio, int error)
|
||||
complete_master_bio(mdev, &m);
|
||||
}
|
||||
|
||||
int w_io_error(struct drbd_conf *mdev, struct drbd_work *w, int cancel)
|
||||
{
|
||||
struct drbd_request *req = container_of(w, struct drbd_request, w);
|
||||
|
||||
/* NOTE: mdev->ldev can be NULL by the time we get here! */
|
||||
/* D_ASSERT(mdev->ldev->dc.on_io_error != EP_PASS_ON); */
|
||||
|
||||
/* the only way this callback is scheduled is from _req_may_be_done,
|
||||
* when it is done and had a local write error, see comments there */
|
||||
drbd_req_free(req);
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
int w_read_retry_remote(struct drbd_conf *mdev, struct drbd_work *w, int cancel)
|
||||
{
|
||||
struct drbd_request *req = container_of(w, struct drbd_request, w);
|
||||
|
Loading…
Reference in New Issue
Block a user