mirror of https://gitee.com/openkylin/linux.git
block: fix blk_abort_request on blk-mq
Signed-off-by: Christoph Hellwig <hch@lst.de> Moved blk_mq_rq_timed_out() definition to the private blk-mq.h header. Signed-off-by: Jens Axboe <axboe@fb.com>
This commit is contained in:
parent
5e940aaa59
commit
9041583765
|
@ -530,7 +530,7 @@ struct blk_mq_timeout_data {
|
||||||
unsigned int next_set;
|
unsigned int next_set;
|
||||||
};
|
};
|
||||||
|
|
||||||
static void blk_mq_rq_timed_out(struct request *req, bool reserved)
|
void blk_mq_rq_timed_out(struct request *req, bool reserved)
|
||||||
{
|
{
|
||||||
struct blk_mq_ops *ops = req->q->mq_ops;
|
struct blk_mq_ops *ops = req->q->mq_ops;
|
||||||
enum blk_eh_timer_return ret = BLK_EH_RESET_TIMER;
|
enum blk_eh_timer_return ret = BLK_EH_RESET_TIMER;
|
||||||
|
|
|
@ -60,6 +60,8 @@ extern int blk_mq_hw_queue_to_node(unsigned int *map, unsigned int);
|
||||||
extern int blk_mq_sysfs_register(struct request_queue *q);
|
extern int blk_mq_sysfs_register(struct request_queue *q);
|
||||||
extern void blk_mq_sysfs_unregister(struct request_queue *q);
|
extern void blk_mq_sysfs_unregister(struct request_queue *q);
|
||||||
|
|
||||||
|
extern void blk_mq_rq_timed_out(struct request *req, bool reserved);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Basic implementation of sparser bitmap, allowing the user to spread
|
* Basic implementation of sparser bitmap, allowing the user to spread
|
||||||
* the bits over more cachelines.
|
* the bits over more cachelines.
|
||||||
|
|
|
@ -7,6 +7,7 @@
|
||||||
#include <linux/fault-inject.h>
|
#include <linux/fault-inject.h>
|
||||||
|
|
||||||
#include "blk.h"
|
#include "blk.h"
|
||||||
|
#include "blk-mq.h"
|
||||||
|
|
||||||
#ifdef CONFIG_FAIL_IO_TIMEOUT
|
#ifdef CONFIG_FAIL_IO_TIMEOUT
|
||||||
|
|
||||||
|
@ -158,7 +159,10 @@ void blk_abort_request(struct request *req)
|
||||||
if (blk_mark_rq_complete(req))
|
if (blk_mark_rq_complete(req))
|
||||||
return;
|
return;
|
||||||
blk_delete_timer(req);
|
blk_delete_timer(req);
|
||||||
blk_rq_timed_out(req);
|
if (req->q->mq_ops)
|
||||||
|
blk_mq_rq_timed_out(req, false);
|
||||||
|
else
|
||||||
|
blk_rq_timed_out(req);
|
||||||
}
|
}
|
||||||
EXPORT_SYMBOL_GPL(blk_abort_request);
|
EXPORT_SYMBOL_GPL(blk_abort_request);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue