From patchwork Thu Apr 10 09:40:41 2025 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: 14046265 Received: from mx07-001d1705.pphosted.com (mx07-001d1705.pphosted.com [185.132.183.11]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 5E91326FA4F for ; Thu, 10 Apr 2025 10:09:08 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=185.132.183.11 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744279752; cv=fail; b=YTEwDNjTCtw32jvH+LgmnbCgyjaAF7JvVImIE6JdPkep/uTbAfb4HFsfDFXQbKYI/pbGmbHh246saxIeDZ5KHL3C/8noKQZ06HzgFDEETIaL5usp/9+L7a06CXPnSO8PeCI0ZzwWbg7G58VZD+eLYL+ZONpCKf80+UVd7Ecc6s8= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744279752; c=relaxed/simple; bh=X5uzHe6RKdHVtcPq2JbohvxG8jagfhLo8cGSl2OnVtk=; h=From:To:CC:Subject:Date:Message-ID:Content-Type:MIME-Version; b=jKpbsxwdidgxiAKCV0HgZMxFIZWs326vJYNbKLzdxAxzS8FvfUTmUgq80ArflCf45TGYshoatE8bjFbRrkwjpf60Szw3BFGWmqNoL2WFf80ne8vXoPnO36A/5IuHYJjFDL6IOfAwuNNhhXf132492AWUe+m4O/1b6Rp+zfrGTzI= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=sony.com; spf=pass smtp.mailfrom=sony.com; dkim=pass (2048-bit key) header.d=sony.com header.i=@sony.com header.b=KhVhNk4E; arc=fail smtp.client-ip=185.132.183.11 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=sony.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=sony.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=sony.com header.i=@sony.com header.b="KhVhNk4E" Received: from pps.filterd (m0209328.ppops.net [127.0.0.1]) by mx08-001d1705.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 53A6Tggi005092; Thu, 10 Apr 2025 09:40:51 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sony.com; h=cc :content-type:date:from:message-id:mime-version:subject:to; s= S1; bh=ApmNMMqNC4RulzgrQxwfzp3Z24py9u/ellor90Yxhvw=; b=KhVhNk4EP B6/HVCqZYL7VQNl0Exz5/G3iMFrs+lQuCWgAL1iNQ0C7lqM6A+Swni/hX/UySOcr iTwVMQ891/6VfaLySJZ8r9WnfuHrjNjmK9ryi3tkd/ZGHuBZu3VAF2KT/ExuyVai YDr34vRQQq5BfWQzBW3IrDJxC3unB7NOqExvgVubNvdREngJuEVOZDCaui/gfNWk 7VapkJnL95LlVXrSPdth4EY+ioPp2NyWMo5QUa4l1XmGqY6lMnKx6G+6nMiKepWI YWuyecqIxrR1uQupeDY7cfsRClXyoxMpaCRYK5WhEMMvYbWmnc/XVK2srmIDzRGl DDBBUiCGWpv3g== Received: from apc01-tyz-obe.outbound.protection.outlook.com (mail-tyzapc01lp2049.outbound.protection.outlook.com [104.47.110.49]) by mx08-001d1705.pphosted.com (PPS) with ESMTPS id 45twpjcuba-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 10 Apr 2025 09:40:51 +0000 (GMT) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=gtMhHIAxN7+qBRo4WY4U2/qKY0GAUygBm9eXoRV8Lv9T0D0T4k4PNHC5cbwr5E3XcS8w6EdxH2mRtbBmZMYWAqTTIW552cIsbGtf9VU+2BS5lATo2baWLMe89hmw8OsumorUba7MXDevX5zTz9luzrcQgV9wuJfR4RLm6O/HVZPeL2K28J3NZYRlYWusIiXra36Bce0diAjb6UbiUgKQ6jxT1Px8fmi41AS8mbR8ufLQl3qwm8Bq0RbMHWq4SwH77fxle0yLfrEMD0dQ0BgmJcwRs0JLrap0MTpNFCfWKkW3WdU0J5M40+c/H/dg+FAdnpKMMAyj5ECYqyg1a66zCg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; 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=ApmNMMqNC4RulzgrQxwfzp3Z24py9u/ellor90Yxhvw=; b=ru/YYQt+zoJr+XlLrJzmSax18eBYnWjWTVeah2Ac8S2nwfWGjAqRs740VJBtIbGMev80yGsWgNqP8FuLyGcOlxNactxCcFqecn91rbkfs/X08gIyXkIUHhosnkCRdnSlgmDiIiNNiZl2KAa4LHpap71jssL/vsqZ0fw/KrmZJ699uXn31rHGgCVZetQJLOaR4g8WflKbQx0Z9ZLIO8TsdFWQlP+GA0v/TPCCwrNUB/vvqgnHfC5zmIPEghOgGdCBM8LNcmiZ4t71fqVh7ern6lMNzEFIxhEqt1opkF72xhf5EyJAMi4p6Vi66op6f/MyAE4p4hS/cqoik/gLcfZYHg== 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 TYZPR04MB5784.apcprd04.prod.outlook.com (2603:1096:400:1fe::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8606.33; Thu, 10 Apr 2025 09:40:41 +0000 Received: from PUZPR04MB6316.apcprd04.prod.outlook.com ([fe80::409e:64d3:cee0:7b06]) by PUZPR04MB6316.apcprd04.prod.outlook.com ([fe80::409e:64d3:cee0:7b06%4]) with mapi id 15.20.8606.029; Thu, 10 Apr 2025 09:40:41 +0000 From: "Yuezhang.Mo@sony.com" To: "linkinjeon@kernel.org" , "sj1557.seo@samsung.com" CC: "linux-fsdevel@vger.kernel.org" Subject: [PATCH v1] exfat: do not clear volume dirty flag during sync Thread-Topic: [PATCH v1] exfat: do not clear volume dirty flag during sync Thread-Index: AQHbqfsOkAAQ6BC01E6p2zt2I+nt+Q== Date: Thu, 10 Apr 2025 09:40:41 +0000 Message-ID: Accept-Language: en-US, zh-CN Content-Language: en-US X-MS-Has-Attach: yes X-MS-TNEF-Correlator: msip_labels: x-ms-publictraffictype: Email x-ms-traffictypediagnostic: PUZPR04MB6316:EE_|TYZPR04MB5784:EE_ x-ms-office365-filtering-correlation-id: 72b94539-5e1f-4f94-4b84-08dd7813c250 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0;ARA:13230040|1800799024|376014|10070799003|366016|38070700018|4053099003; x-microsoft-antispam-message-info: =?iso-8859-1?q?NxsRonIvhx5rhzVEXV/qNntQdf?= =?iso-8859-1?q?1zjyCtQ40ioPLsRciR8I+UOYwiIqzYidPzVT7l9gRnh3GfpmrN4pSpHebrPk?= =?iso-8859-1?q?h6QoaF9DwQpQYhCPTXnb726G82GuMO06rM4KBeymVKc2ikdqSzje5DQ80CV7?= =?iso-8859-1?q?5yeBs5KV9fNBOeqjtj7hzKNVTkhdah7QjwWcwrEkl6137tWDRg/I+Gpm5T5b?= =?iso-8859-1?q?S5YFEd83kUzn0tFOq6/7fME0nXrobbh72/NhVeAfe1KqYhAImfWfqbfCdjDD?= =?iso-8859-1?q?2cXxWQAfNNa2VCMTcwgXOAVbzbvWETHJmRfpG5TtULXJpD483p9h/xYqbuIe?= =?iso-8859-1?q?iUYfzQnCFD7A/7Ayod23Ya0bYq3BdrRS1ybEmVbIC0XMqE8LdwDz4YKIusax?= =?iso-8859-1?q?8WlpPrW88pjCKxuqBR8/mAoidBKYzk6dBl1MtoKnFbi96hNou7wiELmBjgZ3?= =?iso-8859-1?q?9z4wn8n/W37whVpa7RehQGehd7IbnFesdeKH0CrGsvb3mL9kuy/Eb6+AYM1s?= =?iso-8859-1?q?hk6MdFLJr8EFv8q40b+QXtEiyqyZoF7zfLVIxMRuK3QdB7RiEB1FvCDf8JpJ?= =?iso-8859-1?q?xq7GswB9F3LZW5GHGCAO3cgHTYWLX8H25ubClcj13R64J3sWvZAlxmfmOW90?= =?iso-8859-1?q?yS+EvtNWVFms6nDKAX2wSk1cX+OJi5QUEhMp/JIjjN4Spd4tOpFYi5vnxM00?= =?iso-8859-1?q?9vaROGyNdrCbMZNG1Q67RmTTVCW+KDHeI4V+ecUqEFrlGK/Ynq/yTRJUZebY?= =?iso-8859-1?q?sIdQChqY0BfdQhOtiKYwAF3/VltupwHEvNQZ0LORY5FD5qsvRTsOJ83KbYxo?= =?iso-8859-1?q?9JZZt7Ib7dtpjdw097EIxJ7UX9pJPysPPE0arlBFNCwfhWOhkcSGRXecHhzK?= =?iso-8859-1?q?ifWz//Db1OuhwNwVYykqv8rCxmVuoXn6ELfzIzXRusxlnOZpcDSw3hItYIBu?= =?iso-8859-1?q?TZ5J8mkps31xOiRTR85vAwsIxLE886YlRQ5Y36cvmAi/zBySlovUy+prOAhI?= =?iso-8859-1?q?RSWn2LlwEcopEcElREBLH14Y7tDuSTMXUYH2fNY7ueIMoQ8hPCnjfenodiIA?= =?iso-8859-1?q?Bh7zlL05y5Oou+cuZua8gUdnKjhDCkHZVfhyZPd0h84GIZW4N51lf8SM/9ma?= =?iso-8859-1?q?/cT/BShJI01g7Er6gF8DYN0goc6r7jWj8OtCBKp6sFm+KNYD3NhMvkKoyHC5?= =?iso-8859-1?q?eaVB86wic4Lr7Ylwi+JRd+w0BeDwWE7Ikl/fZTB+e8Z+pULC99DYK2e6sG+A?= =?iso-8859-1?q?BI1+d4rcVfAmzY/I+FYMQ5XckczGPF+jH4a/5Z5j38nX9j1AGffgqhpPUF9K?= =?iso-8859-1?q?3smejAKBQHciOFOmeJ8+LqQnjd2o0LkICkZCF1NVGalX1J6DjllWBsCN1nYb?= =?iso-8859-1?q?H6DjhThfzCR5KtNQ9S44C721lRuAPDFLKP5rW38s/bm5MsN+pnWvz3PD1Zuf?= =?iso-8859-1?q?Evh0w4aLMrpPtE59pGQu3u/A6ho0fp93jk6UMx7m9jdM/2v3ZjCPZW5TtKe4?= =?iso-8859-1?q?sBFxlnlox1D/Mdh1CA6FSB7UydFVL28mTk1Kcn4AmHx4K202Q=3D?= 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:(13230040)(1800799024)(376014)(10070799003)(366016)(38070700018)(4053099003);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?q?MGPeAU9JllvtOzajXJJ5Za8?= =?iso-8859-1?q?yYVlf9Sxa83QtMtl1kHCG5wMSSfMEnFJEv9ENkdO3aES4hUkq7MA7o03OE6s?= =?iso-8859-1?q?+71w7kKaYGtV6SFt3fNDnB1TjOKln/CnXxmDq/h9TYWgOLq3JjRMEVXVoRL6?= =?iso-8859-1?q?/aG+NzqpnfvoZZ+NghFcYuwPUbHicKY9OK2nUjDjjxFda8mQAm/Yoq1ojcxT?= =?iso-8859-1?q?DmVBRlFTeSDHW1nlRSMCimi4+oH6zYgCPnpv0QuGhO4j0dT94BMOdegytNp5?= =?iso-8859-1?q?tBEew08c1PDKY1eZVvBfAnc9nTmSma+AHfbRMoGtc86mKx75BviGigCGtSac?= =?iso-8859-1?q?dxhTUO3xVghmBpyDI2vtSb3JlJ8bGqa+D3rathBdyLaebFrPHLznnDOrWKcT?= =?iso-8859-1?q?cKn2CTw800v90aCgigyw3PVMcVV4906zjrihmciLJbZKb6tgFDJXq8lJFglX?= =?iso-8859-1?q?Gzeu9x8N3+KHTI22tLPcyQXvfYIz4aBin1yVpSN28yldfON3J3z2/ereC9Gr?= =?iso-8859-1?q?3U5UYnFYyXK9Y1fLCLbgvPMczkYx9kG19ia+nwfyt36tYMN2d5aYyLTokolW?= =?iso-8859-1?q?72MgcCYqMv1h1Iwi5hhFHZ3PXyiOhuWsaHmvMChQD87uhDUqUQjsMTq6Edp2?= =?iso-8859-1?q?R4WCstirYMrE0HjA5sJjbeBkPtF/tKXRDvKAGIUXCMmDHY62huk/bMJGS7jv?= =?iso-8859-1?q?KBv9a7UW/xL0gvZ2pxJRHjpxkeO8kjzKlVIRJ+bPLdAeWJLHi5UXRkPBmMzM?= =?iso-8859-1?q?/MeBXJ25fuVLMkupbJPc7yvvRKIO7/f3MKDunDls4qb84up1dowizUh7IKd6?= =?iso-8859-1?q?ESBYH8LhERWzTRTrFJkjrX7QxqIuYpVTk3C5rsO+4gJj+RjzEzSL8wVawXe8?= =?iso-8859-1?q?+rHluKTKUiOObCOgF5WhvImdcjY3xHHO35it1a8LqJ86R8MWi49PTEXFrynL?= =?iso-8859-1?q?twrguJwLpRUjxJbfH9ldOnYngYaGZWneCCd/gD9ka4WW1GKmyKIJGTZoaw6B?= =?iso-8859-1?q?8rnEE27ToSC24nKFAo12Pa3JQvsjbrMFYIxzAmsC1IMewMW8q1oDjdMx8wwQ?= =?iso-8859-1?q?YFhGyczoznyxaywJAYcK4iuApwpRZpzMsiN3l6ZHKOhAISx2o+M7Giy/MStr?= =?iso-8859-1?q?cP05igUb2Zcb3jMRefKuAwsLn04+Q6qPnBfyOZnXIutFY4pfzlbh78VKS4Qj?= =?iso-8859-1?q?+R4YObct3UaLINwAcehfkCe7cN8UVyeYwLN2sLohg/d+ylT64kNjqIBi7Juk?= =?iso-8859-1?q?6Nc5nDniFQfmZJoaSsal8Q96tFuMt1E0fT9mrzt54s9p4S0zSlPIxISY6rS8?= =?iso-8859-1?q?iTRi9oP6CUbVBrFDKqPHGnFoTup1EmtSy+woSZfMDjWmtQXZ0thwPSsVz4qm?= =?iso-8859-1?q?Z5vh4kTh18aDph3zQIl5ipmkfFYW4lWFZ/HA3EqofXTd6CLmKEf4D38YBTf1?= =?iso-8859-1?q?hSx3a8Liy2iYGLIJdt3qRwMrkqRk89BTsPQKYIIdprAefhOIXXeJyoiQ0Vlw?= =?iso-8859-1?q?KLGZXOB9DKOdxuvCBzGMgA3xH1KtMyWtp0F5ePpan51qH9/Ca07bdbtfmSfi?= =?iso-8859-1?q?RFCDLZ2Bx7XLr79BW5cPuPcf8iP8Y/K1JFP3Lm9lqWWy0wtGUWtxKVhFxjF7?= =?iso-8859-1?q?ubGrY9aMbLoLJLnW9lx6uDsDPSLxnv1hptIsiwm85Kn3ZaOkE7GmKvwG7Q0w?= =?iso-8859-1?q?=3D?= Precedence: bulk X-Mailing-List: linux-fsdevel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: 0x6p4mWt2we3032oBubAQ0T3m3DyYvTJ9ixJbVPGuIdkmYKdU5Op4SxF6QwXdG8eRWbQu5NZuHHTQcJB98eogB+NXE/tEm7leqkl/o3oJwotWGwTGCjde8nGhBLjDeTfKOsOhYgTUha8zgc7PcPxWl02hC7YQWvExKQcMmIt3IvzQP7JEPvGK8btxy4tU7+bWKMMt2qMTLLQWM5ScrS1vIpnDb0Mv5RAsefEqpzex2X/S+zNpC9qaTPPiMcykCKXD9eZNOMgaVUQxjFeTW/iD9tSM8QouSnznT9NQmpLgow2xGPYFYhGFAe14FwjMVeRaR3FOlg6D2/OZ23Hxtp0hTtRYmnLZiSqSfcFQHHpPby9pg4ffOELUtWAWDhR2v+FG1E+8xJQMkH6SfRIzaJuS6V5+nOK22BcsFKUTmE/4GOYl+Aj24rfFC+Dtpji+2lj3wcyqedzoVetPLdUeB2mmLD8rUxKhn8jHKB5aKaHbgYrpjGmYMtCmvwc6gPoz4eSdzgxfnmIq3N+Wz0l/qZskLMlS8eoi9YhcyORgMBeicdqcvPMaMcu5ASYRIbuyaXeEqe/+/BN3NRqG8umsT1bID8E1dn67Ci3aMAW4FP1XVS5uzeb70LEtpBDfO5Bs/a9 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: 72b94539-5e1f-4f94-4b84-08dd7813c250 X-MS-Exchange-CrossTenant-originalarrivaltime: 10 Apr 2025 09:40:41.5874 (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: 4IKdlzIDPD1o9T22ncFOuAmnKRxdIhFQ1ZOSCDEq0yfcJh/T8GvOsAVoMMqjtUN44HmlL9bgw1UKoPTGSt3+BQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: TYZPR04MB5784 X-Proofpoint-GUID: rJuTnBvDj9ibnynRxLooWFpkEoFNlCHe X-Proofpoint-ORIG-GUID: rJuTnBvDj9ibnynRxLooWFpkEoFNlCHe X-Sony-Outbound-GUID: rJuTnBvDj9ibnynRxLooWFpkEoFNlCHe X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1095,Hydra:6.0.680,FMLib:17.12.68.34 definitions=2025-04-10_01,2025-04-08_04,2024-11-22_01 xfstests generic/482 tests the file system consistency after each FUA operation. It fails when run on exfat. exFAT clears the volume dirty flag with a FUA operation during sync. Since s_lock is not held when data is being written to a file, sync can be executed at the same time. When data is being written to a file, the FAT chain is updated first, and then the file size is updated. If sync is executed between updating them, the length of the FAT chain may be inconsistent with the file size. To avoid the situation where the file system is inconsistent but the volume dirty flag is cleared, this commit moves the clearing of the volume dirty flag from exfat_fs_sync() to exfat_put_super(), so that the volume dirty flag is not cleared until unmounting. After the move, there is no additional action during sync, so exfat_fs_sync() can be deleted. Signed-off-by: Yuezhang Mo Reviewed-by: Sungjong Seo --- fs/exfat/super.c | 30 +++++++----------------------- 1 file changed, 7 insertions(+), 23 deletions(-) From df0f35df9374000cdfdff45da41953f6699eec63 Mon Sep 17 00:00:00 2001 From: Yuezhang Mo Date: Thu, 10 Apr 2025 17:26:14 -0600 Subject: [PATCH v1] exfat: do not clear volume dirty flag during sync xfstests generic/482 tests the file system consistency after each FUA operation. It fails when run on exfat. exFAT clears the volume dirty flag with a FUA operation during sync. Since s_lock is not held when data is being written to a file, sync can be executed at the same time. When data is being written to a file, the FAT chain is updated first, and then the file size is updated. If sync is executed between updating them, the length of the FAT chain may be inconsistent with the file size. To avoid the situation where the file system is inconsistent but the volume dirty flag is cleared, this commit moves the clearing of the volume dirty flag from exfat_fs_sync() to exfat_put_super(), so that the volume dirty flag is not cleared until unmounting. After the move, there is no additional action during sync, so exfat_fs_sync() can be deleted. Signed-off-by: Yuezhang Mo --- fs/exfat/super.c | 30 +++++++----------------------- 1 file changed, 7 insertions(+), 23 deletions(-) diff --git a/fs/exfat/super.c b/fs/exfat/super.c index 8465033a6cf0..7ed858937d45 100644 --- a/fs/exfat/super.c +++ b/fs/exfat/super.c @@ -36,31 +36,12 @@ static void exfat_put_super(struct super_block *sb) struct exfat_sb_info *sbi = EXFAT_SB(sb); mutex_lock(&sbi->s_lock); + exfat_clear_volume_dirty(sb); exfat_free_bitmap(sbi); brelse(sbi->boot_bh); mutex_unlock(&sbi->s_lock); } -static int exfat_sync_fs(struct super_block *sb, int wait) -{ - struct exfat_sb_info *sbi = EXFAT_SB(sb); - int err = 0; - - if (unlikely(exfat_forced_shutdown(sb))) - return 0; - - if (!wait) - return 0; - - /* If there are some dirty buffers in the bdev inode */ - mutex_lock(&sbi->s_lock); - sync_blockdev(sb->s_bdev); - if (exfat_clear_volume_dirty(sb)) - err = -EIO; - mutex_unlock(&sbi->s_lock); - return err; -} - static int exfat_statfs(struct dentry *dentry, struct kstatfs *buf) { struct super_block *sb = dentry->d_sb; @@ -219,7 +200,6 @@ static const struct super_operations exfat_sops = { .write_inode = exfat_write_inode, .evict_inode = exfat_evict_inode, .put_super = exfat_put_super, - .sync_fs = exfat_sync_fs, .statfs = exfat_statfs, .show_options = exfat_show_options, .shutdown = exfat_shutdown, @@ -751,10 +731,14 @@ static void exfat_free(struct fs_context *fc) static int exfat_reconfigure(struct fs_context *fc) { + struct super_block *sb = fc->root->d_sb; fc->sb_flags |= SB_NODIRATIME; - /* volume flag will be updated in exfat_sync_fs */ - sync_filesystem(fc->root->d_sb); + sync_filesystem(sb); + mutex_lock(&EXFAT_SB(sb)->s_lock); + exfat_clear_volume_dirty(sb); + mutex_unlock(&EXFAT_SB(sb)->s_lock); + return 0; } -- 2.43.0