From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932839Ab1JXPDd (ORCPT ); Mon, 24 Oct 2011 11:03:33 -0400 Received: from oproxy9.bluehost.com ([69.89.24.6]:33855 "HELO oproxy9.bluehost.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with SMTP id S932128Ab1JXPDc (ORCPT ); Mon, 24 Oct 2011 11:03:32 -0400 Message-ID: <4EA57E40.2020301@tao.ma> Date: Mon, 24 Oct 2011 23:03:28 +0800 From: Tao Ma User-Agent: Mozilla/5.0 (X11; Linux i686 on x86_64; rv:7.0.1) Gecko/20110929 Thunderbird/7.0.1 MIME-Version: 1.0 To: linux-kernel@vger.kernel.org CC: Jens Axboe Subject: Re: [PATCH RESEND] block: warn if tag is greater than real_max_depth. References: <1315984992-5158-1-git-send-email-tm@tao.ma> In-Reply-To: <1315984992-5158-1-git-send-email-tm@tao.ma> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Identified-User: {1390:box585.bluehost.com:colyli:tao.ma} {sentby:smtp auth 111.193.10.11 authed with tm@tao.ma} Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi Jens, any option with this patch? Thanks Tao On 09/14/2011 03:23 PM, Tao Ma wrote: > From: Tao Ma > > In case tag depth is reduced, it is max_depth not real_max_depth. > So we should allow a request with tag >= max_depth, but for a > tag >= real_max_depth, there really should be some problem. > > Cc: Jens Axboe > Signed-off-by: Tao Ma > --- > block/blk-tag.c | 6 ++++-- > 1 files changed, 4 insertions(+), 2 deletions(-) > > diff --git a/block/blk-tag.c b/block/blk-tag.c > index ece65fc..e74d6d1 100644 > --- a/block/blk-tag.c > +++ b/block/blk-tag.c > @@ -286,12 +286,14 @@ void blk_queue_end_tag(struct request_queue *q, struct request *rq) > > BUG_ON(tag == -1); > > - if (unlikely(tag >= bqt->real_max_depth)) > + if (unlikely(tag >= bqt->max_depth)) { > /* > * This can happen after tag depth has been reduced. > - * FIXME: how about a warning or info message here? > + * But tag shouldn't be larger than real_max_depth. > */ > + WARN_ON(tag >= bqt->real_max_depth); > return; > + } > > list_del_init(&rq->queuelist); > rq->cmd_flags &= ~REQ_QUEUED;