From nobody Tue Sep 16 05:16:00 2025 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 CF6E8C54E76 for ; Fri, 6 Jan 2023 05:46:44 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231326AbjAFFqc (ORCPT ); Fri, 6 Jan 2023 00:46:32 -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?B?dmtSWHpkVmJMT0xaV0xienBhcTAxM1U2TG9MZkpEdkVEdVFpV0RJVktmQW1B?= =?utf-8?B?UE80YVM2NG9WcERHeFAwYmFxNWt6VWoxKzN5SlRtVmFPcUQ4S0s2M3VJTXhp?= =?utf-8?B?MU5MRlBoZUZLZWtac3BMbUVLeXhnSk1lUUU5dHR3QzUwc0pKLzhEU25PMDYw?= =?utf-8?B?KzRyQmpOMzN6SFJvK0lNUWlSNEFiKzdDMGZ4VzVNVkh4ZDNxVWxmL2lTL2hR?= =?utf-8?B?bGlvelR2MFUwb2l0NUpLa3RMaWN0NzFPWk12NCtJRWx3VEJRcGIyOWg1V25z?= =?utf-8?B?b1JmOG5sT0wyYzV4WlM0YW5WUmplNVdOdmFPRVdZaFQ0UXVoaHA2dlR5cndk?= =?utf-8?B?Ykt1dEhsaGpOcnliVVhJNkVQSUJTSEQrZ1puYXVSV1ZramtiQ3Jlb25jaWdl?= =?utf-8?B?aUpRZEJOR0RKcFhPbzBzS2FVaWNad0Q0K09HTWVPalJQSDhnM0x6YTljWkoz?= =?utf-8?B?cGlpSHcrdEM2VjROOU1ENXZENUVwTXhSWldiMThoVXVwTlpWTjZodHNaNG5F?= =?utf-8?B?UTBtYnJ2S2ZUKzFmWkxRWXlnYSsxcXZKc0ozNW5IQTYySEZpT3B4T24xVVE3?= =?utf-8?B?bTdtcEtDQlJhV2V5eUdmSmE5bkM3bW1ZaHg5RWxrZTZ0U2w1bFoyQTUyL0RW?= =?utf-8?B?Vzg0WEZNS3h3RVk0SWsxaHNYc1VWRHpVZ1pIemd3YVdNK0tNNHk5KzVZSHd0?= =?utf-8?B?cC9NOC9XYU1VM1FSRWpaazRmcU5DWHFZck5ReXZ0OU1McWdTa3AxcDZxRmRq?= =?utf-8?B?d1Nld1k1TE45S0k4ZnpIbE5CU2plT1cwNzZpTkZTMVpGOHIzQWxyeXlCK3VN?= =?utf-8?B?WVlzbG50c1BFbkp3SEhQc2MxakNpdUVEUHNSZ0hIZDFpaE85S1FLZERHNUFL?= =?utf-8?B?M0lQUGRUR0dUNmgvRnh0bG41VWljMXI1K05VQ1ZpVFRYU0h6VDFYeGZIUER2?= =?utf-8?B?NnBsSTg1NnNiUW8xOEVTS1F3a0NPZnREUFBQZ1h5c2hBcUcrR1JhNGxncGZm?= =?utf-8?B?RUZkQ01Xb2NtcmthNE1ZRzZWc0w5Q0ZrQXVKZnhOZXRPd0p0WmtqU0lKK0NG?= =?utf-8?B?bUVJQlVVVUR3MXk1TVlkZW1PdGhxaXoxN2o0YVBNNHdRak5EajVGalRHTjhL?= =?utf-8?B?UzlNM3J3Nk1OSzBPQlJaZDZpWDRRWU9GN3Y4SXh1SU5rek5UaHgzaWpvcDlH?= =?utf-8?B?L3IraU5KWXlRWHd4MkFmV25vU1Q4bWFiZXF0K1p3VmVtRmFUK2ZLNDRkRG41?= =?utf-8?B?bktqZzJ1WjJDRTJFeVpsSFliS2d5ZzlBYzY4cjczMjFzNWJwUTBQQnpKNHZF?= =?utf-8?B?cHhXYVFUcWxGeEhGdzlMK2hZR1BCRmVvNmN4MDdnaW1SYjFKV3J4Wk9ic3Jk?= =?utf-8?B?Nlh5V2dOWFpTWkM5Rk1IS3NWWDM4Z08wZFVjRFZESm5jN3ZDSUNUSDVBMmdZ?= =?utf-8?B?VjVwcjcwbjZWT2p1eDlEcEtQeVFyZHpjeHZnSXVjd2JSR3pSb0pZV0R1MENq?= =?utf-8?B?aXZ1a28vd1RFZ1FlWFFGdndrR3ZkejJtNW1GVDBtbUpUSnJLQjBlbmx1cHdX?= =?utf-8?B?cjdjejFxZ3BrQUFDeDAzQkI4bWlxSElrN0ZQNnJzSWR1Z1h4akd4ZjZLRnho?= =?utf-8?B?QnM5dTVTSzVQZ2dIVE8wMHMyTk1hUFhtSXc5U25QcGtLOFhjSmRGeTl6ZEZ2?= =?utf-8?B?amNwcDhLKzRXWGsxM3VERVlRUDMxbUo3bktDczhkUG5SQmJaWXluS0FiNktk?= =?utf-8?B?STJROHB1OTRXbzNzU1YwaGtKTjlYbUFWV3JlU1FBbEhZZ1BtTkdDYzFVYyt5?= =?utf-8?B?bHJKMEZzdVVUZ2pzdzNBK2htR3FXdnU2bVhBZVcvRTcrUUFtZ092enBWTW1p?= =?utf-8?B?S2JJRkRYcmVIckNINmd2ZElseFl3MWwrVFRpY1JzRDJzcjVGeGFGZUJMZEFj?= =?utf-8?B?d1ByZzZMckJ4TitQRi9OTjBsUnp6R01DTEJKSWNPdm1qbDFPd2NIbzBicTJ6?= =?utf-8?B?eXBPV3JVS0M4aEFlYU54bzB3elNMS2tSZ1Fjckhzb2hQdFJ0RjBmOEJML0ZN?= =?utf-8?B?T0ttbmduaGdXNnVOeVpGdUVBcUxZbUpxMXRtY2JGOXlPT3dJQ0RjUFRpMlZq?= =?utf-8?Q?GVK1G4fGQopqy0bo2hH3RwtbC?= Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable 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-kernel@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; =20 - inode->i_blocks =3D round_up(i_size_read(inode), sbi->cluster_size) >> - inode->i_blkbits; + inode->i_blocks =3D round_up(i_size_read(inode), sbi->cluster_size) >> 9; write_size: aligned_size =3D 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, unsig= ned int clu_offset, num_clusters +=3D num_to_be_allocated; *clu =3D new_clu.dir; =20 - inode->i_blocks +=3D - num_to_be_allocated << sbi->sect_per_clus_bits; + inode->i_blocks +=3D EXFAT_CLU_TO_B(num_to_be_allocated, sbi) >> 9; =20 /* * 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) =20 exfat_save_attr(inode, info->attr); =20 - inode->i_blocks =3D round_up(i_size_read(inode), sbi->cluster_size) >> - inode->i_blkbits; + inode->i_blocks =3D round_up(i_size_read(inode), sbi->cluster_size) >> 9; inode->i_mtime =3D info->mtime; inode->i_ctime =3D info->mtime; ei->i_crtime =3D 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 +=3D sbi->cluster_size; ei->i_size_aligned +=3D sbi->cluster_size; ei->flags =3D p_dir->flags; - inode->i_blocks +=3D 1 << sbi->sect_per_clus_bits; + inode->i_blocks +=3D sbi->cluster_size >> 9; } =20 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 =3D &exfat_dir_inode_operations; inode->i_fop =3D &exfat_dir_operations; =20 - inode->i_blocks =3D round_up(i_size_read(inode), sbi->cluster_size) >> - inode->i_blkbits; + inode->i_blocks =3D round_up(i_size_read(inode), sbi->cluster_size) >> 9; ei->i_pos =3D ((loff_t)sbi->root_dir << 32) | 0xffffffff; ei->i_size_aligned =3D i_size_read(inode); ei->i_size_ondisk =3D i_size_read(inode); --=20 2.25.1