From mboxrd@z Thu Jan 1 00:00:00 1970 From: Dan Carpenter Subject: [patch] bio-integrity: use hardware sectors instead of block layer sectors Date: Fri, 7 May 2010 10:29:28 +0200 Message-ID: <20100507082928.GT27064@bicker> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Cc: Jens Axboe , Chuck Ebbert , linux-fsdevel@vger.kernel.org, Alexander Viro , kernel-janitors@vger.kernel.org To: "Martin K. Petersen" Return-path: Received: from mail-wy0-f174.google.com ([74.125.82.174]:59815 "EHLO mail-wy0-f174.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754616Ab0EGI3j (ORCPT ); Fri, 7 May 2010 04:29:39 -0400 Content-Disposition: inline Sender: linux-fsdevel-owner@vger.kernel.org List-ID: Smatch tagged this code as suspicious because we never use the "nr_sectors" variable. Looking at the code, I think we did intend to use "nr_sectors" instead of "sectors" when we call bio_integrity_mark_tail(). The difference between "sectors" and "nr_sectors" is that "sectors" is in terms of 512 byte sectors and "nr_sectors" is in terms of hardware sectors. They are only different for 4k sector devices. Signed-off-by: Dan Carpenter --- I'm only guessing as to the intent and I can't test this myself. Please handle with care. diff --git a/fs/bio-integrity.c b/fs/bio-integrity.c index 612a5c3..ce65453 100644 --- a/fs/bio-integrity.c +++ b/fs/bio-integrity.c @@ -676,7 +676,7 @@ void bio_integrity_trim(struct bio *bio, unsigned int offset, nr_sectors = bio_integrity_hw_sectors(bi, sectors); bip->bip_sector = bip->bip_sector + offset; bio_integrity_mark_head(bip, offset * bi->tuple_size); - bio_integrity_mark_tail(bip, sectors * bi->tuple_size); + bio_integrity_mark_tail(bip, nr_sectors * bi->tuple_size); } EXPORT_SYMBOL(bio_integrity_trim);