From patchwork Thu Aug 19 15:48:58 2010 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Martin K. Petersen" X-Patchwork-Id: 62187 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 18FA3B70EF for ; Fri, 20 Aug 2010 01:51:51 +1000 (EST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751833Ab0HSPve (ORCPT ); Thu, 19 Aug 2010 11:51:34 -0400 Received: from rcsinet10.oracle.com ([148.87.113.121]:35582 "EHLO rcsinet10.oracle.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751864Ab0HSPvd (ORCPT ); Thu, 19 Aug 2010 11:51:33 -0400 Received: from rcsinet15.oracle.com (rcsinet15.oracle.com [148.87.113.117]) by rcsinet10.oracle.com (Switch-3.4.2/Switch-3.4.2) with ESMTP id o7JFpMv5022040 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK); Thu, 19 Aug 2010 15:51:23 GMT Received: from acsmt355.oracle.com (acsmt355.oracle.com [141.146.40.155]) by rcsinet15.oracle.com (Switch-3.4.2/Switch-3.4.1) with ESMTP id o7JFpKl2007087; Thu, 19 Aug 2010 15:51:20 GMT Received: from abhmt020.oracle.com by acsmt355.oracle.com with ESMTP id 512367191282232964; Thu, 19 Aug 2010 08:49:24 -0700 Received: from groovelator.mkp.net (/209.217.122.111) by default (Oracle Beehive Gateway v4.0) with ESMTP ; Thu, 19 Aug 2010 08:49:23 -0700 From: "Martin K. Petersen" To: linux-ide@vger.kernel.org, linux-scsi@vger.kernel.org, hch@lst.de Cc: "Martin K. Petersen" Subject: [PATCH 3/6] block: Make max_discard_sectors sector_t Date: Thu, 19 Aug 2010 11:48:58 -0400 Message-Id: <1282232941-9910-4-git-send-email-martin.petersen@oracle.com> X-Mailer: git-send-email 1.7.2.1 In-Reply-To: <1282232941-9910-1-git-send-email-martin.petersen@oracle.com> References: <1282232941-9910-1-git-send-email-martin.petersen@oracle.com> Sender: linux-ide-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-ide@vger.kernel.org With 4KB ATA TRIM payloads we can express ranges above the 32 bits allowed by SCSI. Convert max_discard_sectors to sector_t. Signed-off-by: Martin K. Petersen --- block/blk-lib.c | 5 +++-- block/blk-settings.c | 2 +- include/linux/blkdev.h | 4 ++-- 3 files changed, 6 insertions(+), 5 deletions(-) diff --git a/block/blk-lib.c b/block/blk-lib.c index d0216b9..dbed1e9 100644 --- a/block/blk-lib.c +++ b/block/blk-lib.c @@ -54,8 +54,9 @@ int blkdev_issue_discard(struct block_device *bdev, sector_t sector, while (nr_sects && !ret) { unsigned int sector_size = q->limits.logical_block_size; - unsigned int max_discard_sectors = - min(q->limits.max_discard_sectors, UINT_MAX >> 9); + sector_t max_discard_sectors = + min(q->limits.max_discard_sectors, + (sector_t)UINT_MAX >> 9); bio = bio_alloc(gfp_mask, 1); if (!bio) diff --git a/block/blk-settings.c b/block/blk-settings.c index f5ed5a1..a4a2f42 100644 --- a/block/blk-settings.c +++ b/block/blk-settings.c @@ -246,7 +246,7 @@ EXPORT_SYMBOL(blk_queue_max_hw_sectors); * @max_discard_sectors: maximum number of sectors to discard **/ void blk_queue_max_discard_sectors(struct request_queue *q, - unsigned int max_discard_sectors) + sector_t max_discard_sectors) { q->limits.max_discard_sectors = max_discard_sectors; } diff --git a/include/linux/blkdev.h b/include/linux/blkdev.h index 09a8402..d083146 100644 --- a/include/linux/blkdev.h +++ b/include/linux/blkdev.h @@ -316,7 +316,7 @@ struct queue_limits { unsigned int alignment_offset; unsigned int io_min; unsigned int io_opt; - unsigned int max_discard_sectors; + sector_t max_discard_sectors; unsigned int discard_granularity; unsigned int discard_alignment; @@ -934,7 +934,7 @@ extern void blk_queue_max_hw_sectors(struct request_queue *, unsigned int); extern void blk_queue_max_segments(struct request_queue *, unsigned short); extern void blk_queue_max_segment_size(struct request_queue *, unsigned int); extern void blk_queue_max_discard_sectors(struct request_queue *q, - unsigned int max_discard_sectors); + sector_t max_discard_sectors); extern void blk_queue_logical_block_size(struct request_queue *, unsigned short); extern void blk_queue_physical_block_size(struct request_queue *, unsigned short); extern void blk_queue_alignment_offset(struct request_queue *q,