On Tue, 2017-10-03 at 10:47 +0200, Christoph Hellwig wrote:
> -static struct request *blk_pm_peek_request(struct request_queue *q,
> - struct request *rq)
> +static bool blk_pm_allow_request(struct request *rq)
> {
> - if (q->dev && (q->rpm_status == RPM_SUSPENDED ||
> - (q->rpm_status != RPM_ACTIVE && !(rq->rq_flags & RQF_PM))))
> - return NULL;
> - else
> - return rq;
> + if (!rq->q->dev)
> + return true;
> +
> + switch (rq->q->rpm_status) {
> + case RPM_SUSPENDED:
> + return false;
> + case RPM_ACTIVE:
> + return rq->rq_flags & RQF_PM;
> + default:
> + return true;
> + }
> }
Hello Christoph,
The old code does not process non-PM requests in the RPM_SUSPENDING mode nor
in the RPM_RESUMING code. I think the new code processes all requests in
these two modes. Was that behavior change intended?
Thanks,
Bart.