From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mx3-rdu2.redhat.com ([66.187.233.73]:49110 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1752172AbeDKCLU (ORCPT ); Tue, 10 Apr 2018 22:11:20 -0400 Date: Wed, 11 Apr 2018 10:11:05 +0800 From: Ming Lei To: Bart Van Assche Cc: Jens Axboe , linux-block@vger.kernel.org, Christoph Hellwig , Tejun Heo , Sagi Grimberg , Israel Rukshin , Max Gurtovoy , stable@vger.kernel.org Subject: Re: [PATCH v5] blk-mq: Avoid that a completion can be ignored for BLK_EH_RESET_TIMER Message-ID: <20180411021104.GC4494@ming.t460p> References: <20180410210157.30477-1-bart.vanassche@wdc.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20180410210157.30477-1-bart.vanassche@wdc.com> Sender: stable-owner@vger.kernel.org List-ID: On Tue, Apr 10, 2018 at 03:01:57PM -0600, Bart Van Assche wrote: > The blk-mq timeout handling code ignores completions that occur after > blk_mq_check_expired() has been called and before blk_mq_rq_timed_out() > has reset rq->aborted_gstate. If a block driver timeout handler always > returns BLK_EH_RESET_TIMER then the result will be that the request > never terminates. Under this situation: IMO, if this request has been handled by driver's irq handler, and if driver's .timeout still returns BLK_EH_RESET_TIMER, it is driver's bug, and the correct return value should be BLK_EH_HANDLED. -- Ming