mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-11-30 12:16:45 +07:00
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: Philipp Reisner <philipp.reisner@linbit.com> Signed-off-by: Lars Ellenberg <lars.ellenberg@linbit.com>
This commit is contained in:
parent
1b7ab15b11
commit
71fc7eedb3
@ -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.
|
* @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_tconn *tconn = mdev->tconn;
|
||||||
struct drbd_tl_epoch *b;
|
struct drbd_tl_epoch *b;
|
||||||
struct list_head *le, *tle;
|
struct list_head *le, *tle;
|
||||||
struct drbd_request *req;
|
struct drbd_request *req;
|
||||||
|
|
||||||
D_ASSERT(what == ABORT_DISK_IO);
|
|
||||||
|
|
||||||
spin_lock_irq(&tconn->req_lock);
|
spin_lock_irq(&tconn->req_lock);
|
||||||
b = tconn->oldest_tle;
|
b = tconn->oldest_tle;
|
||||||
while (b) {
|
while (b) {
|
||||||
list_for_each_safe(le, tle, &b->requests) {
|
list_for_each_safe(le, tle, &b->requests) {
|
||||||
req = list_entry(le, struct drbd_request, tl_requests);
|
req = list_entry(le, struct drbd_request, tl_requests);
|
||||||
if (req->w.mdev == mdev)
|
if (req->w.mdev == mdev)
|
||||||
_req_mod(req, what);
|
_req_mod(req, ABORT_DISK_IO);
|
||||||
}
|
}
|
||||||
b = b->next;
|
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) {
|
list_for_each_safe(le, tle, &tconn->barrier_acked_requests) {
|
||||||
req = list_entry(le, struct drbd_request, tl_requests);
|
req = list_entry(le, struct drbd_request, tl_requests);
|
||||||
if (req->w.mdev == mdev)
|
if (req->w.mdev == mdev)
|
||||||
_req_mod(req, what);
|
_req_mod(req, ABORT_DISK_IO);
|
||||||
}
|
}
|
||||||
|
|
||||||
spin_unlock_irq(&tconn->req_lock);
|
spin_unlock_irq(&tconn->req_lock);
|
||||||
|
@ -30,7 +30,7 @@
|
|||||||
#include "drbd_req.h"
|
#include "drbd_req.h"
|
||||||
|
|
||||||
/* in drbd_main.c */
|
/* 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 after_state_chg_work {
|
||||||
struct drbd_work w;
|
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
|
/* Immediately allow completion of all application IO, that waits
|
||||||
for completion from the local disk. */
|
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,
|
/* current state still has to be D_FAILED,
|
||||||
* there is only one way out: to D_DISKLESS,
|
* there is only one way out: to D_DISKLESS,
|
||||||
|
Loading…
Reference in New Issue
Block a user