Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 71fc7eed authored by Andreas Gruenbacher's avatar Andreas Gruenbacher Committed by Philipp Reisner
Browse files

drbd: Turn tl_apply() into tl_abort_disk_io()



There is no need to overly generalize this function; it only makes the code
harder to understand.

Signed-off-by: default avatarPhilipp Reisner <philipp.reisner@linbit.com>
Signed-off-by: default avatarLars Ellenberg <lars.ellenberg@linbit.com>
parent 1b7ab15b
Loading
Loading
Loading
Loading
+4 −9
Original line number Diff line number Diff line
@@ -484,28 +484,23 @@ void tl_restart(struct drbd_tconn *tconn, enum drbd_req_event what)
}

/**
 * tl_apply() - Applies an event to all requests for a certain mdev in the TL
 * tl_abort_disk_io() - Abort disk I/O for all requests for a certain mdev in the TL
 * @mdev:	DRBD device.
 * @what:       The action/event to perform with all request objects
 *
 * @what might ony be ABORT_DISK_IO.
 */
void tl_apply(struct drbd_conf *mdev, enum drbd_req_event what)
void tl_abort_disk_io(struct drbd_conf *mdev)
{
	struct drbd_tconn *tconn = mdev->tconn;
	struct drbd_tl_epoch *b;
	struct list_head *le, *tle;
	struct drbd_request *req;

	D_ASSERT(what == ABORT_DISK_IO);

	spin_lock_irq(&tconn->req_lock);
	b = tconn->oldest_tle;
	while (b) {
		list_for_each_safe(le, tle, &b->requests) {
			req = list_entry(le, struct drbd_request, tl_requests);
			if (req->w.mdev == mdev)
				_req_mod(req, what);
				_req_mod(req, ABORT_DISK_IO);
		}
		b = b->next;
	}
@@ -513,7 +508,7 @@ void tl_apply(struct drbd_conf *mdev, enum drbd_req_event what)
	list_for_each_safe(le, tle, &tconn->barrier_acked_requests) {
		req = list_entry(le, struct drbd_request, tl_requests);
		if (req->w.mdev == mdev)
			_req_mod(req, what);
			_req_mod(req, ABORT_DISK_IO);
	}

	spin_unlock_irq(&tconn->req_lock);
+2 −2
Original line number Diff line number Diff line
@@ -30,7 +30,7 @@
#include "drbd_req.h"

/* in drbd_main.c */
extern void tl_apply(struct drbd_conf *mdev, enum drbd_req_event what);
extern void tl_abort_disk_io(struct drbd_conf *mdev);

struct after_state_chg_work {
	struct drbd_work w;
@@ -1319,7 +1319,7 @@ static void after_state_ch(struct drbd_conf *mdev, union drbd_state os,

		/* Immediately allow completion of all application IO, that waits
		   for completion from the local disk. */
		tl_apply(mdev, ABORT_DISK_IO);
		tl_abort_disk_io(mdev);

		/* current state still has to be D_FAILED,
		 * there is only one way out: to D_DISKLESS,