[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <1515449400.2909.31.camel@wdc.com>
Date: Mon, 8 Jan 2018 22:10:01 +0000
From: Bart Van Assche <Bart.VanAssche@....com>
To: "jbacik@...com" <jbacik@...com>, "tj@...nel.org" <tj@...nel.org>,
"jack@...e.cz" <jack@...e.cz>, "clm@...com" <clm@...com>,
"axboe@...nel.dk" <axboe@...nel.dk>
CC: "hoeppner@...ux.vnet.ibm.com" <hoeppner@...ux.vnet.ibm.com>,
"linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>,
"peterz@...radead.org" <peterz@...radead.org>,
"linux-block@...r.kernel.org" <linux-block@...r.kernel.org>,
"sth@...ux.vnet.ibm.com" <sth@...ux.vnet.ibm.com>,
"kernel-team@...com" <kernel-team@...com>,
"asamymuthupa@...ron.com" <asamymuthupa@...ron.com>,
"linux-btrfs@...r.kernel.org" <linux-btrfs@...r.kernel.org>,
"jianchao.w.wang@...cle.com" <jianchao.w.wang@...cle.com>
Subject: Re: [PATCH 5/8] blk-mq: make blk_abort_request() trigger timeout path
On Mon, 2018-01-08 at 11:15 -0800, Tejun Heo wrote:
> @@ -156,12 +156,12 @@ void blk_timeout_work(struct work_struct *work)
> */
> void blk_abort_request(struct request *req)
> {
> - if (blk_mark_rq_complete(req))
> - return;
> -
> if (req->q->mq_ops) {
> - blk_mq_rq_timed_out(req, false);
> + req->deadline = jiffies;
> + mod_timer(&req->q->timeout, 0);
> } else {
> + if (blk_mark_rq_complete(req))
> + return;
> blk_delete_timer(req);
> blk_rq_timed_out(req);
> }
Other req->deadline writes are protected by preempt_disable(),
write_seqcount_begin(&rq->gstate_seq), write_seqcount_end(&rq->gstate_seq)
and preempt_enable(). I think it's fine that the above req->deadline store
does not have that protection but I also think that that deserves a comment.
Thanks,
Bart.
Powered by blists - more mailing lists