From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id C8F0EC43334 for ; Thu, 30 Jun 2022 16:01:46 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235636AbiF3QBq (ORCPT ); Thu, 30 Jun 2022 12:01:46 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:39578 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S234330AbiF3QBp (ORCPT ); Thu, 30 Jun 2022 12:01:45 -0400 Received: from bombadil.infradead.org (bombadil.infradead.org [IPv6:2607:7c80:54:3::133]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id A4D53205F3 for ; Thu, 30 Jun 2022 09:01:44 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=bombadil.20210309; h=Content-Transfer-Encoding: MIME-Version:References:In-Reply-To:Message-Id:Date:Subject:Cc:To:From:Sender :Reply-To:Content-Type:Content-ID:Content-Description; bh=IHZvI1OBi75H1LS/lv952isi431PbtpSPyywaKsAc6Q=; b=DXhB6CMdoOd2Jwm1Yjj2rAdSUD sLlDBqSPDJD+gDy7xb/nmc0PeUIPDg2nHDpFrjxggs/Cg6sukvYd922SsIFMZtg8ykDhAKv4cnGcn 2AOscIfBKysgpgfTTAWxHyculQmjCKyvNI+COrPO4uCexL2k/kLnNEP9u/A166PDZXGujDBW49u/N Xkx8O+ZavkA7Tt/XWqT6sFcQb9YH9px+lfEs95JjzX1lUjRRkC8e83OINLCSAmhMimc9fSftYIAGD W7fc/uUJGhZMMb+hqCcvH5GWjgo+lSBdbw8V/xqUXez3JtzgaSX/FJWdb5MCme7DqpYMRLmL5uLwY 9/wI9GWA==; Received: from [2001:4bb8:199:3788:3ea8:4fde:60a4:7dbf] (helo=localhost) by bombadil.infradead.org with esmtpsa (Exim 4.94.2 #2 (Red Hat Linux)) id 1o6wbt-000TOd-RI; Thu, 30 Jun 2022 16:01:42 +0000 From: Christoph Hellwig To: Chris Mason , Josef Bacik , David Sterba Cc: linux-btrfs@vger.kernel.org, Boris Burkov Subject: [PATCH 3/4] btrfs: remove the start argument to check_data_csum Date: Thu, 30 Jun 2022 18:01:29 +0200 Message-Id: <20220630160130.2550001-4-hch@lst.de> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20220630160130.2550001-1-hch@lst.de> References: <20220630160130.2550001-1-hch@lst.de> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org. See http://www.infradead.org/rpr.html Precedence: bulk List-ID: X-Mailing-List: linux-btrfs@vger.kernel.org Just derive it from the btrfs_bio now that ->file_offset is always valid. Also make the function available outside of inode.c as we'll need that soon. Signed-off-by: Christoph Hellwig Reviewed-by: Boris Burkov --- fs/btrfs/ctree.h | 2 ++ fs/btrfs/inode.c | 22 +++++++++------------- 2 files changed, 11 insertions(+), 13 deletions(-) diff --git a/fs/btrfs/ctree.h b/fs/btrfs/ctree.h index 4e2569f84aabc..164f54e6aa447 100644 --- a/fs/btrfs/ctree.h +++ b/fs/btrfs/ctree.h @@ -3293,6 +3293,8 @@ int btrfs_check_sector_csum(struct btrfs_fs_info *fs_info, struct page *page, unsigned int btrfs_verify_data_csum(struct btrfs_bio *bbio, u32 bio_offset, struct page *page, u64 start, u64 end); +int check_data_csum(struct inode *inode, struct btrfs_bio *bbio, u32 bio_offset, + struct page *page, u32 pgoff); struct extent_map *btrfs_get_extent_fiemap(struct btrfs_inode *inode, u64 start, u64 len); noinline int can_nocow_extent(struct inode *inode, u64 offset, u64 *len, diff --git a/fs/btrfs/inode.c b/fs/btrfs/inode.c index a627b2af9e243..429428fde4a88 100644 --- a/fs/btrfs/inode.c +++ b/fs/btrfs/inode.c @@ -3396,20 +3396,18 @@ int btrfs_check_sector_csum(struct btrfs_fs_info *fs_info, struct page *page, /* * check_data_csum - verify checksum of one sector of uncompressed data * @inode: inode - * @io_bio: btrfs_io_bio which contains the csum + * @bbio: btrfs_io_bio which contains the csum * @bio_offset: offset to the beginning of the bio (in bytes) * @page: page where is the data to be verified * @pgoff: offset inside the page - * @start: logical offset in the file * * The length of such check is always one sector size. * * When csum mismatch is detected, we will also report the error and fill the * corrupted range with zero. (Thus it needs the extra parameters) */ -static int check_data_csum(struct inode *inode, struct btrfs_bio *bbio, - u32 bio_offset, struct page *page, u32 pgoff, - u64 start) +int check_data_csum(struct inode *inode, struct btrfs_bio *bbio, u32 bio_offset, + struct page *page, u32 pgoff) { struct btrfs_fs_info *fs_info = btrfs_sb(inode->i_sb); u32 len = fs_info->sectorsize; @@ -3425,8 +3423,9 @@ static int check_data_csum(struct inode *inode, struct btrfs_bio *bbio, return 0; zeroit: - btrfs_print_data_csum_error(BTRFS_I(inode), start, csum, csum_expected, - bbio->mirror_num); + btrfs_print_data_csum_error(BTRFS_I(inode), + bbio->file_offset + bio_offset, + csum, csum_expected, bbio->mirror_num); if (bbio->device) btrfs_dev_stat_inc_and_print(bbio->device, BTRFS_DEV_STAT_CORRUPTION_ERRS); @@ -3495,8 +3494,7 @@ unsigned int btrfs_verify_data_csum(struct btrfs_bio *bbio, EXTENT_NODATASUM); continue; } - ret = check_data_csum(inode, bbio, bio_offset, page, pg_off, - page_offset(page) + pg_off); + ret = check_data_csum(inode, bbio, bio_offset, page, pg_off); if (ret < 0) { const int nr_bit = (pg_off - offset_in_page(start)) >> root->fs_info->sectorsize_bits; @@ -7946,7 +7944,7 @@ static blk_status_t btrfs_check_read_dio_bio(struct btrfs_dio_private *dip, if (uptodate && (!csum || !check_data_csum(inode, bbio, offset, bv.bv_page, - bv.bv_offset, start))) { + bv.bv_offset))) { clean_io_failure(fs_info, failure_tree, io_tree, start, bv.bv_page, btrfs_ino(BTRFS_I(inode)), bv.bv_offset); @@ -10324,7 +10322,6 @@ static blk_status_t btrfs_encoded_read_verify_csum(struct btrfs_bio *bbio) u32 sectorsize = fs_info->sectorsize; struct bio_vec *bvec; struct bvec_iter_all iter_all; - u64 start = priv->file_offset; u32 bio_offset = 0; if (priv->skip_csum || !uptodate) @@ -10338,9 +10335,8 @@ static blk_status_t btrfs_encoded_read_verify_csum(struct btrfs_bio *bbio) for (i = 0; i < nr_sectors; i++) { ASSERT(pgoff < PAGE_SIZE); if (check_data_csum(&inode->vfs_inode, bbio, bio_offset, - bvec->bv_page, pgoff, start)) + bvec->bv_page, pgoff)) return BLK_STS_IOERR; - start += sectorsize; bio_offset += sectorsize; pgoff += sectorsize; } -- 2.30.2