From mboxrd@z Thu Jan 1 00:00:00 1970 From: Boaz Harrosh Subject: [PATCH 6/6] osdblk: Adjust queue limits to lower device's limits Date: Wed, 17 Jun 2009 19:07:52 +0300 Message-ID: <1245254872-8717-1-git-send-email-bharrosh@panasas.com> References: <4A391373.3050301@panasas.com> Cc: linux-fsdevel , linux-kernel To: Jeff Garzik , open-osd Return-path: Received: from ip67-152-220-66.z220-152-67.customer.algx.net ([67.152.220.66]:11580 "EHLO daytona.int.panasas.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1754355AbZFQQHv (ORCPT ); Wed, 17 Jun 2009 12:07:51 -0400 In-Reply-To: <4A391373.3050301@panasas.com> Sender: linux-fsdevel-owner@vger.kernel.org List-ID: call blk_queue_stack_limits() to copy queue limits from the underline osd scsi_device. This is absolutely needed because osdblk cannot sleep when allocating a lower-request and therefore cannot be bouncing. TODO: Dynamic changes of limits to the lower device queue will not reflect in the upper driver Signed-off-by: Boaz Harrosh --- drivers/block/osdblk.c | 7 +++++++ 1 files changed, 7 insertions(+), 0 deletions(-) diff --git a/drivers/block/osdblk.c b/drivers/block/osdblk.c index e829360..b07e154 100644 --- a/drivers/block/osdblk.c +++ b/drivers/block/osdblk.c @@ -66,6 +66,7 @@ #include #include #include +#include #define DRV_NAME "osdblk" #define PFX DRV_NAME ": " @@ -410,6 +411,12 @@ static int osdblk_init_disk(struct osdblk_device *osdev) return rc; } + /* Set our limits to the lower device limits, because osdblk cannot + * sleep when allocating a lower-request and therefore cannot be + * bouncing. + */ + blk_queue_stack_limits(q, osd_request_queue(osdev->osd)); + blk_queue_prep_rq(q, blk_queue_start_tag); blk_queue_ordered(q, QUEUE_ORDERED_DRAIN_FLUSH, osdblk_prepare_flush); -- 1.6.2.1