From patchwork Fri Jan 6 05:45:19 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Yuezhang.Mo@sony.com" X-Patchwork-Id: 13090938 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 9F2A1C3DA7A for ; Fri, 6 Jan 2023 05:46:44 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230313AbjAFFqa (ORCPT ); Fri, 6 Jan 2023 00:46:30 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:42850 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229509AbjAFFq2 (ORCPT ); Fri, 6 Jan 2023 00:46:28 -0500 Received: from mx08-001d1705.pphosted.com (mx08-001d1705.pphosted.com [185.183.30.70]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id C927D3E842; Thu, 5 Jan 2023 21:46:26 -0800 (PST) Received: from pps.filterd (m0209318.ppops.net [127.0.0.1]) by mx08-001d1705.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 3064gDjZ025234; Fri, 6 Jan 2023 05:46:11 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sony.com; h=from : to : cc : subject : date : message-id : content-type : content-transfer-encoding : mime-version; s=S1; bh=5YJ5kMK5pyZMZgjgHylPOxjOKuXW/t4yQe4ybOFyZsc=; b=VRdAvW5Lx+8bk5ecVZEEbRWg9wbC4aUt52ppPeDPxVLrSRElO8O5tr2fVAVGSimTXomZ my5Yqu8lHGQ+w+jeDmTZHntdyPABSfC/jd1raomEfmWg4djeuPy5APztEEczQufIZOKk dfCpz2g9dHEnHBOk7X8HHdg81zE1yjDS+i6MO4Zs69Hcwc/hQpqQsS9O19yTFqjtC8Q5 XRGQk6EiOLQ/Sm41nwC/Xy/aCYqqLcyvrhja8psSKt+MmBDMgnByW4A3OwKCVvNH9ZNp X0QMoSmFQHXjsdLFmfC3zg56a+q7EAktATUrfQfGFxsNw5Eq3bERyW5rvVw3PO5wjFs5 Kw== Received: from apc01-psa-obe.outbound.protection.outlook.com (mail-psaapc01lp2042.outbound.protection.outlook.com [104.47.26.42]) by mx08-001d1705.pphosted.com (PPS) with ESMTPS id 3mtbn6ncxm-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 06 Jan 2023 05:46:10 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=ZYAMMnA3NKo8DAVWYuNX1P/RRkTZom76HNZFOjM/WRK1QpIanOmpWhYQtBwQSuyLg6vWrMz22csehJQvl1kGX/iOhFOg7lDFonJOQXjIEk0S7KpzUiDm1Cky/gDy8S9DCqDJsn1rrXcnIjaj9qPUDSnwhSbd4xDju6Ty5k/3kzBA7lYT46jd5/qWRDfe4DmbCZ5ikjnhaHyY9VLgDNYnGKlzqMFwuPt0AeU/cB+fQMXElTcHFNetP8XVjWpKfcAHXxV24UHDtEU+9HWOCQzoorKHFsTM8AVsRy3vjpwtOxVY3Kl9L2+7OGFPz5AhQw1o3hQe3I44vg+dcCtneknSkQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=5YJ5kMK5pyZMZgjgHylPOxjOKuXW/t4yQe4ybOFyZsc=; b=B+jTabIOWEp+Ve+Kzgx70PJXHnG3yoWIydsG8b1F91nqXFOzPOIUskisSGe4ZQOTeUPTPiyr1dC2zI8Xn8L3AFQR3qhiACqri09/wxLpHTuyXLeEYlZZ7nqAcInq+lthV2lD1p0dr05JFYK0+M0DgB3J++J/3ias5ozRnF5NLD0Xhlh60NgXP8HEnJJUzMSYkOPnmU/zkeUFp7KeVD1vCUneasy0fgzc3Zmv65Cv2GcKs57FCWEOGw9BDJ8vE1KZulgolrP6uHQ48QFTbbBft210VkpgZO/tiBtOoFGcItnBzTLEbDv2tdV2L/sFmmZje94m8mjcOjaeSctz8mPslQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=sony.com; dmarc=pass action=none header.from=sony.com; dkim=pass header.d=sony.com; arc=none Received: from PUZPR04MB6316.apcprd04.prod.outlook.com (2603:1096:301:fc::7) by TYZPR04MB5680.apcprd04.prod.outlook.com (2603:1096:400:1c7::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5986.14; Fri, 6 Jan 2023 05:45:19 +0000 Received: from PUZPR04MB6316.apcprd04.prod.outlook.com ([fe80::1cb5:18cc:712d:1f13]) by PUZPR04MB6316.apcprd04.prod.outlook.com ([fe80::1cb5:18cc:712d:1f13%7]) with mapi id 15.20.5986.009; Fri, 6 Jan 2023 05:45:19 +0000 From: "Yuezhang.Mo@sony.com" To: "linkinjeon@kernel.org" , "sj1557.seo@samsung.com" CC: "linux-kernel@vger.kernel.org" , "linux-fsdevel@vger.kernel.org" , Wang Yugui , "Andy.Wu@sony.com" Subject: [PATCH v2] exfat: fix inode->i_blocks for non-512 byte sector size device Thread-Topic: [PATCH v2] exfat: fix inode->i_blocks for non-512 byte sector size device Thread-Index: AdkhkSpzW+Z4xVa9TL695QpkCntjkg== Date: Fri, 6 Jan 2023 05:45:19 +0000 Message-ID: Accept-Language: zh-CN, en-US Content-Language: zh-CN X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ms-publictraffictype: Email x-ms-traffictypediagnostic: PUZPR04MB6316:EE_|TYZPR04MB5680:EE_ x-ms-office365-filtering-correlation-id: c96e237a-a844-46a6-e79e-08daefa93240 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: uTtEZnyohjVJ+4JgzoGpCAjmE1979aOcOmK1tWATHdOXUKSfOFGnVk78+Xq3MKFindT6bcgPkVBYEg3AglR/lW0srlh7UDy3u3H+eh+l3FzXa8pB5fGwKUjuLD2X+lmoP4Rxl07STNKmDfvF6ENH4uRYUp0hvmDIrufV56JvhTTVtXY1EG3jugMh5fy2p2taptOnXRPygYPfMRSr88WMrmnyEXbU1nOxhdcJYiscju7YQ61wNbXFYtdvO1RcLEzReeZQcAQBVB78WAY7TwM+7pKlSNBBZvkUn4PA6aqrPlhBjinuNFbsDmygqVANTp4/bwJcNb95j3YFH7IXm3/vNu4gS0VXJsyjp+BKC4BsxmUtvsZ25yEM8g4EPLCvs+4wMdFIP8lMjBptmdAlhFseY3g/CKWUS6ruUhm72y1dJugPEXu9BrE6tyMIXLzQhoTfwt3538Zmp9/edZL7LZllv9BiPT4BZ9KUkjDzYE874zXKPJGRaGZ3l4uzvY6kDZ2wCOHnPr3LkLgg9ZXDiRht5p3VYYxwEe18kEfUBGuC7ON0ERtqwnA4mgx77nx96fGwu0grAZ8b3ewBt9+QQoEzZ9drbE5jFYLcPFPKu37tsuF/zag+HoihS7LxtATdrREqIKgr9doJXzRYGG4BCqyy01CX8vVQ6UX7QD/Awv0hLHAZwkIx/CghBx3S07EyUC7jbelM3Pguv2hs3RIhnO315Q== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PUZPR04MB6316.apcprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230022)(4636009)(376002)(136003)(346002)(366004)(396003)(39860400002)(451199015)(38100700002)(33656002)(71200400001)(122000001)(83380400001)(8936002)(41300700001)(66476007)(66556008)(64756008)(52536014)(66446008)(5660300002)(107886003)(38070700005)(2906002)(66946007)(4326008)(76116006)(26005)(478600001)(86362001)(6506007)(8676002)(7696005)(9686003)(186003)(110136005)(54906003)(82960400001)(316002)(55016003);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?q?vkRXzdVbLOLZWLbzpaq013U6LoLf?= =?utf-8?q?JDvEDuQiWDIVKfAmAPO4aS64oVpDGxP0baq5kzUj1+3yJTmVaOqD8KK63uIMxi1NL?= =?utf-8?q?FPheFKekZspLmEKyxgJMeQE9ttwC50sJJ/8DSnO060+4rBjN33zHRo+IMQiR4Ab+7?= =?utf-8?q?C0fxW5MVHxd3qUlf/iS/hQliozTv0U0oit5JKktLict71OZMv4+IElwTBQpb29h5W?= =?utf-8?q?nsoRf8nlOL2c5xZS4anVRje5WNvaOEWYhT4Quhhp6vTyrwdbKutHlhjNrybUXI6EP?= =?utf-8?q?IBSHD+gZnauRWVkjkbCreoncigeiJQdBNGDJpXOo0sKaUicZwD4+OGMeOjRPH8g3L?= =?utf-8?q?za9cZJ3piiHw+tC6V4N9MD5vD5EpMxRZWb18hUupNZVN6htsZ4nEQ0mbrvKfT+1fZ?= =?utf-8?q?LQYyga+1qvJsJ35nHA62HFiOpxOn1UQ7m7mpKCBRaWeyyGfJa9nC7mmYhx9Elke6t?= =?utf-8?q?Sl5lZ2A52/DVW84XFMKxwEY4Ik1hsXsUVDzUgZHzgwaWM+KM4y9+5YHwtp/M8/WaM?= =?utf-8?q?U3QREjZk4fqNCXqYrNQyvt9MLqgSkp1p6qFdjwSewY5LN9KI8fzHlNBSjeOW076iN?= =?utf-8?q?FS1ZF8r3AlryyB+uMYYslntsPEnJwHHPsc1jCiuEDPsRgHHd1ihO9KQKdDG5AK3IP?= =?utf-8?q?PdTGGT6h/Fxtln5Uic1r5+NUCViTTXSHzT1XxfHPDv6plI856sbQo18ESKQwkCOft?= =?utf-8?q?DPPPgXyshAqG+GRa4lgpffEFdCMWocmrka4MYG6VsL9CFkAuJfxNetOwJtZkjSIJ+?= =?utf-8?q?CFmEIBUUUDw1y5MYdemOthqiz17j4aPM4wQjNDj5FjTGN8KS9M3rw6MNK0OBRZd6i?= =?utf-8?q?X4QYOF7v8IxuINkzNThx3ijop9G/r+iNJYyQXwx2AfWnoST8mabeqt+ZwVemFaT+f?= =?utf-8?q?K44dDn5nKjg2uZ2CE2EyZlHYbKgyg9Ac68r7321s5bpQ0PBzJ4vEpxWaQTqlFxHFw?= =?utf-8?q?9L+hYGPBFeo6cx07gimRb1JWrxZObsrd6XyWgNXZSZC9FMHKsVX38gO0dUcDVDJnc?= =?utf-8?q?7vCICTH5A2gYV5pr70n6VOjux9DpKPyQrdzcxvgIucwbRGzRoJYWDu0Cjivuko/wT?= =?utf-8?q?EgQeXQFvwkGvdz2m5mFT0mmJTJrKB0enlupwWr7cz1qgpkAACx03BB8miqHIk7FP6?= =?utf-8?q?rsIdugXxjGxf6KFxhBs9u5SK5PggHTO00s2NMaPXmIw9SnPpkK8XcJdFy9zdFvjcp?= =?utf-8?q?p8K+4WXk13uDEYQP31mJ7nKCs8dPnRBbZYynKAb6KdI2Q8pu94Wo3sSV0hkJN9XmA?= =?utf-8?q?VWreSQAlHYgPmNGCc1Uc+ylrJ0FsuUTgjsw3A+hmGqWvu6mXAeW/E7+QAmgOvzpVM?= =?utf-8?q?miKbIFDXreHrCH6gvdIlxYw1l+TTicRsD2sr5FxaFeBLdAcwPrg6LrBxN+PF/NN0l?= =?utf-8?q?RzzGMCLBJIcOvmjl1OwcHo0bq2zypOWrUKC8hAeaNxo0wzSLKkRgQcrHsohPtRtF0?= =?utf-8?q?f8BL/FMOKmngnhgW6uNyZFuEAqLYmJq1tmcbF9yOOwICDcPTi2VjGVK1G4fGQopqy?= =?utf-8?q?0bo2hH3RwtbC?= MIME-Version: 1.0 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: 7/UcECzZB9kWiugmzn8TndAIuSPGmXy9DuLKXjqw5vg0wMF1MwgJyn/mgn9lkdCx14Dl3skj1PISOjnEqzQwSWMk71cnZeElMmg8+4IcFnUIrZqszR2DVf1UBxCqXCmzULvfqi/eAou+oXnMjVZCltTfZA8Lnaxdtyt5jblZ6bVsQWtGigN6lYWCeRbj1kSdtFm7RXJn/Iuij+HmPfltt+hKW7NLKOXUhDzEVvDix7LEQSZPQGxYj6aGvmPC6avcbACGliMnku9jSilr19RN2IL3Z5jKptN9LydOHMlp1nGQO7bXqCVYTPr/MdXJhBbaERA/PtLxsE4twFqIUxxGOMrRHNhQDk7nwGc/x0dYRiclJ239WqYsLD/SRT83r2bY2SlLsaHCgrV1/jJ1DfL+cIXjX1ZXkSbPJo8BVnWJ6I8k1cC6MJV23ku1YBcEmHj8rf+Kh+yjseZWuBO/dav+EF7dQJIYnFBirHELzcKs9ZpKkPjPGld58uSiC7ypDoJnMyYuGKnzgqTdy8rW15PpKhBdvQVgKIBzaJPNcTfalBY/5WT9EStFwTlAb/HELivAKtjMk6rywJk1M4Eaz4FssRK/20Cw0/+wM4CAQ6Uk5ZLVxUBUQNsi7uKSfVqpCqole7fPmCsIhopumwL78GiYsjmoDqtzd+P1mLoB5dovr46MTSw5Qwz8PiR6x0zrSB2563ejzvXxaxLBhvZCZhJcM6AIIM1avmTcoDJ6u5up/YwhQsOXk+eY1RiYrDaoPC8HLasjfebdzc+pmB6RpsQfPXPjBXK4zddZ354EttFtVLM5zDy+kAUolSdMKCiFL62EEUVchvGFTT8xOeT7hZUnOb7gXM+uyyUsYaS+G91WRAy/kKixF7afzlUuRVmeNxzV X-OriginatorOrg: sony.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: PUZPR04MB6316.apcprd04.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: c96e237a-a844-46a6-e79e-08daefa93240 X-MS-Exchange-CrossTenant-originalarrivaltime: 06 Jan 2023 05:45:19.7816 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 66c65d8a-9158-4521-a2d8-664963db48e4 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: prNCg2kqDSMZa22qo2Zjlz8/aaD0NLyB3fMsyBBSUtt/ujRnvHWOoUBeHbFoFgfFB5zHo4fWAsdsleEPNWmVYA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: TYZPR04MB5680 X-Proofpoint-ORIG-GUID: 5TgLCvXEqhm8AFNA0BTeXh-H_C5pqPkn X-Proofpoint-GUID: 5TgLCvXEqhm8AFNA0BTeXh-H_C5pqPkn X-Sony-Outbound-GUID: 5TgLCvXEqhm8AFNA0BTeXh-H_C5pqPkn X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.205,Aquarius:18.0.923,Hydra:6.0.545,FMLib:17.11.122.1 definitions=2023-01-06_01,2023-01-05_02,2022-06-22_01 Precedence: bulk List-ID: X-Mailing-List: linux-fsdevel@vger.kernel.org inode->i_blocks is not real number of blocks, but 512 byte ones. Fixes: 98d917047e8b ("exfat: add file operations") Fixes: 5f2aa075070c ("exfat: add inode operations") Fixes: 719c1e182916 ("exfat: add super block operations") Reported-by: Wang Yugui Signed-off-by: Yuezhang Mo Reviewed-by: Andy Wu --- Changes for v2: - don't call inode_add_bytes()/inode_set_bytes(), just use >> 9. fs/exfat/file.c | 3 +-- fs/exfat/inode.c | 6 ++---- fs/exfat/namei.c | 2 +- fs/exfat/super.c | 3 +-- 4 files changed, 5 insertions(+), 9 deletions(-) diff --git a/fs/exfat/file.c b/fs/exfat/file.c index f5b29072775d..b33431c74c8a 100644 --- a/fs/exfat/file.c +++ b/fs/exfat/file.c @@ -209,8 +209,7 @@ void exfat_truncate(struct inode *inode) if (err) goto write_size; - inode->i_blocks = round_up(i_size_read(inode), sbi->cluster_size) >> - inode->i_blkbits; + inode->i_blocks = round_up(i_size_read(inode), sbi->cluster_size) >> 9; write_size: aligned_size = i_size_read(inode); if (aligned_size & (blocksize - 1)) { diff --git a/fs/exfat/inode.c b/fs/exfat/inode.c index 5b644cb057fa..481dd338f2b8 100644 --- a/fs/exfat/inode.c +++ b/fs/exfat/inode.c @@ -220,8 +220,7 @@ static int exfat_map_cluster(struct inode *inode, unsigned int clu_offset, num_clusters += num_to_be_allocated; *clu = new_clu.dir; - inode->i_blocks += - num_to_be_allocated << sbi->sect_per_clus_bits; + inode->i_blocks += EXFAT_CLU_TO_B(num_to_be_allocated, sbi) >> 9; /* * Move *clu pointer along FAT chains (hole care) because the @@ -576,8 +575,7 @@ static int exfat_fill_inode(struct inode *inode, struct exfat_dir_entry *info) exfat_save_attr(inode, info->attr); - inode->i_blocks = round_up(i_size_read(inode), sbi->cluster_size) >> - inode->i_blkbits; + inode->i_blocks = round_up(i_size_read(inode), sbi->cluster_size) >> 9; inode->i_mtime = info->mtime; inode->i_ctime = info->mtime; ei->i_crtime = info->crtime; diff --git a/fs/exfat/namei.c b/fs/exfat/namei.c index 5f995eba5dbb..7442fead0279 100644 --- a/fs/exfat/namei.c +++ b/fs/exfat/namei.c @@ -396,7 +396,7 @@ static int exfat_find_empty_entry(struct inode *inode, ei->i_size_ondisk += sbi->cluster_size; ei->i_size_aligned += sbi->cluster_size; ei->flags = p_dir->flags; - inode->i_blocks += 1 << sbi->sect_per_clus_bits; + inode->i_blocks += sbi->cluster_size >> 9; } return dentry; diff --git a/fs/exfat/super.c b/fs/exfat/super.c index 35f0305cd493..8c32460e031e 100644 --- a/fs/exfat/super.c +++ b/fs/exfat/super.c @@ -373,8 +373,7 @@ static int exfat_read_root(struct inode *inode) inode->i_op = &exfat_dir_inode_operations; inode->i_fop = &exfat_dir_operations; - inode->i_blocks = round_up(i_size_read(inode), sbi->cluster_size) >> - inode->i_blkbits; + inode->i_blocks = round_up(i_size_read(inode), sbi->cluster_size) >> 9; ei->i_pos = ((loff_t)sbi->root_dir << 32) | 0xffffffff; ei->i_size_aligned = i_size_read(inode); ei->i_size_ondisk = i_size_read(inode);