From patchwork Wed Dec 4 15:43:41 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: John Garry X-Patchwork-Id: 13893965 Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) (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 A64E51E25FF; Wed, 4 Dec 2024 15:44:06 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=205.220.177.32 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1733327048; cv=fail; b=gDgSWYKEB3aiS/nPT4N9i91Duj9Ctf/SBMjLghZbr/nRwYYM5Grni5AKcQ7xfBj5gUvHTfOf5GXoSTjGmdKh67iYovgxfLWHgD/CwP1QtPS1Bi97rWLyFI7dLKWSLQ1IxLugq6B3i6QrOea3/xb2QHmx5CUlwSuc5j4IH3Nezh8= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1733327048; c=relaxed/simple; bh=HykQhYGJwbT2J02UtCfc6HYalxBak+4F9s4phYdwW8s=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=TgIhfde1ZzZFSg8n5kbeKSLHCq/ffho+vrwdD3Kn3a1ZMjb5HKEgLQ4fFrbSpoG/+tOlbajHTVoo51iv7Hoqyh1BOdIO3MoDT27n4ZcDAY6XPP/Xn0LF3B/GC2w+gjR1rVbOhYkyqoBE3R4I4UCx2VXnV1ERk0y07RKnuSEc5Ts= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oracle.com; spf=pass smtp.mailfrom=oracle.com; dkim=pass (2048-bit key) header.d=oracle.com header.i=@oracle.com header.b=bJayo1v/; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=pAqya0c3; arc=fail smtp.client-ip=205.220.177.32 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oracle.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oracle.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=oracle.com header.i=@oracle.com header.b="bJayo1v/"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="pAqya0c3" Received: from pps.filterd (m0246631.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 4B4D0xt9027470; Wed, 4 Dec 2024 15:43:57 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=cc :content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s= corp-2023-11-20; bh=2txTTNxaY+F8dFPfFqSNaB6iRtLZ5mIW4lWycbJcQOo=; b= bJayo1v/dC71g1pIblZdWmqOmzL7W2XPAVNF5vtHWDowXVQOt7v9BQUdUnWrdsJ7 19UTwNBbCZ4ledEWXkfUabDSyxiH3/R+GP+XgC1YRD346xcIRg+bG4/h0/0wSq/A D4oNT00EdIHIP0vj2STaBb9KSETFiRRyEGR3T6jEL1mY9pBwxzkfLsI5Ii6V+2Vt JyuUBCSxs3Z8jJhoF1t48YLFD6lM2d/iwVPVApZAO1mUClGzh/RPTrGWOtPAEtrz GE4U1SZeWXEy9JMYOOb1MNmYS0+eUHcdd84/B+3bOqIaOUXrfpzJ+EzVn2eG+RST yp4L0AIcBZnWQZXktHjGRw== Received: from phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta03.appoci.oracle.com [138.1.37.129]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 437sg28sgb-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 04 Dec 2024 15:43:57 +0000 (GMT) Received: from pps.filterd (phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (8.18.1.2/8.18.1.2) with ESMTP id 4B4EgW71001736; Wed, 4 Dec 2024 15:43:56 GMT Received: from nam10-mw2-obe.outbound.protection.outlook.com (mail-mw2nam10lp2042.outbound.protection.outlook.com [104.47.55.42]) by phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 437s59md87-2 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 04 Dec 2024 15:43:56 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=FsJZQOpoB3hPaNxfvg9ssopJL0SoCBhdbxu2UtAE0yEaqUqKscT7LEsmmnF2kb+RC8Hrg2KKGjE9Phr+vHikDESvjC12lVGQOy9Xt9aWtD+oL9ldAjTqrglE2VgbHcPUeDBlXJ0j+rtqarWSRzqxOcEoMqH+LzQU3ACgj0SZ4yW/7845WSoPCoVekIqT54pSCWD3c+grt43UXEn/cPNrpOsX3oCl74zAHPISKhM9P6ekiGa+DaXusf1NBKIRvO1eg3FB7CgTUWt236vtrl5C9Ie8r1tE6VpYEO1dKLZotE6g/MhNK+tvckC9mP34rLM2KuY8KW5bljQlEiSPQn9KFA== 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=2txTTNxaY+F8dFPfFqSNaB6iRtLZ5mIW4lWycbJcQOo=; b=DnubQlasTR5LePaFFLt6Bm1JezTWd55sR2HkmHMAAGG0kgveYHHBTiwYoUnqXv1TUHwnwB3hztH9YLIwhPFp0mS1YMjWoHSHsS7Nyy2iCPByI0JnD2CV0ItzwJdGaVAkUpHeLtbpDBUWFhWN4usrFCmj5Y8v0gDhl9Q7A72v27lVUaFAHCShXQs/x9Zw16JhlUSFxdNClbgzsBURjPmzsRP3l7aHLqm146aqnhiAy8n8L6Ucg53iJuaxOBX5ezAztgknd9uk2Rth1yux6zCuhcEiLP8+SBB4ZF7Thk6GY4gegqg+qswFpeakr7DvTvIMl8k1VpgvLcPIkqaO4hVuiA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com; dkim=pass header.d=oracle.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=2txTTNxaY+F8dFPfFqSNaB6iRtLZ5mIW4lWycbJcQOo=; b=pAqya0c3Xl760MPaejCi5I3S11LofVtxpTdefAqxydwMsd48+F/fsHvpklXii+tJXqZetR1sMCKDepdAIQZRDAisesUrHkclts1N3cLghYuJ6Yvzh0l0Us5ocP4bH6IVvtaV4phlXlj9cr2IAowjTICypI2cNPuTcpReK6qckfw= Received: from DM6PR10MB4313.namprd10.prod.outlook.com (2603:10b6:5:212::20) by IA3PR10MB7995.namprd10.prod.outlook.com (2603:10b6:208:50d::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8230.11; Wed, 4 Dec 2024 15:43:54 +0000 Received: from DM6PR10MB4313.namprd10.prod.outlook.com ([fe80::4f45:f4ab:121:e088]) by DM6PR10MB4313.namprd10.prod.outlook.com ([fe80::4f45:f4ab:121:e088%4]) with mapi id 15.20.8207.017; Wed, 4 Dec 2024 15:43:54 +0000 From: John Garry To: brauner@kernel.org, djwong@kernel.org, cem@kernel.org, dchinner@redhat.com, hch@lst.de, ritesh.list@gmail.com Cc: linux-xfs@vger.kernel.org, linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org, martin.petersen@oracle.com, John Garry Subject: [PATCH 1/4] iomap: Lift blocksize restriction on atomic writes Date: Wed, 4 Dec 2024 15:43:41 +0000 Message-Id: <20241204154344.3034362-2-john.g.garry@oracle.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20241204154344.3034362-1-john.g.garry@oracle.com> References: <20241204154344.3034362-1-john.g.garry@oracle.com> X-ClientProxiedBy: BLAPR05CA0048.namprd05.prod.outlook.com (2603:10b6:208:335::29) To DM6PR10MB4313.namprd10.prod.outlook.com (2603:10b6:5:212::20) Precedence: bulk X-Mailing-List: linux-xfs@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DM6PR10MB4313:EE_|IA3PR10MB7995:EE_ X-MS-Office365-Filtering-Correlation-Id: fca6d1c8-d49b-46f8-ff1e-08dd147a754f X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|1800799024|366016; X-Microsoft-Antispam-Message-Info: I0RDm95oxyw489MwQtapIk3jyY/7DVKUM7iCaWCnv/A7Zxgl0xaWXw6URXzQL60ncomZH7mLMmIZHaXhmlP+Rng/vezUCw5zBDfqyL1YznGmeVfdLPj6pxeCC+j0gtt4WUrn8hoAJOsLiwv7KY47jUPFOdDFqJ7xGn+uwRGQczUwu+rbfa0pCoCqRSA2OtXjSpyrFD9IKcvhtrfhLKGtf56Buk5ankaWCvQZWo7MgcsQknn++6hRcneghe/y4v/iCXGU8MjNHbtxOUk5dnNZjHFhLG2mzmAqU/rmdjQ3u8V4TNKYm7dnaaumywulc0zAL0fAY/cVfXhxWPTcD5KbMGeHWW2m3vTFTqQrCseTRWTizavgfjIF1I/1MruhJoXkpc/LAjG3xnYLobB2dMvbW/gb3G45+tvJKjD6bY/FeH//dwgiAA/Tx7hci+JlpA/uls5HPjFbkGXmO35FfPgUwWTa+YH1FjFSRXHovzoqc5PoHNEcf9hphLeq3LlINlx7ZkG5k4LnYm2Qh/+Uil35EX5mB8J1++Bgx7DU24Zh5KSjcATgUQq0JIctVUJIAWl0V6RbVdF5c9x1ZKgD3JGUcujg8U/0fpxOCDQkDQJjfVB2Oegi3qhtpEuLFm/MCvC41uFS5zvjfn8j+x5N9e4TONfgpI8nCyKs003cqzm1i0/PG6vQGnu/VyBox2oA2H/qmqTuIeq3ACW4TTKWIvtSPviPu+WA0r63smV4DLRyVXi8mCWeK9czN9Jv4TKK+vRtAFD+2UAFfGnzeEtfyqukWHpdZW6ZpP3KYeks8sRyNtD6yfAcwXXZAjfn0/KNIsKpxOEkUYb7ixQfcUKM+slw4kcnXf4YDVssWPA5ynlIbjhvSF+Iqn7yv7/SkZ0i3D5M5AlQEwiwaj4gVdUtuuqN6bRG54mydDoXK+xQUUJQsZvRCrbqsYihCglKbGJvwgJvMLCQoONf2ei7ZWuhrYooAWgww/9/+gqofRA/pXx8UHZGJNSumlL6xwicEDgxLVkVrQ1odyRhnLv5v0oVvNA3yAAMxR/oTY71FgzfanoiauldY5LaZyxxpArm/v/FznQp+6A+Ssdw+P1LJVGJ4C7MEt1+71JTr7opbm4zeazUoR4jg0S0/cCUgL4ALiFWCV1hZSX0AHB/SXbmqtrQy4RfE5bm21+Ui4/14t8XwrgrvzOlWh8kA0zW0Gbu8g31LvUwZ11T3g5GL+06LVCRLIz8I+8iXlWWvnRJbP/w8BOHMjPGNsLUMRGLPJ9I6HcZjABH8kknhWUSxfnsGgb+lzZfBO5i5nAfiH3EKYHprM9jedWnUpIm3VuYKJR0NXFi6mr6NIxumUDwN4YNK2L6AzwhnQ== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM6PR10MB4313.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(1800799024)(366016);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: xXZ6T5NrbtZT1GKx56i6BR0RmfzpAUiwdzgOCTvMcTFPXe/a1306tIVj/GQ7S3yLOhcr+NvPi/Y2Cz6nBu7Cmrh2pp7jepZeN3Deitgm1F5T0SlxCiv47X4r4d/wzsRTDuJQsKxcQsixK1+oYeLi0SB4Em7/98uLGmioU8Okbm3o8JLtUoACbLESdB0avPZCG3GxvylRpeUj8IgfZoYexqW29m0yajqt6Z8K+14R53R5L1bHeYtT3F6EiTVyyEunaEPRwK95/d3/sXsa7y2XUDsiJ8XGLmaX6rKr7ccKzaXezGV6O61yakF1Pw7Wevwr9pjlwsgxUqTXMmfo76hvJbSqlmCAomTOIqcvnzNYz3hX6T/gvAmCcw1nOqM1XFZfxwS/ZQrWaX9ZJqFuPGaln+7dQHLFC2aUE10jmLgOkW43GzdBZTWsPQtcVteIWVkAmsWns5U9orLyDoLGyw1SyCxAXZHdzut1qLIdV/3llwdLRhgIdy+bV36EBkYclAJuPiIh16rZgXyDKwSL1YyROoArtyPVtoNRfGzaEbZm0Ku3Q8HiGe8csbA5XSIXFZ+Mp6NJYvptz4kdM55WeJaCdM0NPWq/9q6EdNhe3zbFDqbg5ndAUNU5NaH/UpwHE3yNlNVJ5slKCbY5dytFbDYw1xwMVzQ5XvMVcIQBhvvLa2OraScNXOCtH11qaRI5C19bBYXBlMGjSMeG8fGiequlO7f7DCTd3x48VDe90wRo1KLodRScQRJvv2xVZGaV8kZLrTMmvbrsWAKsgN7xsw8IMwWtv/xyUbBWf8Xnt4w/AM/+Rvx2vskIVgFb1KNyzvTuy8Sy3GKj8Nmp1Dc2XvX0Jzq1BfKInbUIUhr0ZgoEAndrcGB51Vsa+5HUDQ1eWFIeZwhJUeFhGr3BUgX9Up7n1isDplNgPPgrVm5fdrScbFexqDhLqnEsfd2hLjXp0LjAvYcaGSySkepQGnTAGjt0o+UHc9TXi/3SdJ08IO9vQJMLQtKAqJruChxDsD1e/uEBUWpNH37UfmPh0AKMTVqgmi15AM3sCk7999yhdNAKNWffFcQzUqiH7jBX/YFdkTjQZuiQCKQO1J7WxHBBpYEloL4+3L7GnmYU/otwrv2RT9e+8iH5MFxayQEtiYM97HTSAT1Tu2YWg/mJaJBDnt2fi1ArQ3hBj2aZs8dm9Hq8b8Ff63JKmiCT1wC4uWiAkW3hSntscuzEdH1AeR+puFo7EoGAsHiSVSNt3fwyqOegkZLaLtqmzldY5TlX4OvXTlbfpYg2lut5gpzyIuhBloWxsA3x4mWH/q7mK3hgajlYBIOXyJNnyhzpsUEXkeJ9nDLEiUteuVSDV//Gd0TBg7+avqiuNNSHqk+dWAmwd/uFrZWTNx/kBdrWdxpCYjoWw7CzPjRjHbV2t9NzHnzXa5F8ZdNfoXKsOc1nHgZ3KdpsmM1FzFbfbb1Ookg6f5ag4fUqHmRcp2bU8z7w7CBg44SGSN1u3yJ1fBc03W4HBZMMp4VJ8W5K5Hqg5jzYLR6UfDzv59j8EzVZt6OBgpVbg9O0lj/puDM4Vfk0788l8AAdWf/1oHpKO2aDngZ2tfvf4WtAQq9e632WezBeKJViqhyd/A== X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: 7v8sckIM6b/f3UF+X7FuNoVl2JZvia7kgJaKQsZh6qPm72G9wSW904lNoD+ST6UIgKtB9anDQF8jQZqjRvzAvqjzfx6RxpX0DVA1YPRFrCORvI/3YihxJd1R8m5dBSk8Ee3cmJuHA3nhALM1SRBIi00H9FmyIuSezvaStw0etA3u0zccIDZCS7zR+qJg7ripCsfSc7n9CBzA6RQN7lqSNt1da78TSTHUcKFMuEne34/0fehGdRk+gI+4LQDdI4mvK6aqpPSpA2VYsH4L5Q1VWgb23Dzbu44fVTZwEvL3IcI3WBilRWKudB1o29Z2ef/2TspZsUB7sdOhd2EMyVHYTcCiwpyQfoWg/BaqzN5ZhLR84zjjCZz7lxoPJZ+xWMUJnEyrvYmmwRruQjqYmzq8fA4lzEB/xp+1tc6E2O9cZjsh0KZA1Xmo5saXvEZJKj7kieZUi2Ti2M8xjOJ0SBiB7ouEy+k2PMBPKZF1lCIwStrDb50NGOmRE0DbhfO7QrPytGZeVkop3vrkXThmkCZi6w7NCjxvzq/wFEkevilkFsyrEl6zl4vgQTxb68jrws5CX7wVazaFU0BeZTULFoIRYoXK3DQEoLWLLRllINmuG/U= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: fca6d1c8-d49b-46f8-ff1e-08dd147a754f X-MS-Exchange-CrossTenant-AuthSource: DM6PR10MB4313.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Dec 2024 15:43:54.4832 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 4e2c6054-71cb-48f1-bd6c-3a9705aca71b X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: 8zgUo2Q80sIbKAl839RB5GJaFY/au3M6tsj1DetvTZQQinFvR4iFhYGRymgveYEqnhhwOxiYEcA2rFTglwtIQQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA3PR10MB7995 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1057,Hydra:6.0.680,FMLib:17.12.68.34 definitions=2024-12-04_12,2024-12-04_02,2024-11-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 adultscore=0 mlxlogscore=999 bulkscore=0 phishscore=0 malwarescore=0 mlxscore=0 suspectscore=0 spamscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2411120000 definitions=main-2412040120 X-Proofpoint-ORIG-GUID: 2AZC6FBtpN3R0Yoh7diqny_-sJykBDAf X-Proofpoint-GUID: 2AZC6FBtpN3R0Yoh7diqny_-sJykBDAf From: "Ritesh Harjani (IBM)" Filesystems like ext4 can submit writes in multiples of blocksizes. But we still can't allow the writes to be split into multiple BIOs. Hence let's check if the iomap_length() is same as iter->len or not. It is the responsibility of userspace to ensure that a write does not span mixed unwritten and mapped extents (which would lead to multiple BIOs). Signed-off-by: Ritesh Harjani (IBM) jpg: tweak commit message Signed-off-by: John Garry --- fs/iomap/direct-io.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fs/iomap/direct-io.c b/fs/iomap/direct-io.c index b521eb15759e..3dd883dd77d2 100644 --- a/fs/iomap/direct-io.c +++ b/fs/iomap/direct-io.c @@ -306,7 +306,7 @@ static loff_t iomap_dio_bio_iter(const struct iomap_iter *iter, size_t copied = 0; size_t orig_count; - if (atomic && length != fs_block_size) + if (atomic && length != iter->len) return -EINVAL; if ((pos | length) & (bdev_logical_block_size(iomap->bdev) - 1) || From patchwork Wed Dec 4 15:43:42 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: John Garry X-Patchwork-Id: 13893966 Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) (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 0231D20B7E4; Wed, 4 Dec 2024 15:44:06 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=205.220.177.32 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1733327048; cv=fail; b=acbFfXOLJbGrIZ772lzkmcfSSNASFYcym/NpKQDCDHGSMKzvw24AOZtYvbu3RTaComlBry5w0nAeABzHPxJyhGdl8guJb5pyJ5Ls2uL6cklm21mDqOGaFeHWi/PqK9K+Hd729FWjdjxYLLrBgDjQf9FrHdG18+3+xSxqjlDBA5c= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1733327048; c=relaxed/simple; bh=stvtAqdLaMnBGfSY8drr9qr6qAsfd5UpveEinRpr58Y=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=SLTOqALIYK8/0Umyba6pS79v4nLF+6u2L3M6iQIpHKXlb30ydzxagiE8i9lsv2TC5spEpJMsAoGN0ODL4x8TGfUUmXV6Ze3v99TwXh2AS914YwIT/7EQSx25q0KlSdj4B4OMg9ueKEJCy0iayEBG39wfRj+dD1kb7y21ElhywMc= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oracle.com; spf=pass smtp.mailfrom=oracle.com; dkim=pass (2048-bit key) header.d=oracle.com header.i=@oracle.com header.b=VxrDeZsJ; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=zD0SdK0n; arc=fail smtp.client-ip=205.220.177.32 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oracle.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oracle.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=oracle.com header.i=@oracle.com header.b="VxrDeZsJ"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="zD0SdK0n" Received: from pps.filterd (m0246631.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 4B4D0xtA027470; Wed, 4 Dec 2024 15:43:59 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=cc :content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s= corp-2023-11-20; bh=/xc+AImhXfj4/FQYfDqzhX1LED4orvbRlAxdQUkvhEY=; b= VxrDeZsJFbHwlYz1o0qImniBfc6olEsdGpnJpki/L4nqZIaVil5+3SMYBtZVD43C Y2WxTlJVYzMWNKZ1sZ0ZZ1rF4eEVNJU5ERzzw02DqCeXmSIwUdHqEMVM/wF05ZT4 Ta9QjQ1GFmd7cXZ0PGwCqwJ2zQIVLS6vizh7CcibBoEa+x9NroYPePElG6v3SJAC +t6vO8ZrvJQEihCdazEuo/bFNWwqW3ytU3iVpwCYtySWWw7VL4b8n/fk+q2jjNsF FQxKLeinTzFDhqrgOHJuNxR80LPpTWa8mRsKHlmAkJXqzNWztkG6ItCSPcA8MxMZ A0dP7WzyusIpE+7iaLIELw== Received: from iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta02.appoci.oracle.com [147.154.18.20]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 437sg28sge-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 04 Dec 2024 15:43:59 +0000 (GMT) Received: from pps.filterd (iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (8.18.1.2/8.18.1.2) with ESMTP id 4B4EgVhR036956; Wed, 4 Dec 2024 15:43:58 GMT Received: from nam10-mw2-obe.outbound.protection.outlook.com (mail-mw2nam10lp2049.outbound.protection.outlook.com [104.47.55.49]) by iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 437s5a3u48-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 04 Dec 2024 15:43:58 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=Wiscqnuawn7GzKOuxbaAblBswClNiEgAdVRt2hM5cWHGeTpEzXMQEn+HxGfmBPAxw1PySlegG4tvSJkA/70vEA+W54uC+vcVNUcgatmN7HVK8J+xZQiRyo5Bc16uj14jqkXLO8gaeJIyZztIPXg5aQrvutTcJsrRB812sKkr6Afsn/T/FwwsKGz12owU/A5x4sD9FgV5DD2glN2L78MMsVCFgbblj0HqqQrD0+xtsDoPVDG7fW3jz1O6Lx8SmbGOHXU2kFMFak3AWp2rf1BLu2BPPX4y9v/67xVdtnubGxDYfXHgO/3O3/Uhds11epwpX7rn1tgUtIKFmw8AFB4ioA== 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=/xc+AImhXfj4/FQYfDqzhX1LED4orvbRlAxdQUkvhEY=; b=fTaLEZ0SP3VlQvBoapbPz7oljlhC4V6nEh01becof2AT4dYmkavqTqJ7dCozA1g0JBEzhDu6FhF4B7NZuMCfTPD13TcKuvmvQ371H44APviVBYUYyKsHBKoy3zcBEibkJpiD4v2WAyNTwAHKy3oL68VDseIsG9SZ85PkVMYde6b+Y2MdJNWFqBsouXeJne73y/I4oEX947SLHFct4h0PffJ9BGi0lK9GF1bZm98KqjarTnXQwJ4ZNZIWu7ivF8qLcxj0AaLcX6YhZF5Ph7ShECWmUe7UUYcAxsjJ8Q9OFzFeUxzZtNGNFTgaBHW7XhncrvIMZlqorzPJ8tbZkCG5/w== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com; dkim=pass header.d=oracle.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=/xc+AImhXfj4/FQYfDqzhX1LED4orvbRlAxdQUkvhEY=; b=zD0SdK0nOOpoLtxkMK5q+aE3UEnwAZia7uN0u1ByayK2MBA2LNp17QFuaTviVvNRO9876643Bmzug7LyORd5UHL4svZmwkUPdT8wFmwOX7fxd9kwSH699pOyTIwxn2LsOAkc/9/Beip8aH8ndgoputCvSQprXSmfZFX+JVb6Gug= Received: from DM6PR10MB4313.namprd10.prod.outlook.com (2603:10b6:5:212::20) by IA3PR10MB7995.namprd10.prod.outlook.com (2603:10b6:208:50d::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8230.11; Wed, 4 Dec 2024 15:43:56 +0000 Received: from DM6PR10MB4313.namprd10.prod.outlook.com ([fe80::4f45:f4ab:121:e088]) by DM6PR10MB4313.namprd10.prod.outlook.com ([fe80::4f45:f4ab:121:e088%4]) with mapi id 15.20.8207.017; Wed, 4 Dec 2024 15:43:55 +0000 From: John Garry To: brauner@kernel.org, djwong@kernel.org, cem@kernel.org, dchinner@redhat.com, hch@lst.de, ritesh.list@gmail.com Cc: linux-xfs@vger.kernel.org, linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org, martin.petersen@oracle.com, John Garry Subject: [PATCH 2/4] xfs: Switch atomic write size check in xfs_file_write_iter() Date: Wed, 4 Dec 2024 15:43:42 +0000 Message-Id: <20241204154344.3034362-3-john.g.garry@oracle.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20241204154344.3034362-1-john.g.garry@oracle.com> References: <20241204154344.3034362-1-john.g.garry@oracle.com> X-ClientProxiedBy: BLAPR05CA0030.namprd05.prod.outlook.com (2603:10b6:208:335::11) To DM6PR10MB4313.namprd10.prod.outlook.com (2603:10b6:5:212::20) Precedence: bulk X-Mailing-List: linux-xfs@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DM6PR10MB4313:EE_|IA3PR10MB7995:EE_ X-MS-Office365-Filtering-Correlation-Id: 90969aef-f201-4396-ed83-08dd147a7625 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|1800799024|366016; X-Microsoft-Antispam-Message-Info: djsYwCRatPAGgMRsEMD1Q/2brPEVOrPyZemmf3JL7HNK6JaGLMx8Wk9VrUrOXiuBBYQuBZZTlMcCQ1+0k38cJicMhH/HuE2B9l8mOekeiOs2nhb0ICdrjkpAAe5r8IdwlaSUt9t4D69mfU+TOg0ffGE2mFf/uiWdNIHJi4QTW9tN1LJnx/zRMGvQgAm0pYElwaAOPj/oqX3/YBuC/GSPnuH81OMlwC7gQf6VHJ3KDgyevZPzVJiNzg/zOAgzCW1PkCmYywNKu7A3Igkmho3ZSM/6l1YybwHI80mOw6eDIHvM+Md7a7uH2IhB3AyEmxHtrFGgRTz/Kb1+bmXBRa2/9bjeAP0xSdBMScQTINkMg++P32xuhl356ljPSRoqmptUNC2ZkUJlZZ8zz1IQSNr/FvwSZ6012VtNMlZlSBsEjKjeyrxLzlBhUW3D9rpYbIvOdsm96yhYFekRIshGmWalVbnv6ukWpghQJNS+qIDLApo2Q6wb2dX37+oPypfQstnzI6kLblmtwTEfJ5pBmLinXv+e6ENcmFRCVNFgHAbatonxzWZs5xP3E5hg0XELItFVti7QtaCsr2+sxm1+VUzs8qJdY6N5LMZoLETw8//1mexlVtFWbCeMpgc7zORsNXpcp2UWUQYPwKPpYidDyXE+1Cvv/hBaD7pt1/dcRgOsSylSpsV+MgeTXvCxfGKDCiDP6t7QCL5OFC/s0jfUdQeVcVeHVvG9WbpT538Y+wHne7o+GjicBxAuYWAV7aaqszIjvBF8ySPCxVRZjrBUC5k8Ug12paamqglS06UExOQ7kSW7806YUOrYcUn7r1821L9I30hr2szfbv13g4wxrKDwxewLWbWSe1Epo2Tv2FPYybG4dMtBw5iQiiCNN1HzCLVWx2BObFi/E9TrqvLDdzCXRPw98Vz8Gkw3z+b01nS4ACf7Ed+x8WWjDHOLdm+HjgYp+rI6zPr4GVcp2W1RYJSNluYvOFud1/bJC1V+Tn9z50sPDsKkcSuaf7l4fuoBLc/aZskF6/7rrHriWBSZvF4XgNkKuXc4go5TViNKeGUHq5P6eN/+i1MO5oYsRrbdrREIsiX01da17Z+sjSxNDDSCg+rvloF6OEAeWVOgHezRGHV83MZ8xVBnaMNNCrsu/YR04WYGv96hpG0s0IeWI7MqejuwDKRIs4Q3Yntdqlteqv+Toz9wghf/223w7JIHp/vkLlgiCRZHH56A6Xb9YZ0sFLZc/07iFiCcpDZyVv+Q2CYJWscefz/7GC1v7qSPlfMmBZdPmDk/IUwI+1dR5R1ffM55IZ/ZAt2qe1FCcDju0NQrSH5DJsvdvLHA1mntU37vk9vZj3qrfE1OPrR1+cCY8Q== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM6PR10MB4313.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(1800799024)(366016);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: WnrEr7oMw+evm3KuOHHSl+VD8z8MFum3ccNT7rMPKbFjRE8tZFXBEvsoBAJFSJVCJKlAEsZ5NVZ9oOWqmxlBTr7Q5Fn63fR7H+qxewyUb2eAg12zfauigk+0ZJmQl5btvO9VUzGz25itNKkt73sCBmZeUVvPk/eJguLTBarTX15SIUqfAnGfZC7H2LQm6Y84TKT+ma58Su/2smxmA/7HwbFLX2IH7Gn+fxa4dvz6kUSKroUkESkv4HSLZV5vmNRtMSl0x3u646uPxGHK2Lwq8sk17iIVYrucz1JdzC36If/I2zoB6jft5URCOjOQZ4urB4CDGQJY3F1RJHEBEq3fU43+qPWkkt49RBrcsape/RV4MEOzbQCIG6qCidGSh6ylHKM0iWpjdrz3K33i/5xVEq3X9Zh5bgiIMyfyOlHY4IBs3hA0FPYCkay7SX9X5l3GPfe764HIKSMpKOUBJlQQ1MqZ1CzWUg1z/kDURplMfQ+9iKsXYi5jifIUh+XIkOfPTIqohrWb9QFowcZFuktUz2eN7yeoTDzsii+KoVWtJSvuiieKSrua0+Or2vGQ+SnF5DEbPnLABFjBe0TwV4PWXDhLJ0At1ufm9KjUL/xdAhTRy6dmnzR0r/AiWx89v+ZLIKSewtZYmhorHQecG1Bkf2LOeTlQ0VGhvIkKWVueJnjNhsMvH7V9jsk6hcWQZIZoRYgnnKBOCk0hABBJW0kJDw2ZbhQQSbw6ZXkdvpHZSQL7bE0kzQ2ozXLkKY4KEUnFFqgBOTDDGyORJreLCpnc3effDslzm7/Wlbq8poD37e7xUjhJZrXJEckNSJzGXdA/VFfZszX469TzPyzBrHwSn8qefeyz9AZo/2B26F1TeR/fuuRl61PwPJMNmStmdvxiImch0TfXXHL70BgiryRG1uWJ0nl283JHJJvniF8bQU3ZPyf041IKOLnGDyUskgEzTupzcNIduPx8YH7ROXNvPf6VC285TITtWdPjmPwR2WQoP1XjgVQmA8ATLwusYFxKr3Z5pq5YZxmB75zZNb9jlGqVgNUEvUWwMll7IwHoNHdsQMWDceoo/pMEKACuMOomYp56WjF4LedGUpNEzUO/rWbp5BEyvcvef0eHK4gXyIxlj9vq1JK+WXau0EZTuJTav3DD6Ccc4mzjm8Yi3C9JeFfjOLti6No3/uz5+UAR8j+uqc4xWtDXDgIaOyhu/vjc7v4dKsBMkXV6logV1mDlrU9UD4VIcJbmsFzY+f/3GHDNQsavwBR0n8Lc1hyExVB1ZuvaXANW793tW1x//K36ECW5T0h2cP+8GpOsC+yVaM3swgROnjGCrivGB6kqBFrqDLPMWExLHhm47tNY60o59tCr7Ex29Gck+YgtgFIVlzs76P9pMsR+kUnXGm2pPJhZc/61JPfZ7hVYtM0dGxCJhOuVO4tznMiEgZVur27j+e2tBQ44p1983SgUc/PXETzhnqZwLsYiq2KF8L8z8H2MAdHHLWvQs3VgER3h4Oj9u7vELsKNwh6hNC3w2wafpFKykd7Vvh4Ttc0BSm9ZzUl5qcrGV//ho7q+pio+5e+9wENHgm0mqNpaFM91xMZeFmgAx4/CnhUKSLAaNZH3UwzxYQ== X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: NqwjozAvDMzAMUhJDF5jjG3O70D/PmuUZN9WFOiXTpu9YGi/lmfAIg3Dp3eISdrw/6SSIZGUKExjSalaZ3V7022hPtOLzlXLW1nvI806x72tWRctOLLEV2Hvz+rPsrd14YwF+t1dNpxpTIfRQa9zMe0ruhJZhKbKr4bKZITUyBJ/A2a/Qv4XBFeh0hFJvwaRKA8vgfO5X5q3hpqiZpaIyLS5QTacHFExsQ1AuDPUjm6Rnw8dT4v6CE9MdRee4rS3of2TzarJ1zr3OpNigt1mfpw4OhfYI0sqBiyuFir1cy5+hojw2seNHboKNXdANTKhONyfYpQu0UfOW4wSGLtXNIYeanx+ahefQsqNebmJk4kFuK3FXUleqqRSFzjzLA40PrDDPQYwtEdyc4CWGwAyGLp7QOq2ZV8+uDIErlDf+g5c763z/s5miertGuJbP9j7xLo6pB3a5VFy4rLW5xjb2s546Jtvg7cKIpNu/wSNaynHsGNo7assvF+gDuzDaphWhE6qtW8/Y3nYABQ66BwiBrE84xau8N3GJn0a2yW51NhIx3zFTVVyJj2yzt5F5EgipxYjDUuu10N9ORmbIUQwJS+qfis9Vrv6QUkXq1AzHMY= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 90969aef-f201-4396-ed83-08dd147a7625 X-MS-Exchange-CrossTenant-AuthSource: DM6PR10MB4313.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Dec 2024 15:43:55.9025 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 4e2c6054-71cb-48f1-bd6c-3a9705aca71b X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: OZ9/WXzn9Rl+YcOfls1M3uuFU0tPrHRQQSvVniSFMjrfflvKnRr9SEIJWh7itj7fpjwzJsQQPlAG7fl4cRA6tg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA3PR10MB7995 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1057,Hydra:6.0.680,FMLib:17.12.68.34 definitions=2024-12-04_12,2024-12-04_02,2024-11-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 phishscore=0 mlxscore=0 bulkscore=0 malwarescore=0 mlxlogscore=999 spamscore=0 adultscore=0 suspectscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2411120000 definitions=main-2412040120 X-Proofpoint-ORIG-GUID: c9oh4bihTpkfRMSU-JnMlvS3rVe7A7i_ X-Proofpoint-GUID: c9oh4bihTpkfRMSU-JnMlvS3rVe7A7i_ Currently atomic writes size permitted is fixed at the blocksize. To start to remove this restriction, use xfs_get_atomic_write_attr() to find the per-inode atomic write limits and check according to that. Signed-off-by: John Garry --- fs/xfs/xfs_file.c | 12 +++++------- fs/xfs/xfs_iops.c | 2 +- fs/xfs/xfs_iops.h | 2 ++ 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/fs/xfs/xfs_file.c b/fs/xfs/xfs_file.c index 4a0b7de4f7ae..abcaba71fea7 100644 --- a/fs/xfs/xfs_file.c +++ b/fs/xfs/xfs_file.c @@ -853,14 +853,12 @@ xfs_file_write_iter( return xfs_file_dax_write(iocb, from); if (iocb->ki_flags & IOCB_ATOMIC) { - /* - * Currently only atomic writing of a single FS block is - * supported. It would be possible to atomic write smaller than - * a FS block, but there is no requirement to support this. - * Note that iomap also does not support this yet. - */ - if (ocount != ip->i_mount->m_sb.sb_blocksize) + unsigned int unit_min, unit_max; + + xfs_get_atomic_write_attr(ip, &unit_min, &unit_max); + if (ocount < unit_min || ocount > unit_max) return -EINVAL; + ret = generic_atomic_write_valid(iocb, from); if (ret) return ret; diff --git a/fs/xfs/xfs_iops.c b/fs/xfs/xfs_iops.c index 207e0dadffc3..883ec45ae708 100644 --- a/fs/xfs/xfs_iops.c +++ b/fs/xfs/xfs_iops.c @@ -572,7 +572,7 @@ xfs_stat_blksize( return max_t(uint32_t, PAGE_SIZE, mp->m_sb.sb_blocksize); } -static void +void xfs_get_atomic_write_attr( struct xfs_inode *ip, unsigned int *unit_min, diff --git a/fs/xfs/xfs_iops.h b/fs/xfs/xfs_iops.h index 3c1a2605ffd2..82d3ffbf7024 100644 --- a/fs/xfs/xfs_iops.h +++ b/fs/xfs/xfs_iops.h @@ -19,5 +19,7 @@ int xfs_inode_init_security(struct inode *inode, struct inode *dir, extern void xfs_setup_inode(struct xfs_inode *ip); extern void xfs_setup_iops(struct xfs_inode *ip); extern void xfs_diflags_to_iflags(struct xfs_inode *ip, bool init); +extern void xfs_get_atomic_write_attr(struct xfs_inode *ip, + unsigned int *unit_min, unsigned int *unit_max); #endif /* __XFS_IOPS_H__ */ From patchwork Wed Dec 4 15:43:43 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: John Garry X-Patchwork-Id: 13893968 Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) (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 AC77E768FD; Wed, 4 Dec 2024 15:46:08 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=205.220.177.32 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1733327170; cv=fail; b=CHnwRs8bixq+/LGSxn/kDudfz+wj6Aa2PMfRoy0V3cxysGiKygXQZagzb8KIILwitCP3DnOyds72V24zCG5tAZb5FswDhGFwkKU0xLDgUJakO0s4iHlEggQl5JLpo8rjWdUBXMgQKMGt4wq0jRFo+iN3LzN2jNNx2pg7gl9Bu8I= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1733327170; c=relaxed/simple; bh=IG8zEzvVJ58x3UlLBlQUl3+ZajjOO4FSK+0YxF1RCzU=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=GfxCsmb8aO/dZxWylQBZGosLXkSrGZchfvJBhoVxuLIAoVssDZtABUK3N5vSXTToJ4F3VsD9xYGjqhB/7XgxsYXua6NNo/6G08+NV9sZNxKj5wQdjBLhmPG9n74c/tFPJgeGf2/YR2PRKU8Re52l06LKBbWRCjyOPfBSEjupcto= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oracle.com; spf=pass smtp.mailfrom=oracle.com; dkim=pass (2048-bit key) header.d=oracle.com header.i=@oracle.com header.b=YmJgTe8D; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=lnac9kzp; arc=fail smtp.client-ip=205.220.177.32 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oracle.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oracle.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=oracle.com header.i=@oracle.com header.b="YmJgTe8D"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="lnac9kzp" Received: from pps.filterd (m0246630.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 4B4D0sqG019635; Wed, 4 Dec 2024 15:44:00 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=cc :content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s= corp-2023-11-20; bh=DsvA5YiNAR4qoFiO4amqKKlothOgSUZZjakxIEcb2Uc=; b= YmJgTe8DHHZHrQf1aC8LzWRL3se/PDeYfYRCdFRuCX0jjvsXZ+sRE3KX41FGA5us qiUqdkNfNi7RuqqQOYtnn+AZVa0UELHzSqTzc7ud4LmsWVCHFx3fNiWKdDxQZAQx p3lML3kQDwq5nuHkaAablzzedoGyrQ7jTn1sHDZ9S4MptXF70ZhjP1nZBOcXC8wS ODwdUkSwSkMkkw1ISpFGSne1CF72miVJbv6ZMp2bZGXAGoVQjmE0unZICNllog8B x31FXfSGYGVZwFiM/WrDV2GxovHRnZq00dZspJZ/R8H/qVM+gVdBHIgxf06doroK ULODLWnr0IhT7/kX3Cddgg== Received: from iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta02.appoci.oracle.com [147.154.18.20]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 437s4c8qvw-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 04 Dec 2024 15:43:59 +0000 (GMT) Received: from pps.filterd (iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (8.18.1.2/8.18.1.2) with ESMTP id 4B4EgVhS036956; Wed, 4 Dec 2024 15:43:59 GMT Received: from nam10-mw2-obe.outbound.protection.outlook.com (mail-mw2nam10lp2049.outbound.protection.outlook.com [104.47.55.49]) by iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 437s5a3u48-2 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 04 Dec 2024 15:43:59 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=TmXoPYFTSGjJieJWKSD84yEvv46AV2+EHpNHLOEb8TNKWzM2cihfNU7IkmjZH75A1Hwy7sQrvAkhB3NBobJpNgydbp3P7ITLf3033PPE05ESJNt5aEAJwdfq5xWj+fpOxDEeAEMzPOXMedR1TGD/9Dl3KH1PvKx0dY9frb7+cxCIuJAgwM0cJj+zWmdvQNQB7wDZCNzOi7xJ1ANv+HevOZ2r3ojD0vlcEHqoksW5joeSDC1nqocZ2w1cBKyF7iJWV7++4haEZEXLANXLiSvEnTq8eI6Yc8uNs5+iKUPdwYhg35tm5OFxCzAqvCUAtRTRlnhXrG2sLr1NS7qD6l1pHQ== 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=DsvA5YiNAR4qoFiO4amqKKlothOgSUZZjakxIEcb2Uc=; b=J9KCtQghocwHwkpqQ2XQJOwivCp4YI6gvfga/5DmrLFG1M0CUZot0vG7N8LWbsaACC8BNECa2ccmPmCtDGb8ep6FPH1kxs+7N2lwrjhWV+jUMLXiLaQ9q2za/XB5omel2qU5plYW9jngAatVHyKkGMSSvMbeWbs2Kb7v8np3b0Ets5yNVWNcyywJJtwmBosB4BCLX81EIk1fJhoanMdgdK9yzVageUfHrZ7mPeQe8+LIHIL+ZapYabNIurjvx+0rzCtKTUePBlEZdLZ46XKQHCpfEJ9TdRJYJnbGVha4+1sSs/GNCU651s8TgNYbhYtqHMcaatZirrFU40hucGoM/g== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com; dkim=pass header.d=oracle.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=DsvA5YiNAR4qoFiO4amqKKlothOgSUZZjakxIEcb2Uc=; b=lnac9kzp0neNg0l40IxcdSmMHJvDna4kr7xwp72fYvOW8EJCKdoS9CLFhQbOELORo2RjIC1eZJfB2EGxEaYFGK5esXSlAiqkaNtHBMYRQaU2g7561jtPylYrb6LhI7awRKQwAlGReApR762Ib/2oU6dTTyevwgHdF8WZhHutXQc= Received: from DM6PR10MB4313.namprd10.prod.outlook.com (2603:10b6:5:212::20) by IA3PR10MB7995.namprd10.prod.outlook.com (2603:10b6:208:50d::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8230.11; Wed, 4 Dec 2024 15:43:57 +0000 Received: from DM6PR10MB4313.namprd10.prod.outlook.com ([fe80::4f45:f4ab:121:e088]) by DM6PR10MB4313.namprd10.prod.outlook.com ([fe80::4f45:f4ab:121:e088%4]) with mapi id 15.20.8207.017; Wed, 4 Dec 2024 15:43:57 +0000 From: John Garry To: brauner@kernel.org, djwong@kernel.org, cem@kernel.org, dchinner@redhat.com, hch@lst.de, ritesh.list@gmail.com Cc: linux-xfs@vger.kernel.org, linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org, martin.petersen@oracle.com, John Garry Subject: [PATCH 3/4] xfs: Add RT atomic write unit max to xfs_mount Date: Wed, 4 Dec 2024 15:43:43 +0000 Message-Id: <20241204154344.3034362-4-john.g.garry@oracle.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20241204154344.3034362-1-john.g.garry@oracle.com> References: <20241204154344.3034362-1-john.g.garry@oracle.com> X-ClientProxiedBy: BL6PEPF00016418.NAMP222.PROD.OUTLOOK.COM (2603:10b6:22e:400:0:1004:0:7) To DM6PR10MB4313.namprd10.prod.outlook.com (2603:10b6:5:212::20) Precedence: bulk X-Mailing-List: linux-xfs@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DM6PR10MB4313:EE_|IA3PR10MB7995:EE_ X-MS-Office365-Filtering-Correlation-Id: 6cb06169-65d1-486d-d4de-08dd147a7708 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|1800799024|366016; X-Microsoft-Antispam-Message-Info: baQAOWy3fRrIfrMzQIyFJh/ZF+XpU/M2uJ76N3nIevPcomhd1SugwK0IOE+avcUyLSaAj9ioH+a6vog4PRf0TPptfy7SbPVqMAQ5qBtrbLVdpRKTaHTV1wmE0ghMvMQJ90f5x3sUeVIQ3w29w2YuTPnMi9C4y5pyi3csJu/KHFncM9Z3QzBgqPt+Pkek6j7teOjEqeLhx3fxwvl2o5UfqRcPOxwndW8Yxge0bLzOYTs1f7xfWvL2NjAAe3k2jwkoBzwfev71+DPQeGQ2Z/q6pjCbUZe67oitpPeob0zxhIZA55VoY54ylk82PBFoNb2NUG9BIy126pBw1anJHwJLKZJvMmYTnxz9B4X5hfh3CBIM6iPo8omzEp1B/6MneUe6/3+Rn7it6sqPDou4ItJMi7xQMA0vO0rp/nY4kA4T6G1yTuduyMg0O9zksmczOjdPEKfPbGI8EJMrg5BQaKs7XqwHomrhZiPOV2oNpKLYArcOv8siuebZ+9haVAc6yBvy73k4A3yjvMUVaxPVHDw7kRoxJ8+1Mb95aBjqrtv5KYjDLzp4aK7hLF5543S+P9c15AuyQNUjEn/sMk51cHvIDdO8iJ/qNffBy+8UTaF9nS9lXoemRsIFENgHZ/WtP+T5AxxTJC5WjiEkaSrTm0rONVH+IFtAb/YtOfsqjeU7oRLm49vD3SbzPQsb1wgvrpm9bKcCFC8hdElziS7EV3JQHBzxcOiLN6RqpuIxbzdEk/OkjuWIx5ybCzYY0HjCi1/Ug+0ixNoZeVjCxkA6wIItyTjPINAE0J3O6yHMtNnbRCk8+R9i8NelWWs9rSW6jMySDxNTcGwMUEOwjhjpBOU5XcyX5aHpglhIzvQ27aLvKOMqVpKicrBTMCnbYGf0Xp94+3uVj+8aehYicRYYaf96xjO08t/J6dWXMu6Tq1dZpuYeJoRFdSjV7kO4qNzdTU5Dxj56sKAl9kdLV27wRuJuRReBJGGTIo0WOEpeccUX1YVu759mPmCurx1nF+yNGiPhzr8OefQYYAoa6lvf6GCUCLXbsb6FOceWJUL9hJBHylmueMzTIG3KifAy0Qg+C+VDcM1t/ABz6DbtWko9EF2H2Vgxk+NSYmHRvassUzaRYVUJ/+Vnd4/UX4yhR77G+BoBm+BXiEamGcQ4JzLNZPcBw9cv8GrsfK22zCcZ/Dx2jkiYxS/y+a7/EH4mOLl5GCXxQYJ1Zk1vyTCynS6il811tkQY6Ol0Uj1bk/95c8kPyDeNweCuchPimNsZFiJ7N8FIQlwaIo6fJEBFMY6j1uSJP6qYgbG7htWaFvUPzYfxjnHiV3QvCRvgUhoktF5ieoBPedsDfvIFl97rkkvKMbLcwQ== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM6PR10MB4313.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(1800799024)(366016);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: LgpF/QM4Rt3PGuxkK6I1IvX/XlaMuNNkgucAtQIg2P3Ay3Ccosm1LSDrjxiRg0yBV97bVAc+wyAJhONCzG6Cwy+G+BvJJpz1/lfZyHGQxPlFYKt7q3IE1zqxfDf/X+AsUubxWAHPoTBvzFBntapx+YUIRpNFj4NkJdfFXxmpBDy38BdzapT2S6aSj178lUEW3PA0XkAfInuqr5Aci5c1M0RWZkmjnt2/TULdT9KpxNMhyfh28icHcl+oIfiT4JJmz/fDBbRkWFcm5d5uXQCC8mZmn0F3ogK1RgA/H+DLFcfQYWMUDURxQKTqulKfuqsZAlFK3c9NU5g7kTjDGczWoyQgfnEy/n4NuvtI7+670ImBW+yVctnprn4M+Kl929t6oTcV16gm88AAoC87dZVyvHLKpI8HNn340M/rGQRBjQV28pRRmCbRSXh8PANM9J76kcnCTcoUf/KbHDf2qSXXoGqKg5BADe0IeAm1ixLRpxJvfwJzB3oMhlvL2U6LwoiCO6jemA40upqH71Tl/ukQz7NWEK4+z4vnkLZ09T4ugxVTApInw87xMFljuoB1WX63xYuVNYujo6xoGOoon+R67TUH5aQGrtUY9E54agFQ6CaqG6xHcaH/qWkOCDg6lEr1hcwf3PBK+5uf4kllercSe7SoW5VqYzeeXp2h/URXjRL0Zv9VhBWIwXVbUVOO0L/RnGFyA5MFkNHWuHWwEsEmCHifsLgmw5fBm2oBto2Xo95bmK6TkvtZM6R8zA84RNQPaGap6DbreqR5NxkQ5/+0ES3oemhKBvaEDCH91KBDJDeLCXlj+zJwVQ6dsUfOGRAVRX3zyjOX0TUaUQt2A6vSS61tyGVbvU6Ipu6TxYZXqu9UC1lWvsretHX8RuYtT+GwsWo2irLZMLCsaddHgivYGNXldgHkCdHa38SSa/Kj+t9UNHpXby4eXCpbAyGckMFtwoExMcxFl5aQKzStzwkTbqGCxCxchA6GycyuNcw1WSGh/KHQOvcOfnz9Bh0hr1/EKXjImZGWoUBuz0euASiku3li/Cznd0U+A6VWDD6josykfWDRQ9aqkoHP+ZVMB5kxyMXfpm/nsx7Uq637foFbK5COW1DPUv3y+bNLx6b54J5Wol7ouR/9ZT4Dho+leWgRchL451rOQ1b9uZN84Xh4zO4umi4obNi/96FIYIK5MIX4MOMj9B1V+gw5xpG7bI/+Ey63D+DzcN4QxrBZn6090d4MDxweayX2pcKN016Aj4e6YkhIZR+rcfWehk2FAVGQuZZ3rfkTZN1ZzJWyGfrDXNnkDqWUT+/aLmAbTo+U8bXl8xAYDp9dgi+VwBx8nPfxNmd29hFaG/LLo+q5Ms1z4D/abxxxUu+q9fbMg703LgRGQW2tq149lXATkRDsIzzAmXW0TOZkDj9maHLyWmtEVIl4l/2KTXx4vPH/7VfIuvTAMiYbUtCRNDcCH3LQY/S1qoovt/o/b0bQ5vEjCRWkSFnAwSUoZzoKrmXwLcmgjT2admrq7CpSe7iH1+HQ1TC4m/y0FrKFhtWFCGAZ0YQ4L7BVmd0OeWn/qP17ZT75v4Qyw2rC4BH3yFGXLny/yMr3KBDRQ/G5kv4PHjKgtV+W6g== X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: ERrXH/S6TyK2WOxOK+ubfSZPlkXHnofxY5xjBKyAAK5nS2aWoSbqRKizU5qT9kgOtus5ZwVKFvorTm4TzNJU8DRoX7+R402Gf4AFfy023zpHP9sqdQW+qh1u2Fp70Z5Tp3oZeCGWN20AIgGvO6NjHVgD10DPGhpwncO51yF9zTLZmikiKuQqyy/cQfbCQrqmma97cihle7RQLJZ2VE9WWNMzZpWc2+GJkJcAxJrWAFJefeQkmgortpy9r+fsBf9NBFkBLlGcgrswwfX4scrMyZsbgcbQikNipgCIjFoWyOYj5vodyTHboxZvgnGdVwJy/COWVIw6hs1qL62TfyxOULTurHr1UzAGu75/kf3FkOK2kYQxt1yHRhcAyqyd7eW/O8A63WNz99dg3jK/cXNkANv6ASSFnMZBa/lR4CcuznhKRivT3KudUZREtC+29y8xr4VRdfFIuGWcpla/U0gt89+sTwbpMPcPidzxNekJSZE6Ojt2pDvnR7UX6jM47q/mQz5nS/Pub8UyNMTspBnVkdy4qpBtE7r4N0sDI/zV2Gm9X7nWzIODY9ovPeAQP5OjyH17/hxI2VpNOiAV+5aiRa2oI993WsRzktfBakbqdsI= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 6cb06169-65d1-486d-d4de-08dd147a7708 X-MS-Exchange-CrossTenant-AuthSource: DM6PR10MB4313.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Dec 2024 15:43:57.4963 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 4e2c6054-71cb-48f1-bd6c-3a9705aca71b X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: UHP19JWXas/ddc3aMDy6TeoUgjC7SEYD3CP+JSuJJYwQJfW9XuAAzwm1qE6h6k1PzgdUBBoEVMsn3YQG7NnvKg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA3PR10MB7995 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1057,Hydra:6.0.680,FMLib:17.12.68.34 definitions=2024-12-04_12,2024-12-04_02,2024-11-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 phishscore=0 mlxscore=0 bulkscore=0 malwarescore=0 mlxlogscore=999 spamscore=0 adultscore=0 suspectscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2411120000 definitions=main-2412040120 X-Proofpoint-ORIG-GUID: SbR_RapBIUXqtmqdnAqtZ_tZExnNm-4t X-Proofpoint-GUID: SbR_RapBIUXqtmqdnAqtZ_tZExnNm-4t rtvol guarantees alloc unit alignment through rt_extsize. As such, it is possible to atomically write multiple FS blocks in a rtvol (up to rt_extsize). Add a member to xfs_mount to hold the pre-calculated atomic write unit max. The value in rt_extsize does not need to be a power-of-2, so find the largest power-of-2 evenly divisible into rt_extsize. Signed-off-by: John Garry --- fs/xfs/libxfs/xfs_sb.c | 3 +++ fs/xfs/xfs_mount.h | 1 + fs/xfs/xfs_rtalloc.c | 25 +++++++++++++++++++++++++ fs/xfs/xfs_rtalloc.h | 4 ++++ 4 files changed, 33 insertions(+) diff --git a/fs/xfs/libxfs/xfs_sb.c b/fs/xfs/libxfs/xfs_sb.c index e81b240b7158..ca9091bfc075 100644 --- a/fs/xfs/libxfs/xfs_sb.c +++ b/fs/xfs/libxfs/xfs_sb.c @@ -25,6 +25,7 @@ #include "xfs_da_format.h" #include "xfs_health.h" #include "xfs_ag.h" +#include "xfs_rtalloc.h" #include "xfs_rtbitmap.h" #include "xfs_exchrange.h" #include "xfs_rtgroup.h" @@ -1155,6 +1156,8 @@ xfs_sb_mount_rextsize( rgs->blklog = 0; rgs->blkmask = (uint64_t)-1; } + + xfs_rt_awu_update(mp); } /* Update incore sb rt extent size, then recompute the cached rt geometry. */ diff --git a/fs/xfs/xfs_mount.h b/fs/xfs/xfs_mount.h index db9dade7d22a..8cd161238893 100644 --- a/fs/xfs/xfs_mount.h +++ b/fs/xfs/xfs_mount.h @@ -191,6 +191,7 @@ typedef struct xfs_mount { bool m_fail_unmount; bool m_finobt_nores; /* no per-AG finobt resv. */ bool m_update_sb; /* sb needs update in mount */ + unsigned int m_rt_awu_max; /* rt atomic write unit max */ /* * Bitsets of per-fs metadata that have been checked and/or are sick. diff --git a/fs/xfs/xfs_rtalloc.c b/fs/xfs/xfs_rtalloc.c index 0cb534d71119..3551f09fd2cb 100644 --- a/fs/xfs/xfs_rtalloc.c +++ b/fs/xfs/xfs_rtalloc.c @@ -735,6 +735,30 @@ xfs_rtginode_ensure( return xfs_rtginode_create(rtg, type, true); } +void +xfs_rt_awu_update( + struct xfs_mount *mp) +{ + unsigned int rsize = XFS_FSB_TO_B(mp, mp->m_sb.sb_rextsize); + unsigned int awu_max; + + if (is_power_of_2(rsize)) { + mp->m_rt_awu_max = rsize; + return; + } + + /* + * Find highest power-of-2 evenly divisible into sb_rextsize + */ + awu_max = mp->m_sb.sb_blocksize; + while (1) { + if (rsize % (awu_max * 2)) + break; + awu_max *= 2; + } + mp->m_rt_awu_max = awu_max; +} + static struct xfs_mount * xfs_growfs_rt_alloc_fake_mount( const struct xfs_mount *mp, @@ -969,6 +993,7 @@ xfs_growfs_rt_bmblock( */ mp->m_rsumlevels = nmp->m_rsumlevels; mp->m_rsumblocks = nmp->m_rsumblocks; + mp->m_rt_awu_max = nmp->m_rt_awu_max; /* * Recompute the growfsrt reservation from the new rsumsize. diff --git a/fs/xfs/xfs_rtalloc.h b/fs/xfs/xfs_rtalloc.h index 8e2a07b8174b..fcb7bb3df470 100644 --- a/fs/xfs/xfs_rtalloc.h +++ b/fs/xfs/xfs_rtalloc.h @@ -42,6 +42,10 @@ xfs_growfs_rt( struct xfs_mount *mp, /* file system mount structure */ xfs_growfs_rt_t *in); /* user supplied growfs struct */ +void +xfs_rt_awu_update( + struct xfs_mount *mp); + int xfs_rtalloc_reinit_frextents(struct xfs_mount *mp); #else # define xfs_growfs_rt(mp,in) (-ENOSYS) From patchwork Wed Dec 4 15:43:44 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: John Garry X-Patchwork-Id: 13893969 Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) (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 CCBB320C03E; Wed, 4 Dec 2024 15:46:28 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=205.220.177.32 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1733327190; cv=fail; b=narRhpyOXc8cGPdwDXXSIhvyom3cTorZtfb9BhC7wqiZj6ulef8VEwg17TaUJ3cg+stvQo4S0gTPqdc7HgDJJtykHZsM2RxPHH1ukYIbqo0OkTe+BLKIT6KD3LHDPX27V70yHiLPcxek1SODRZf/7hoYZFjcFv1cTWF5xJyv7m0= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1733327190; c=relaxed/simple; bh=T/H0MQl6+6wQP89dXD/1cxALDZ5syofyLVpY8AZVQvc=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=eOUsmuzXk5Q/+3yz/LAWCaT2dFelBHOHC+cuHy80dUrZiCUSdoN+llCqcDAsCFZjA0ZX6ssBRN2Mmbd3v+ouwF+czpH+uJNXecNaFSQRx5u5o2z1rg1oBPqS+Iu0/RGxP+2W5hHHiMSpGW1XVORuV0ItEF5/iKsXCzsNCeTFwhc= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oracle.com; spf=pass smtp.mailfrom=oracle.com; dkim=pass (2048-bit key) header.d=oracle.com header.i=@oracle.com header.b=F0/oY3sX; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=i/3/y9Ba; arc=fail smtp.client-ip=205.220.177.32 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oracle.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oracle.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=oracle.com header.i=@oracle.com header.b="F0/oY3sX"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="i/3/y9Ba" Received: from pps.filterd (m0333520.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 4B4D0j9i028121; Wed, 4 Dec 2024 15:44:02 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=cc :content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s= corp-2023-11-20; bh=FJa2FYn+l3JgVXkyj+HzJHLUFWBrqtA+vCZJkGiC1zk=; b= F0/oY3sX5hWYqWUrlj7Fn2wyxfLaOjrgiT3Jktn4Lyw3vjZArirwXITR8CLCGz9l MGao/8CjWykxj+SKcQFsSAIJtvTmjAkfWAf5NAuxFRQYpo5m+JradrXtqF8RqZo/ dEphaBFszHe+x9OGu+kLGgGSj/Z4VZwAZ8B0KthKTUa8+tYhn5LDwqIuKsrVqb6u dAB24kICtLHzXXm3YEpA7s0WAeR1snUfyiz8ZuDWirsZx/XX+HcdMi3hJleip+FU K/eSlp31io/0mI81epPeLL528C5isQ+Wi1rxka5da1a74d311OPQrn0uV1kcT1Nh c45sCogz2D8vt2QZX1zCKg== Received: from iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta03.appoci.oracle.com [130.35.103.27]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 437trbrv4g-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 04 Dec 2024 15:44:01 +0000 (GMT) Received: from pps.filterd (iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (8.18.1.2/8.18.1.2) with ESMTP id 4B4EgUcb020166; Wed, 4 Dec 2024 15:44:01 GMT Received: from nam10-bn7-obe.outbound.protection.outlook.com (mail-bn7nam10lp2046.outbound.protection.outlook.com [104.47.70.46]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 437wje6u82-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 04 Dec 2024 15:44:01 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=r5PRz1UYqLXZ9lEtl7+u2KXaWTeBagWB0oclURCXYe3he1K9PtYmDO2z1s74BXQlnffR/3ARPhLtUzYWKNOXGLpfIACCDv2P1IKC16/yUlQ2/mogXOb234t6stKcwqleJqYbV0I4leHiUJhpoiuPMn5W54rYKscCFFbch3ifEWi8lmpKgeWq3wrlBW/C/LJXI9NnG/aeQu+4jzTecAl6kzfj5i+FSRArLPTiAkHqlfar7v/ojghC8g0gGnsAR/np1iqIFaxwuOul4xVmdylQen4Hndpr1935rD8NIIZ2oHc6zxvYFYHkEtzOUplsrr21TUBmV7Gf95vHGzpUr44mAQ== 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=FJa2FYn+l3JgVXkyj+HzJHLUFWBrqtA+vCZJkGiC1zk=; b=uFNjJNgucaFdhTx0nMRpUtSCiwD/kpAgyxULZSs02tTAytSqUC31N8rme2Udb4ckA2rIpxhdC1T72aUYYofgSaT1UkZXIsl5Ts6OipmrjpKxXxjulKqNkUzvbdqF7PZfPhNlGQWHVf1tfo76qlALoI87DycZ3uHKzH9HvfMqWyI5JkBqYOlwJ7h5y3lK7CdA837ra39TYdWq9HDZPfzrJEM+qSqnlCx57qd6pnAdYfa5qXDXg9S3inwJL/QVqDCgRXfwj+lzk+xTlYH5hT7VrF+p+fOXb16GUdrazBv+RM+EHaci+tL+DDVjiu7/kdlSB8NBBRkvRFwqVMNetq2QCQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com; dkim=pass header.d=oracle.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=FJa2FYn+l3JgVXkyj+HzJHLUFWBrqtA+vCZJkGiC1zk=; b=i/3/y9BaNOF5hlEZJKndRcYAJcCPiyY7uDeqOMmQqhPjDd4ZAN9C2nJWGYvNC35vHvrNdXBU6AFHOHjwEjF5d24warZ3I9G3ojH5D6C8c+sNgWBwNSs047RYOJVvPUcjDhyCRvoHKtw4zixO1GbBZnxbKI9pjJN0oawEzqCGryE= Received: from DM6PR10MB4313.namprd10.prod.outlook.com (2603:10b6:5:212::20) by IA3PR10MB7995.namprd10.prod.outlook.com (2603:10b6:208:50d::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8230.11; Wed, 4 Dec 2024 15:43:59 +0000 Received: from DM6PR10MB4313.namprd10.prod.outlook.com ([fe80::4f45:f4ab:121:e088]) by DM6PR10MB4313.namprd10.prod.outlook.com ([fe80::4f45:f4ab:121:e088%4]) with mapi id 15.20.8207.017; Wed, 4 Dec 2024 15:43:59 +0000 From: John Garry To: brauner@kernel.org, djwong@kernel.org, cem@kernel.org, dchinner@redhat.com, hch@lst.de, ritesh.list@gmail.com Cc: linux-xfs@vger.kernel.org, linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org, martin.petersen@oracle.com, John Garry Subject: [PATCH 4/4] xfs: Update xfs_get_atomic_write_attr() for large atomic writes Date: Wed, 4 Dec 2024 15:43:44 +0000 Message-Id: <20241204154344.3034362-5-john.g.garry@oracle.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20241204154344.3034362-1-john.g.garry@oracle.com> References: <20241204154344.3034362-1-john.g.garry@oracle.com> X-ClientProxiedBy: BL6PEPF0001641A.NAMP222.PROD.OUTLOOK.COM (2603:10b6:22e:400:0:1004:0:6) To DM6PR10MB4313.namprd10.prod.outlook.com (2603:10b6:5:212::20) Precedence: bulk X-Mailing-List: linux-xfs@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DM6PR10MB4313:EE_|IA3PR10MB7995:EE_ X-MS-Office365-Filtering-Correlation-Id: c7204be3-cd4d-4fd7-207c-08dd147a7811 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|1800799024|366016; X-Microsoft-Antispam-Message-Info: cZNDAYkwdFXJr2F/r92k363L6YIkVvj3znHgYo8vd7G2eQwR62auAS3XfPEqcyokJhzLizhzvyhdSVwmyDxt5nvunFri3fIlKHW/vEo0Fu80w4D/FkCljy94XShR6G/APXaYITaJ/bTQEZVPeu4t2Bbyl3h8/xSlbzbqCClB7eOscgHIAr5zFriE1S8i/t8+Ao3Tq0KB2Rr7lKJjy7QVal4PT8LF/icW0PTrxjNxqGqupjtdMfkL45xXZsedwvYEBMnMc2L9CXFlb3p4D+RKunC8HEk2hEihl/+1vC2W+qBMjeRsMbnsQ+RBg7/fEaiIBNOJN2jBGhwjIgPIW2fB+tESYwUb+Rq1ndq/WwkP++Wt2UZw+a13hi9FAk5QI0zHjGqeLWEya63K6xULoTixY67xqz1l3Iupp3tWYkwEuINzkvHeGlor8kFIvschaXOZkwEHKEl0kXJtFdsElL8I/jg3tg05JnuQ8QN9kjcNR6klo49oH2ISyVk3etiWv3YTNp8VnlAOgCAWUhBWeigcWMvhpuFAHDzJOYZe6YODA7DiksI6LWgb0TfsrahfocO2ZCwC/Zd8tustlIdBjMhjTM6GyCb9oBLIqu05lG2aOWtBV0hXtrkDd+kJp+ASwlu2GePnmuCeAK1FeC80/RLXBGagTZQ5pgfK/5yDK0YE00lP8OfmuYmDVEPwxL+QY3vAIWZwozZN6z1CZ5Bu7P3rxl4RQqM0+4fdOABO+kvkGDBBTWeYSl5C+qtKsJ4hVo4CP1i+qzknQibPBIljZZeDcBKCIl8WI4ETCjbHWQgVbVds84vPNt9uJqGZxFfYyJ3gk1HPhXgKun0O6/47vnAKSYF920pO8RogT3JEtgwMfZ3TKtOAZLiQ3Fr1yy5IlavGuGp7bLq2XFDd3+8boJkLLj5xrmLVkBTt5bg89FognF3/XgK7AdfCyB2K4dmjJxDWQj7rwOzluEyezVNR/mDM2y/xExc0PWqlUIGJNBinhjbi4jmtU+8WSbrPaitzYRH0r9Vcr8kywmWyoOqGE3W3hfdc3J3UZM8Uf71BtNuHqdpH0zL0rs9vsGaNlnglWqqPc1ppN5UDzv81h/j7YYELFcFhN004gwOwvu1U1gPxUBRoXVb2o1twTEG+lrCb5mzVyOFX2q/QZhYhXWWElPoLs3ZaMcKCS6vEZ/qy9XyWQUlFc1dFBc2zEszvk9z8d3uq4Tujptwn6KTYTEtNgqSDmTUiWUz98HlNrnfnEUyLclPAwXckxTWQcJV0DPBZgUaqQKwGGRcxTO1XLcDw63zxr1oMozEVI3GBLLZu6p6/q2JnmL0I/rScl2VU9uNBesyb1boPn4/UGtSmOvojuS9nOg== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM6PR10MB4313.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(1800799024)(366016);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: GkSExHr/iaYP5HxCtEOGREDRRFf8aR6yHAJRzukFCqoYVqBd7+sKJMVTVV80eEgYU3dB2Hzk3CbwA8FQwkk0V9Kmkz5DlqvkAw0D8OCV+pPeknGcmdQkdDQhbixbHsn/enuLHi3ibakmp2/UxyiQEvalfEcuEkV26ylo20ZvDPc+0UfhdApb4mAyABNNskugG7GnUogtHjt8JjvnkkoOfgopZljJ33ObNP/yURKtYqFDnvJYVc+cVEqQspGpEYDppJBWPGPrGVPBJ2B8c9aMtdbRbLixGg5BvowsZoonlXmkYpr1tZQbU9KJSazdOtPvdUtDeW1G4t1+A88LlMMdPOUD+MAtgpsKSKIaPsqU2LR+pMAiYsdNzvW6Lj2Bc/bESQrftHzVex2XEkoIwuQ8SL9t4P0vHHwLDtv+7HMsrF4yl+XN5xj772DSYHljB3j5P782mFrbbDzz4ZfAN7kf9/oNuZ8uX2IWYBx0gXpX5kdHdJJsFx8PWYvxxkVT0LO+o+eAMzQB3z7UHbaEdYVQo8rN+MUDt3OEC3lmEbEY8eFfQ5wMFzinCX4wH0Dxz7C1ZQxR8bmiijXAPIAIMZFazlnOKzDV8zBHxyPDsMw5ePUQyOhsXSTtiirByZPWwroc7phueeduxDtUk4oVmEjfEZrA+VEn+XLfZTVK1LFa+dU5Mi3lNQ54AxzE5ncHk4uHiXbtLv5B7SCuRYdVTtLIQQMkUA98r8nYe0QdekK/Boq2u8suG24mB2gJYJfMrfsiQGKpvR9ZUAYRQUY4dvsqzF098lKUdiU5frA8VWpE1kJJGOeAE9kEzYLeJE+dfHCKvH+vOO/mgQzeXuf9HZ9eCc5FhvNEuyQ8ABdZE4w3Gr9NkRQkqDxLh4aGrgLpKu5V+wzrJHCqmh0QgU1jZCTsJP8r1hogZY2xgqDU4RrwMM1BEFMnmpiV5kOKEqeuuRpGG/EKdrV7N90tW7ONI47tHUB6oPffjJOQKSgthfuMPm7dyhqKGpM37UilBPjrPuw3VmWyfdneVoekeN9YHW9eaqm798WZNy+qAhDzNcfx2CebPhvCyDlR8zoLdPmEfvYiEb5EIM3LWgNPCw4aPbrLNcJky5jzp0hvcnb7YiNwV7mWXYX/lcBERDgypSRhad4TvoVHwR+aCo0u7wh55bOLnTpULmv8nSOMx+IhB86iMr6sPob3NJBSxz0pDv+F5TB+P3rSRxrhXqINrx9GstNl1ES4tLlBYGmmbDK0MelSSWyC7tTrRISxdA5iq3iJ7aUm8ghrgC/iIjgkN4u5Vx7xBrUNJiMBH+CFokLADVD1KvzUiUXpmpS5WuZi2zyKfeVNVLoiy4Ab1AVgRFZKuGWcydN0r8i/e7/9PEUQ2TRkfyiRFTbuA5jHsnG213WmIxBYejRLW9M7kHZfuj5KABy0kexISD7n9WBYAX4DwX3PM0hR/bQ9FiqroV6cIAevtdCpDObeHsscci3nstcf5i0Iz/oYfkvJC7dwuTtRF1Z3RxI8IAF9doj9G0MzxKXrT1Dr9xm++XUmdCuOYIkhx1iT1Wg+qpqpC+crjskHQ9kALWAUf/aAFQlx1QeadSzUbDmNWGglC7pMJRj7nneK5baDSA== X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: svCR47h+PFsWVKzUrfnj925zebZMIpuRDtMbNmb4Ogc/xodBHfMhVOS5+49Q1GwU6Cr6w2yU3s/+UXU+pZ2Lb1Snr/XJ7jIX1rPiHfo1khpMAVNMPVqjuU63qoFaSnVYT7ocedvId3nYy2JnvvSZggi6DkXBPoY/LdbJAAF7Qx9AA2jA13Tn5miTfF48z+Ezn91a29IKguPNDVz9kbwpiJRITWibEtZ3Huak7dXnqqzO6AQL8fjQVRSKJugsxdXcryzTbeBQpsFCQ28E6C3i4ymjXMvknK1iJDDSSZdJ1Xum58e6gVSX1O4D0sN0k5A45pkWZepZ+0sODIf91ZCp2xJyWxKnHaBuxhHHX5EMT4Ra9X8hLlFHCXsm7GAvBQiHcfMiGAKdXI5BiyR8a3mgBB752TIk3xILiqTidyfYot3FD1kKjuvkh8fkRu7jIndPQGwwzO7O6F79i28xlp16d3VqVdQ59+zVyban0Tew1PuAvVfU33JfxSrB3UhWyQExwi4ARMXPAEZWvtpOYZA/L3rl5VH0P3V0adiVoC9xweP/46p6a8fVJuqcT0hJ/UYC6MWGwhDfGmO0yRaXvyZOcLFlX0BQrJdZLs7e8Rs0iVA= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: c7204be3-cd4d-4fd7-207c-08dd147a7811 X-MS-Exchange-CrossTenant-AuthSource: DM6PR10MB4313.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Dec 2024 15:43:59.1391 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 4e2c6054-71cb-48f1-bd6c-3a9705aca71b X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: FiRb5zq2yfAPvaEOmoZrruDAsEsKo0l6YrtHDWwqf8ZzIhDWYrDt4iV9plspVnKBQminJkh5FqtGqM2cgPsrcw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA3PR10MB7995 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1057,Hydra:6.0.680,FMLib:17.12.68.34 definitions=2024-12-04_12,2024-12-04_02,2024-11-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 phishscore=0 mlxscore=0 adultscore=0 malwarescore=0 bulkscore=0 suspectscore=0 spamscore=0 mlxlogscore=999 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2411120000 definitions=main-2412040120 X-Proofpoint-GUID: G9SlntbuIxrtUYQYTSlqnXQSKO92lXtf X-Proofpoint-ORIG-GUID: G9SlntbuIxrtUYQYTSlqnXQSKO92lXtf Update xfs_get_atomic_write_attr() to take into account that rtvol can support atomic writes spanning multiple FS blocks. For non-rtvol, we are still limited in min and max by the blocksize. Signed-off-by: John Garry --- fs/xfs/xfs_iops.c | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/fs/xfs/xfs_iops.c b/fs/xfs/xfs_iops.c index 883ec45ae708..75fb3738cb76 100644 --- a/fs/xfs/xfs_iops.c +++ b/fs/xfs/xfs_iops.c @@ -572,18 +572,35 @@ xfs_stat_blksize( return max_t(uint32_t, PAGE_SIZE, mp->m_sb.sb_blocksize); } +/* Returns max atomic write unit for a file, in bytes. */ +static unsigned int +xfs_inode_atomicwrite_max( + struct xfs_inode *ip) +{ + struct xfs_mount *mp = ip->i_mount; + + if (XFS_IS_REALTIME_INODE(ip)) + return mp->m_rt_awu_max; + + return mp->m_sb.sb_blocksize; +} + void xfs_get_atomic_write_attr( struct xfs_inode *ip, unsigned int *unit_min, unsigned int *unit_max) { + struct xfs_buftarg *target = xfs_inode_buftarg(ip); + unsigned int awu_max = xfs_inode_atomicwrite_max(ip); + if (!xfs_inode_can_atomicwrite(ip)) { *unit_min = *unit_max = 0; return; } - *unit_min = *unit_max = ip->i_mount->m_sb.sb_blocksize; + *unit_min = ip->i_mount->m_sb.sb_blocksize; + *unit_max = min(target->bt_bdev_awu_max, awu_max); } STATIC int