From patchwork Mon Mar 25 22:07:01 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Catherine Hoang X-Patchwork-Id: 13603060 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.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 9B59D70CC8 for ; Mon, 25 Mar 2024 22:07:40 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=205.220.165.32 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711404462; cv=fail; b=JrF/47zbbBQZOA5a/ZO3DOIIRcTUA2Fm3c2vTRuXk6ORHwrtni1UQQfiB8y17l3csfiXM08OlDuadqsxKoCOzXbWU76yS9yTKnma2E2ds/powmW1UGqNbcowDcZMw+/5s4W9WkHsMR80YGqF6KVD+Sqhwsx8Bt6I0iPROtVmznE= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711404462; c=relaxed/simple; bh=0K4zk+lMoVKo+zwzs/pxH6rmVtX/qqUwMruZ+R9wjbo=; h=From:To:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=nFo0s4i/Nxc1Iu83LBTrOeh8ytTzhuYYC0UwBYYuk0kiJvTOnXItfd67FcDIslrYiFe0npqGA3JqquKdq5VwZ8QFuPCF58JkfwfxxB4fucRpSW2xvD5sYXpfawkVAfV4Mqt7eLuOk5G6cgL2WPXA7tcOY9TA9qV1Pq80NAQWkPI= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none 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=JNFzDPRS; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=sBW1WjRI; arc=fail smtp.client-ip=205.220.165.32 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none 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="JNFzDPRS"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="sBW1WjRI" Received: from pps.filterd (m0246617.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 42PLFuKr012544 for ; Mon, 25 Mar 2024 22:07:40 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : subject : date : message-id : in-reply-to : references : content-transfer-encoding : content-type : mime-version; s=corp-2023-11-20; bh=xctqRtu0tlSuh0UjmGybbrOqdhfcGs6vdWuB3jjBHJE=; b=JNFzDPRSygZPSjKj6KBlq5Poxop/FhWAQvH2j08gPHP+oSDhEuF0tpQgw0uPUDFQX/Jt NdM214p9vU0ZW79sVWE9uTBwYvFFMfS3zOS3CnvQBf/G6+6O2LdQTHfQtXwcOjP1Zc/0 aB61+lYecETEiFkuKFbr0fe4XBuOYgGca0qy+R9ZEdn65nUD/W9RuB6wpdh8WXOptpfa ZaD6jCIkE3wyn9qRYIg/VFDepsWj3jntk/vQsmb4ZVDpyfPRBN3yBEpB802hGHhwXTZa WMQvqtKSJZvMKkMI+0ikkyfCmXugDb40Ww6gBV8JNoIoNexnL73NsNV+Nv+EvORlcOnU aw== Received: from iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta03.appoci.oracle.com [130.35.103.27]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3x2s9gt7dv-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Mon, 25 Mar 2024 22:07:39 +0000 Received: from pps.filterd (iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (8.17.1.19/8.17.1.19) with ESMTP id 42PKGKdI015967 for ; Mon, 25 Mar 2024 22:07:38 GMT Received: from bn1pr04cu002.outbound.protection.outlook.com (mail-eastus2azlp17012016.outbound.protection.outlook.com [40.93.12.16]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 3x1nh64qxx-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Mon, 25 Mar 2024 22:07:38 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=ZHZBm7iBTrRA9cM4bn23VOHqnZzYBZJubLAIuYP8BmXnV1nG5uag8BowKEjYCeg0UemHNvKPnhzVbThzyRtaHH95PxdoOUS50ewhu3STImmAxvLkKE2ncnJ0rghmQka7z9U6q0Z4eS9x4kU0BjJuhmv4K/pbgnbC0jvwkFNXGNIfmtn3Q6j3/hwql931zfoyqLrPNW7TGvj23Dy12Ol4vWQdhxKKH9aXSUb1TrbNKOWrtPhoyWwrAcTyod3zu9Nx0RgjmvPkm4ffg4VoUdJZP3FfPfx1xQyMGuOG9O2DPZLmHfA3GOfXuPFmts7OTjBau3wDroebqR1aVj2ykFBGCA== 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=xctqRtu0tlSuh0UjmGybbrOqdhfcGs6vdWuB3jjBHJE=; b=B6knnsZBLqT7yn7NXbBZgeYfMNZbN6/HyAlTKkWaoPLkTQYjpbugaRvpAnqbaMI/ga5oo8B0yS+dKvT8ciEt9zGIMoNwyRGCrb8oyFvu/RrAvVNYHNLUwSSiddyuU0OvLILiUpanLy1PkAgHj+/tQwUuM0V0spqe2mqh/nuaw+lD0w6jTNW19m+7pg3MHRSysq5/FVnJ1d8lOjGSdPRicTq6iWcwZ9AZ6rZq+FiTHEto3QijU3naObz2TodT1aiKo0k9OfU24PYB13q+p9J4L+ShHIHAJjbjccXxtxtI0WQ3Cq0kuXDMTwfeBntSCkHG0M3ov5qGOEZqNZingQPNvQ== 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=xctqRtu0tlSuh0UjmGybbrOqdhfcGs6vdWuB3jjBHJE=; b=sBW1WjRI1Q6M9h0UzFpMvu6TYxpp0KdEPQBrl4Co29DAkO3r9N8Gq+jV3g4LmHnyNDx5FfmagTFZYMuqv5fx8cSTximhW0q988YvgSHNzlwHd2hQNMgXys4CmvoQMG69PsLvKxvBJPW2GQaiuregDAqirfsGKOcDtOL6prBNA2g= Received: from BLAPR10MB5316.namprd10.prod.outlook.com (2603:10b6:208:326::6) by DM4PR10MB7476.namprd10.prod.outlook.com (2603:10b6:8:17d::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7409.31; Mon, 25 Mar 2024 22:07:36 +0000 Received: from BLAPR10MB5316.namprd10.prod.outlook.com ([fe80::404e:f2ff:fe2c:bd7a]) by BLAPR10MB5316.namprd10.prod.outlook.com ([fe80::404e:f2ff:fe2c:bd7a%4]) with mapi id 15.20.7409.031; Mon, 25 Mar 2024 22:07:36 +0000 From: Catherine Hoang To: linux-xfs@vger.kernel.org Subject: [PATCH 6.6 CANDIDATE 01/24] xfs: move the xfs_rtbitmap.c declarations to xfs_rtbitmap.h Date: Mon, 25 Mar 2024 15:07:01 -0700 Message-Id: <20240325220724.42216-2-catherine.hoang@oracle.com> X-Mailer: git-send-email 2.39.2 (Apple Git-143) In-Reply-To: <20240325220724.42216-1-catherine.hoang@oracle.com> References: <20240325220724.42216-1-catherine.hoang@oracle.com> X-ClientProxiedBy: SJ0PR13CA0027.namprd13.prod.outlook.com (2603:10b6:a03:2c0::32) To BLAPR10MB5316.namprd10.prod.outlook.com (2603:10b6:208:326::6) 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: BLAPR10MB5316:EE_|DM4PR10MB7476:EE_ X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: xf29q2mPCFh60KpVovjsOCshQ/weLDfIrXHYRsnwmKt1U3CLoCdpBo9WPK7VbINREfmisB2xhl9vaNeSJHIgdqWxjjWWI8wmkhD5/dhI0MLtM0P9tLaJxFVLdM6MjcPstrfqOL8eVNhD+6313wY1T4CE7N6agHmH2fIzAePUeprX8n1dPovGjC++f7g5kLb8yY2mY6lOLeyhFVs4adkkgEnQBvxLvisfHJi6eW0oR0ESr+BWZGdU3NRiLMhOmaZtKySMDRrjGtGVrWXeGzgDIDmLZIWsA6t/DZDfjkMq9P1OQ3UtjTWT6TTg0f91fY27B1pxGFVzsuU5s7AZ5iGIjORINzQd1RPKpt7Sddc52yAI2UtgOlIsYTvsnIbSYCsNjxRruWfV7qd2v1iifSQ3C2BgOvtZvsduBrEj55q7xuMWTKjBHCgrpIyoTWbt/z0Yl7YCmnxldso/t3WQRSXYZpKrWNpDC+8Zj9bsQHQxdLFbtg47hQwIaKpQla30KXBseaqxyVYEXAKwkvl1vbJQ2pmyx3pas0GYFsrePas4okX/mbVE9Dln+pz1TjYqE/ZGrtxkY2dTJKft3CV1VSFL4qQN70UhHt9wXVrjKGYqACUCXmgPt9KHV3ciy+5Zs3Drques6pOLmRFX0qTixtfcQ7gkBfc3XbUewawEbJExqqU= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BLAPR10MB5316.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(366007)(1800799015)(376005);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: hm7Eeehanrc6I/vNib7YbllFqCd+GQI7AzPSCEWAsn5OvdroMvJO8r4/05EdbzEe3qKJLztAFwl/Jo88v2v8r6s2v4VfO2NkUNX3YV2EjwCeRxd+A1fLbTDJkL35pXgyIjmTfibHg9g4GvftNkYjdUGrfKSSiT133gwO5cS4RyiLDMvsxgecoHgglpqj6ueKTcYZ6/5DhTIUelEhX5ynqj/4CUICodWKT3mKWVcSlZz1ltbGF+QCPaGhBUSpU+1+Qa5+JAA9PZXFThYC6QXFvSVkWmtf6pIX1s1oTkZTXypfEBRdoetbP19dU5tDg1K4oeBCXYSru8jzV++IQuKCbeMeE6jLkHG0kJB9aCQfPpHYLTZYGKqWRWmwyp/AJ4JdUjtFJyTCxdazRP6d0vU7R6CKD6z1gbCk9jwn1soFq2eRBZHaapK2VOMVI/4go2X4X95ISv4TlymkboYRP1mT5aOwyhe8ZHjenffO8CZA+ATN5Ro3Gcuk58OjCGC+kLHwdHPYA9LT9epbN7Rjs7RdjGQFYTN0a/3oxprdNdrjJqc+wHgoLyo0srgL8RzCuzr2Do/4pAGq+Gwr1pUdrEH93smqHb4r5ERYrIY4RIbb0s3VBhGE0tyVMnNtPkO+FXwH6MtfH0m+1zNg5bm+z1fCn2XI8E6Z7/Cgcxo5ymrgDh+AfcCM7USeV7ja2XItFU675GpR8VjQLxfuc+/acppBFRCl9OI8n0ICV0CiCjrA47cvtGWA+CLEmeWi6tyo+TzPedOFlCQJS03xRybO8c/21i4t5JvjjmvxUzb9D2FJGsHOzrRgqGFFyXxkpngWeMTAi4DToRHhsumBtXKqMmreMhh3TJ70rpUtd8by3j+LQy1f/y1AB/iLWea0G3qJdtETwcUaFlEaTlCs8q7EXr6NDQqlGJGQy8Im8DJclXRM6bZDhSDU+r2knxmtwIuJdhMu602qehsPtvjtW3qhwyUNfi6MJOxlwZ0fPhjQWHSCAjz7oBJM8cZt/uJpHDAgmMO99PdZRaCviUBW77qo6/Tmr1rA0hborfijg14T1QgEOBAGxooyvU0Q/k79i5o+feLazzH416Nl8ih/ck5lCpHZ8GJ/q/q7mKalEE1UXGYYCLyYMtvQuAgAkCbd6HUbkG5Pi3dGy5gMO9VlKkxlMg5ICxYxyB7Cr7CPbStKdjgXuxitnpb6EIKWQWyw+kdLY/mgVPo+Y1dTeM1n9XutPGimZJbOtmxR6DA/AzyZBAVLMlaDMubHxtMgUrHai2jpNDPbGBUXpE3E0sY6xHmSVoAF1vnQ5kPR8+ycD39+05CyPq5sTWVjjtZ3zPaVk7bhcrdueCimtcw2vLENmmBtGuKIpNE0v7KfhY7qAcH7Mjc5wYtgQd1u4ZZgR6eh9cO5xDcWqLKDTZO66cdvVv+TolWqxI9Q+0EMUo66VNeQ0k0LKdxptbfhiknbIhXxL/uQe+k52B24gkHGesWQjOQ1JEWOw9ov/9P5ATz95PbZtkZtBRjysCPQje6eqWUJyDFd+I4ZuEDTKqCRMrpExrfWtE50xy8SvhjsGRKZFSBlHDJRKfqMsJvzwHhHfDR8SXglaCigzz7drCaTOOt7mR2vrbXfwG0F+VnLVn0twEQFJMSW9XsguwNefq8rFZmWoZAFC1xtWbvsBInRIHL0JEMfxer8LA== X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: SmIiLzcjzR9UudH0XsIxY0XP2arTdhfTfDQ2nnjXZeoiJVGmraVwNngliU6I3lVSrVDvYgnOFR9xNdJvTLYqe20/wwb4drCAH3pD311wwAncyTj6O5VXtnCHGwYZxP0S6by0154hRj5U4oyC2MS4KhgvdIaVxyB56eON3hhcatLupwUtLt+zmIPowQFW4R9OjX9MSi1zdP4W6qSH2twH0el6013jUv54vIotOAOirByxPlsxmtyni6xXb5Fo3LXRaQwiBaH7OaP0PJyLO61iMllMmW633EFMiTvSwRMtecWRhsJrmbMQIn8QDvNLf/LlmfN95qZViopc7GCoF377r9fTAyma/9xDzTq+dZDFqwL14WZ/QYLHNW2ELqiRSQUrnfIoBzHMb/Y3dLtmhGRIMuldISr50V4jnatrYLcfQgWAS15mvv7V7a8Eunm8BGZrJnxbJsa9/eeNzhN/l0reqPvf2B7UxjnisVzPPJdgIMvo8xbILlihG9sp2eAaNqte4L1EOJv/ecECHoBwI5knwcBl3fQlW9S8mAkw/cx/s+kwcyCr8ziP3sdWDh0h0/wck39eyjMUUk5qOHnnQg7GTwOMyy0YElFwrMj2C+Kc5HQ= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: fa2c2684-c991-4473-4e3f-08dc4d17fa71 X-MS-Exchange-CrossTenant-AuthSource: BLAPR10MB5316.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 Mar 2024 22:07:36.2564 (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: ZmRX+KPVnYDUMcU+1meH0/DfG5MmneBUUTdey+dwu0qbNBs8gUO2VOI0AD891q0GUGIkgW39CzmXwsDQNOPtcxsYHsOcr5rxXwLdRP5yXVY= X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR10MB7476 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.272,Aquarius:18.0.1011,Hydra:6.0.619,FMLib:17.11.176.26 definitions=2024-03-25_22,2024-03-21_02,2023-05-22_02 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 adultscore=0 malwarescore=0 phishscore=0 mlxscore=0 mlxlogscore=999 spamscore=0 bulkscore=0 suspectscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2403210000 definitions=main-2403250137 X-Proofpoint-GUID: grG5vILlX9mf6e27zQatvJEJIGGrv1xy X-Proofpoint-ORIG-GUID: grG5vILlX9mf6e27zQatvJEJIGGrv1xy From: "Darrick J. Wong" commit 13928113fc5b5e79c91796290a99ed991ac0efe2 upstream. Move all the declarations for functionality in xfs_rtbitmap.c into a separate xfs_rtbitmap.h header file. Signed-off-by: Darrick J. Wong Reviewed-by: Christoph Hellwig Signed-off-by: Catherine Hoang --- fs/xfs/libxfs/xfs_bmap.c | 2 +- fs/xfs/libxfs/xfs_rtbitmap.c | 1 + fs/xfs/libxfs/xfs_rtbitmap.h | 82 ++++++++++++++++++++++++++++++++++++ fs/xfs/scrub/fscounters.c | 2 +- fs/xfs/scrub/rtbitmap.c | 2 +- fs/xfs/scrub/rtsummary.c | 2 +- fs/xfs/xfs_fsmap.c | 2 +- fs/xfs/xfs_rtalloc.c | 1 + fs/xfs/xfs_rtalloc.h | 73 -------------------------------- 9 files changed, 89 insertions(+), 78 deletions(-) create mode 100644 fs/xfs/libxfs/xfs_rtbitmap.h diff --git a/fs/xfs/libxfs/xfs_bmap.c b/fs/xfs/libxfs/xfs_bmap.c index 617cc7e78e38..a47da8d3d1bc 100644 --- a/fs/xfs/libxfs/xfs_bmap.c +++ b/fs/xfs/libxfs/xfs_bmap.c @@ -21,7 +21,7 @@ #include "xfs_bmap.h" #include "xfs_bmap_util.h" #include "xfs_bmap_btree.h" -#include "xfs_rtalloc.h" +#include "xfs_rtbitmap.h" #include "xfs_errortag.h" #include "xfs_error.h" #include "xfs_quota.h" diff --git a/fs/xfs/libxfs/xfs_rtbitmap.c b/fs/xfs/libxfs/xfs_rtbitmap.c index 655108a4cd05..9eb1b5aa7e35 100644 --- a/fs/xfs/libxfs/xfs_rtbitmap.c +++ b/fs/xfs/libxfs/xfs_rtbitmap.c @@ -16,6 +16,7 @@ #include "xfs_trans.h" #include "xfs_rtalloc.h" #include "xfs_error.h" +#include "xfs_rtbitmap.h" /* * Realtime allocator bitmap functions shared with userspace. diff --git a/fs/xfs/libxfs/xfs_rtbitmap.h b/fs/xfs/libxfs/xfs_rtbitmap.h new file mode 100644 index 000000000000..546dea34bb37 --- /dev/null +++ b/fs/xfs/libxfs/xfs_rtbitmap.h @@ -0,0 +1,82 @@ +// SPDX-License-Identifier: GPL-2.0 +/* + * Copyright (c) 2000-2003,2005 Silicon Graphics, Inc. + * All Rights Reserved. + */ +#ifndef __XFS_RTBITMAP_H__ +#define __XFS_RTBITMAP_H__ + +/* + * XXX: Most of the realtime allocation functions deal in units of realtime + * extents, not realtime blocks. This looks funny when paired with the type + * name and screams for a larger cleanup. + */ +struct xfs_rtalloc_rec { + xfs_rtblock_t ar_startext; + xfs_rtblock_t ar_extcount; +}; + +typedef int (*xfs_rtalloc_query_range_fn)( + struct xfs_mount *mp, + struct xfs_trans *tp, + const struct xfs_rtalloc_rec *rec, + void *priv); + +#ifdef CONFIG_XFS_RT +int xfs_rtbuf_get(struct xfs_mount *mp, struct xfs_trans *tp, + xfs_rtblock_t block, int issum, struct xfs_buf **bpp); +int xfs_rtcheck_range(struct xfs_mount *mp, struct xfs_trans *tp, + xfs_rtblock_t start, xfs_extlen_t len, int val, + xfs_rtblock_t *new, int *stat); +int xfs_rtfind_back(struct xfs_mount *mp, struct xfs_trans *tp, + xfs_rtblock_t start, xfs_rtblock_t limit, + xfs_rtblock_t *rtblock); +int xfs_rtfind_forw(struct xfs_mount *mp, struct xfs_trans *tp, + xfs_rtblock_t start, xfs_rtblock_t limit, + xfs_rtblock_t *rtblock); +int xfs_rtmodify_range(struct xfs_mount *mp, struct xfs_trans *tp, + xfs_rtblock_t start, xfs_extlen_t len, int val); +int xfs_rtmodify_summary_int(struct xfs_mount *mp, struct xfs_trans *tp, + int log, xfs_rtblock_t bbno, int delta, + struct xfs_buf **rbpp, xfs_fsblock_t *rsb, + xfs_suminfo_t *sum); +int xfs_rtmodify_summary(struct xfs_mount *mp, struct xfs_trans *tp, int log, + xfs_rtblock_t bbno, int delta, struct xfs_buf **rbpp, + xfs_fsblock_t *rsb); +int xfs_rtfree_range(struct xfs_mount *mp, struct xfs_trans *tp, + xfs_rtblock_t start, xfs_extlen_t len, + struct xfs_buf **rbpp, xfs_fsblock_t *rsb); +int xfs_rtalloc_query_range(struct xfs_mount *mp, struct xfs_trans *tp, + const struct xfs_rtalloc_rec *low_rec, + const struct xfs_rtalloc_rec *high_rec, + xfs_rtalloc_query_range_fn fn, void *priv); +int xfs_rtalloc_query_all(struct xfs_mount *mp, struct xfs_trans *tp, + xfs_rtalloc_query_range_fn fn, + void *priv); +bool xfs_verify_rtbno(struct xfs_mount *mp, xfs_rtblock_t rtbno); +int xfs_rtalloc_extent_is_free(struct xfs_mount *mp, struct xfs_trans *tp, + xfs_rtblock_t start, xfs_extlen_t len, + bool *is_free); +/* + * Free an extent in the realtime subvolume. Length is expressed in + * realtime extents, as is the block number. + */ +int /* error */ +xfs_rtfree_extent( + struct xfs_trans *tp, /* transaction pointer */ + xfs_rtblock_t bno, /* starting block number to free */ + xfs_extlen_t len); /* length of extent freed */ + +/* Same as above, but in units of rt blocks. */ +int xfs_rtfree_blocks(struct xfs_trans *tp, xfs_fsblock_t rtbno, + xfs_filblks_t rtlen); +#else /* CONFIG_XFS_RT */ +# define xfs_rtfree_extent(t,b,l) (-ENOSYS) +# define xfs_rtfree_blocks(t,rb,rl) (-ENOSYS) +# define xfs_rtalloc_query_range(m,t,l,h,f,p) (-ENOSYS) +# define xfs_rtalloc_query_all(m,t,f,p) (-ENOSYS) +# define xfs_rtbuf_get(m,t,b,i,p) (-ENOSYS) +# define xfs_rtalloc_extent_is_free(m,t,s,l,i) (-ENOSYS) +#endif /* CONFIG_XFS_RT */ + +#endif /* __XFS_RTBITMAP_H__ */ diff --git a/fs/xfs/scrub/fscounters.c b/fs/xfs/scrub/fscounters.c index 05be757668bb..5799e9a94f1f 100644 --- a/fs/xfs/scrub/fscounters.c +++ b/fs/xfs/scrub/fscounters.c @@ -16,7 +16,7 @@ #include "xfs_health.h" #include "xfs_btree.h" #include "xfs_ag.h" -#include "xfs_rtalloc.h" +#include "xfs_rtbitmap.h" #include "xfs_inode.h" #include "xfs_icache.h" #include "scrub/scrub.h" diff --git a/fs/xfs/scrub/rtbitmap.c b/fs/xfs/scrub/rtbitmap.c index 008ddb599e13..2e5fd52f7af3 100644 --- a/fs/xfs/scrub/rtbitmap.c +++ b/fs/xfs/scrub/rtbitmap.c @@ -11,7 +11,7 @@ #include "xfs_mount.h" #include "xfs_log_format.h" #include "xfs_trans.h" -#include "xfs_rtalloc.h" +#include "xfs_rtbitmap.h" #include "xfs_inode.h" #include "xfs_bmap.h" #include "scrub/scrub.h" diff --git a/fs/xfs/scrub/rtsummary.c b/fs/xfs/scrub/rtsummary.c index 437ed9acbb27..f4635a920470 100644 --- a/fs/xfs/scrub/rtsummary.c +++ b/fs/xfs/scrub/rtsummary.c @@ -13,7 +13,7 @@ #include "xfs_inode.h" #include "xfs_log_format.h" #include "xfs_trans.h" -#include "xfs_rtalloc.h" +#include "xfs_rtbitmap.h" #include "xfs_bit.h" #include "xfs_bmap.h" #include "scrub/scrub.h" diff --git a/fs/xfs/xfs_fsmap.c b/fs/xfs/xfs_fsmap.c index 736e5545f584..8982c5d6cbd0 100644 --- a/fs/xfs/xfs_fsmap.c +++ b/fs/xfs/xfs_fsmap.c @@ -23,7 +23,7 @@ #include "xfs_refcount.h" #include "xfs_refcount_btree.h" #include "xfs_alloc_btree.h" -#include "xfs_rtalloc.h" +#include "xfs_rtbitmap.h" #include "xfs_ag.h" /* Convert an xfs_fsmap to an fsmap. */ diff --git a/fs/xfs/xfs_rtalloc.c b/fs/xfs/xfs_rtalloc.c index 0e4e2df08aed..f2eb0c8b595d 100644 --- a/fs/xfs/xfs_rtalloc.c +++ b/fs/xfs/xfs_rtalloc.c @@ -19,6 +19,7 @@ #include "xfs_icache.h" #include "xfs_rtalloc.h" #include "xfs_sb.h" +#include "xfs_rtbitmap.h" /* * Read and return the summary information for a given extent size, diff --git a/fs/xfs/xfs_rtalloc.h b/fs/xfs/xfs_rtalloc.h index 65c284e9d33e..11859c259a1c 100644 --- a/fs/xfs/xfs_rtalloc.h +++ b/fs/xfs/xfs_rtalloc.h @@ -11,22 +11,6 @@ struct xfs_mount; struct xfs_trans; -/* - * XXX: Most of the realtime allocation functions deal in units of realtime - * extents, not realtime blocks. This looks funny when paired with the type - * name and screams for a larger cleanup. - */ -struct xfs_rtalloc_rec { - xfs_rtblock_t ar_startext; - xfs_rtblock_t ar_extcount; -}; - -typedef int (*xfs_rtalloc_query_range_fn)( - struct xfs_mount *mp, - struct xfs_trans *tp, - const struct xfs_rtalloc_rec *rec, - void *priv); - #ifdef CONFIG_XFS_RT /* * Function prototypes for exported functions. @@ -48,19 +32,6 @@ xfs_rtallocate_extent( xfs_extlen_t prod, /* extent product factor */ xfs_rtblock_t *rtblock); /* out: start block allocated */ -/* - * Free an extent in the realtime subvolume. Length is expressed in - * realtime extents, as is the block number. - */ -int /* error */ -xfs_rtfree_extent( - struct xfs_trans *tp, /* transaction pointer */ - xfs_rtblock_t bno, /* starting block number to free */ - xfs_extlen_t len); /* length of extent freed */ - -/* Same as above, but in units of rt blocks. */ -int xfs_rtfree_blocks(struct xfs_trans *tp, xfs_fsblock_t rtbno, - xfs_filblks_t rtlen); /* * Initialize realtime fields in the mount structure. @@ -102,55 +73,11 @@ xfs_growfs_rt( struct xfs_mount *mp, /* file system mount structure */ xfs_growfs_rt_t *in); /* user supplied growfs struct */ -/* - * From xfs_rtbitmap.c - */ -int xfs_rtbuf_get(struct xfs_mount *mp, struct xfs_trans *tp, - xfs_rtblock_t block, int issum, struct xfs_buf **bpp); -int xfs_rtcheck_range(struct xfs_mount *mp, struct xfs_trans *tp, - xfs_rtblock_t start, xfs_extlen_t len, int val, - xfs_rtblock_t *new, int *stat); -int xfs_rtfind_back(struct xfs_mount *mp, struct xfs_trans *tp, - xfs_rtblock_t start, xfs_rtblock_t limit, - xfs_rtblock_t *rtblock); -int xfs_rtfind_forw(struct xfs_mount *mp, struct xfs_trans *tp, - xfs_rtblock_t start, xfs_rtblock_t limit, - xfs_rtblock_t *rtblock); -int xfs_rtmodify_range(struct xfs_mount *mp, struct xfs_trans *tp, - xfs_rtblock_t start, xfs_extlen_t len, int val); -int xfs_rtmodify_summary_int(struct xfs_mount *mp, struct xfs_trans *tp, - int log, xfs_rtblock_t bbno, int delta, - struct xfs_buf **rbpp, xfs_fsblock_t *rsb, - xfs_suminfo_t *sum); -int xfs_rtmodify_summary(struct xfs_mount *mp, struct xfs_trans *tp, int log, - xfs_rtblock_t bbno, int delta, struct xfs_buf **rbpp, - xfs_fsblock_t *rsb); -int xfs_rtfree_range(struct xfs_mount *mp, struct xfs_trans *tp, - xfs_rtblock_t start, xfs_extlen_t len, - struct xfs_buf **rbpp, xfs_fsblock_t *rsb); -int xfs_rtalloc_query_range(struct xfs_mount *mp, struct xfs_trans *tp, - const struct xfs_rtalloc_rec *low_rec, - const struct xfs_rtalloc_rec *high_rec, - xfs_rtalloc_query_range_fn fn, void *priv); -int xfs_rtalloc_query_all(struct xfs_mount *mp, struct xfs_trans *tp, - xfs_rtalloc_query_range_fn fn, - void *priv); -bool xfs_verify_rtbno(struct xfs_mount *mp, xfs_rtblock_t rtbno); -int xfs_rtalloc_extent_is_free(struct xfs_mount *mp, struct xfs_trans *tp, - xfs_rtblock_t start, xfs_extlen_t len, - bool *is_free); int xfs_rtalloc_reinit_frextents(struct xfs_mount *mp); #else # define xfs_rtallocate_extent(t,b,min,max,l,f,p,rb) (-ENOSYS) -# define xfs_rtfree_extent(t,b,l) (-ENOSYS) -# define xfs_rtfree_blocks(t,rb,rl) (-ENOSYS) # define xfs_rtpick_extent(m,t,l,rb) (-ENOSYS) # define xfs_growfs_rt(mp,in) (-ENOSYS) -# define xfs_rtalloc_query_range(m,t,l,h,f,p) (-ENOSYS) -# define xfs_rtalloc_query_all(m,t,f,p) (-ENOSYS) -# define xfs_rtbuf_get(m,t,b,i,p) (-ENOSYS) -# define xfs_verify_rtbno(m, r) (false) -# define xfs_rtalloc_extent_is_free(m,t,s,l,i) (-ENOSYS) # define xfs_rtalloc_reinit_frextents(m) (0) static inline int /* error */ xfs_rtmount_init( From patchwork Mon Mar 25 22:07:02 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Catherine Hoang X-Patchwork-Id: 13603061 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.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 D66AA71739 for ; Mon, 25 Mar 2024 22:07:41 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=205.220.165.32 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711404463; cv=fail; b=VY9fm9DHNHSahEFBbsI5uJMjiZliYs/PhtDDIKBiSXxwMUMdbt9VaEQz+MFYOGjODUAJRPwCEJSWrS5OL6Gnxo2CFoqQWzfprC2i0O8fPNQUu6DbrxHhkvIvDqM4fEzX0keqJribmhbXJe6w2R1WOJgD4otFbSCvZSws2kr7DLk= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711404463; c=relaxed/simple; bh=/5qo+VfbWAXee5/QDwqbH5Xinqv1lh2Sw73o9/MTn+8=; h=From:To:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=shPH0uwcxEJx9pty75BhCwoyRiDzr7Wlm/yM1jSNCye74Px6XCU67f3Leb/oSckJQ5Zmmpq2xy7+ZN+/pVBXejQ1zBQrL3p1ixq8yQDyhI2I2yv/jdpoG/DXtiVX8TVbW/Ur1mAMg4VMzdGTRtTQoG/242Tvzzyng5KAkEWy4bk= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none 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=RoG2rEbm; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=Hzw08SO8; arc=fail smtp.client-ip=205.220.165.32 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none 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="RoG2rEbm"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="Hzw08SO8" Received: from pps.filterd (m0246617.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 42PLFtoF012366 for ; Mon, 25 Mar 2024 22:07:41 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : subject : date : message-id : in-reply-to : references : content-transfer-encoding : content-type : mime-version; s=corp-2023-11-20; bh=iBJZ8md6C22QZxlOAS2xsu7E1bKOMxjg6SgEc8VEc6Q=; b=RoG2rEbm5ZcC9GF0P0ih0lNMf2Dq7GiF4f/fqIG8Q7dccAjOQ2N7Yo+U8kWVwlglsQlj G0VsPEHAQmPPMmNgBcoGqFOgPo87J783fxXqnKRra1PWRxPnkp/c+etdYAn3tM9/V+FF Mr0tydrilm8lIB7cbcTVSSsHlzQKljgQH4QEHGXXjTRvztzgCDC4dXlBcMyPqpR3a3fU koHC1ZFVRbpLyGgnlZN6qTmmcbOufcWkvrOsvapWvslJfxDu8xOigV1mcxVxA1Sz6b8h eXT+gLQ1P+jOEmAPeuHxWQfMjt3mM4DaT8bGQbXpxjKXGGT9b6bYRs6qnVAbVWQh4ZY3 Xw== Received: from phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta02.appoci.oracle.com [147.154.114.232]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3x2s9gt7dw-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Mon, 25 Mar 2024 22:07:40 +0000 Received: from pps.filterd (phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (8.17.1.19/8.17.1.19) with ESMTP id 42PKCkLI024462 for ; Mon, 25 Mar 2024 22:07:40 GMT Received: from bn1pr04cu002.outbound.protection.outlook.com (mail-eastus2azlp17012018.outbound.protection.outlook.com [40.93.12.18]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 3x1nh6cce9-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Mon, 25 Mar 2024 22:07:40 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=eqKf6DAbUrj8UnajAeG0JKUyUA10wVW0m2Zbmz4qcT0c3+WUOI3lgXz3VGap5d3MnQaJWAVhzlEo39nzt/AgLo1VCLgkvXTnQ/qltaAHTDYzKGL4Jvku8So3Fp8ILbh3hXyoFRFubtqeSrdFGaPKCUlxjBiNhC7CZl489DY1UHWy6CUwn+0ZR5hlCHHBJoGy779Bq/MrIpcruXvc9OTHAiBrW/gkzwaeDKl1Ca6PmSDf9YJjm5CBr0RfyhptReeLDwT9dlHoxItftfLYRNARqY7iIXemOb+LLmd0oaiYHJpDR2VJbFt3LrpmIk8msW2OUx/heUjeD20DqpoJy7XRKg== 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=iBJZ8md6C22QZxlOAS2xsu7E1bKOMxjg6SgEc8VEc6Q=; b=KHmHw6j2oR3lQ9FGHWsbuovNDqocrXep+QJTh0C4b+CAX+YtjE1kcNdCPLNRGPr3HaxRi9Q0z0RqfJjgbpjtlopdO1NxDuuHXQG79HYcqVBfo4CKsaa+Qj+EO8ZGY+d6AblLhdgelOTeqq6JBpTeKfhQYDrq0JRvFTKp3NPE4JWcZvhIEtPcEUQ1a+bMxz+SaCeAto8YGRS9ipAMXjgUMB/YAJyQl6BhTbudpR8NsVTn9pszPzW4ZMwvkJgDqnoAuZdlS7Rsp6uuz4AWRWCxQqN7HEs3pDAVZepXqs4VryZ9kYEI+p7nnbNFoB1poRRuUcHJ5HyswCpYBkuZosKVTA== 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=iBJZ8md6C22QZxlOAS2xsu7E1bKOMxjg6SgEc8VEc6Q=; b=Hzw08SO8fCufhFPyfU5ArbATESzWEkAn7ITY9EVlA9p3RCuMvI82VBEbSgIFWYctc356wJcEZNGcAegeW7KHAvbVHsFX/f/sLnw+HEH1nYfjL6GcaVZMsDG88yGEoBMqMsJ3zDsifMZKGEm4wmyUv0VsR6+6JlJH+nGrBZKHjXY= Received: from BLAPR10MB5316.namprd10.prod.outlook.com (2603:10b6:208:326::6) by DM4PR10MB7476.namprd10.prod.outlook.com (2603:10b6:8:17d::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7409.31; Mon, 25 Mar 2024 22:07:38 +0000 Received: from BLAPR10MB5316.namprd10.prod.outlook.com ([fe80::404e:f2ff:fe2c:bd7a]) by BLAPR10MB5316.namprd10.prod.outlook.com ([fe80::404e:f2ff:fe2c:bd7a%4]) with mapi id 15.20.7409.031; Mon, 25 Mar 2024 22:07:38 +0000 From: Catherine Hoang To: linux-xfs@vger.kernel.org Subject: [PATCH 6.6 CANDIDATE 02/24] xfs: convert rt bitmap extent lengths to xfs_rtbxlen_t Date: Mon, 25 Mar 2024 15:07:02 -0700 Message-Id: <20240325220724.42216-3-catherine.hoang@oracle.com> X-Mailer: git-send-email 2.39.2 (Apple Git-143) In-Reply-To: <20240325220724.42216-1-catherine.hoang@oracle.com> References: <20240325220724.42216-1-catherine.hoang@oracle.com> X-ClientProxiedBy: SJ0PR13CA0023.namprd13.prod.outlook.com (2603:10b6:a03:2c0::28) To BLAPR10MB5316.namprd10.prod.outlook.com (2603:10b6:208:326::6) 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: BLAPR10MB5316:EE_|DM4PR10MB7476:EE_ X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: GdXoh5hTrTmUeCTqvZoifkh1PGNv521v+J8WVOpKec0im/ubMZ7oiFrFUo1YJyMTTASGG2cLtpS8HFWdtaDPe18M3TRFEJnKH/UHEWj1drCyqo57Hy5KtNVIqh02mbHc7RgXCb+ZGo0wrKYYH3o1NU22hSWFUFDhIsleGz/lsLwXycy6u98ErkmprkTsyA/3KYZXwMrfZ5wZm3rUtxtHFtjveOw1E3uKS+oDokLAWPKHQMDvb1/wNlRwezRZUrRDSCHSjbJgrcKGqZ/raNsW6MmZrGoshLGlLP9nV7E456KxDN9J55gkI7PzjiKkLhm2yONouBWZmF51QAU30oRz4O4uirGipwaUU3wvcWy0gHu70GsXl7Gp7pfeFcSgUeLmOyAuJzP5B4PQ8Tl0C7WQw51DbReuGlLh7vQGBB0+OBaL4us6pt7/UEhtbfUJaQV1doXsrg+HMvMwSoPinqyTb4MMPV7B3zu3XVpcOSmshvYpBvTvKY2u3R76nBCvxiw55IxTdXZKIrOwyvvNqLLUGqr+Ke/SrOU1TtpEr5EQRuRJmJ6CdmIuWQWlN5tUWI7qDenSBsz4LtjvSF/NluKeks+ZU7ANd8jjA7LjK2rGO4oXFujJbOmMGpE5TzdSkT+CYZhiPIv3GiKEEXJfO0Y2ncGvxr/o/mnLkuPPnMakEJ8= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BLAPR10MB5316.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(366007)(1800799015)(376005);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: MMpVMGWge2IvHhkk1zi3k4P3HYjkrq2WWDXGhFe7zctZUJCWRkf0YZdGHuQcoHYGEg90KFu6tCOo+5p6RGsQBWWpnysQGZsmfJcjRoRuqR7c1WAEZA+N77ROHBOfSruNFMCdQS4V6+tOBuTy9jX2GSkpWV/xfIPp0LpXH4RuaohD6bmh1MPiTR1yrVQXD1SS7XZHUThcH5zHz0BtF8BhlG6X5vy03MQxmRrMI0HoTQ5ANSHM8KxnKNSLvq1MKRaEcCkwuyKswaY0XMqdRU9QIRRZ1CSXEUbe3iN8oKdtAeVW6Fx+fwwrNnINmod9DVxtD2efZ00PYBnuvxJKvELvMi/M3q9TvROwX9Lh3iPjusqC6ZU1N0xoYhtCjOeoewjM/0ZcBMpuy9fvamF+ajpte8kVLeRbj19GE1FJaNPtTGc7c2FtemG7wosixIWn8vt455DKr4u+WWqrp2qUcyL+iJZJx9AdFMDe111o7YM2V7YvYXbvBy4P7VsN9grqfqGix1W+3OOZQAkxVumjSisDFcAt6zTyZyRqvXmSLQbZEDpvQk/u5qpQi3N73Kl2gC+OK9DhWUwH/pV43okcQ2WMhhxFbXBtz3+e5E6gty/FDYsjEZGFqHHTM8OYklF57xV2jrlz+PndgmIGX/WrKlyxJAyVDTt/L6M3X86wnHq3AyoOAqe3Za2PTVIeMCGRM3G/XTZALuOfdcIYT/3bBTRYF45/TaLim2Gy4vnZuxyQuVo2i0zhQcQqB2KumBS+wggNk8eoHB6EoMkwZc1KxhP03xs3f6AaS5XZy6ChPy8LUx33m630dleDPdsXY5IQccFdELY83czle6vmPMaucYmAcr8ILrGFBR/A1qPZg9fnROK/K1o8tiY2cO+afdKj3/j2glt1zaLa8o31PfgwIIlPigSOobctF5P9HY8n+Zh8U9yIvL9hLLMQbwMA1jYUdVepAJoqe21DZqIbBbeUG4BX4mXh+VhUAahQM/E3x37+UnPvjk6pHNEQkiqIVWDmTO7RePNfBkAFUFNKO0qHtYrwFTUi7o8GOwbcIMspaPoQjuLUkZxU+x5Uz+bOEVbW9rxRAFlatc6/vMAt5tXyvy1QK+23eUFvH4UcSPrx/6em5J0Qart/SAtrNjrZ/aQtX5IF5JJosnIueD68Yuv4CHJb8XIS823ZVOPy/kt7gVmsI/UpYo4cmbsQmp+J93j1w6SwUNYACFsw9KgzO63gCdz70NVSVPV9AJ04euWB4abAaCt90FF3ecJBj6yLpN2wJDvKquTUvA9sRNtammds58DgoPkuoy9DnsqFe9Y6NJczPDgn3snAt/BB0J4YFgKIUAV5/A9RullyEftizkJAPv+JM/8pZxEXXkH3EalPuZALC61APUhLcgpkqplPiQy88XO/ULRaReVnkQ/kAgYiEClFpDGhdzt8WCYoBhsPR4O4dL3mQD1xNQv0FCuU8PGzmI3YDJO3yaG6UTzi9kt6yjjJRH28YbrQmXtvxLV0QG+cJeWKaAg+OrEn+yibBqdHr63Evx3Mt/Pio6tD8VesV3iZLXmBxaINmwC86bl80JhPrfz4+j0EjvLeFLd4TVpW4dFcOO0/OYwBpZRFhowL0hrpBi4k9RP6osB/xEW88wYvHB3r3zasE+aa0syqk7ZUZE4TbhRvo4EovryPXD/qQhDnwA== X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: S3SBgRRFbFSDYnxxP9LEk8/uH6vDlTvvueQpLYrU42LuvR/oDnelaAs5HQIGT+XTL35Oo6YmIlGEKKY4QTYT8lQE33Iugo8pJpEb+asxRiedkj1ntdtTUx08J4vSvXQbRGbRxKE2+avC9VZnYyyoIVHYxNIAvvq1rFGOXL6qNT/TvtVpYTrwAtSZvpASDAGcZKzYDraN8LHByz6TkPDSzDD4k2Lc+zcE++PeTa/ZErTahdiM3A50TOrwr6MygzWgkVPeIea0AoeAbf6rVFpHpEYy6dBvVjbJ5MhIYTi7EXhZWycBXtMkUIbFzDa0G3QTtCOHEoP2MkHUaV6eVCQtSoKpEl6UyUWxGOgoUNgwgaEIndup7um835CVoK+i1VJx2xksijN5e5ROJIJCrS6gb9XdQIZl/B3SdYBTYVFqkvd5mFQTxqyive65k23k7pQjZgkDm+9FBOB+P5u09CTMFxO4xg761h/x5UJRLzLocjWf1mbht8tiQ9CnkgHqmRYtwbTMbwTnHVKOTmatHqsq24COTcipZRtY0Cx/86A2BStxz2efiOcYbD0sYSu2ybfqi12ni1tJ/xr9YWIEnjgNLxl4d3q42KW8QGq6Pc55pNY= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: f6faf5ba-ffb5-4070-0681-08dc4d17fb7b X-MS-Exchange-CrossTenant-AuthSource: BLAPR10MB5316.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 Mar 2024 22:07:37.9765 (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: Y3Y21KiQWP495pj/FyYVrTceIOokItQX8NVRVi1Fvq3qdlnaE7GNzYQi2ApUuA9iwDMa8qiv75+/usWuKdbEZbEjQbuiOQ0qQqt1UqvyeCc= X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR10MB7476 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.272,Aquarius:18.0.1011,Hydra:6.0.619,FMLib:17.11.176.26 definitions=2024-03-25_21,2024-03-21_02,2023-05-22_02 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 phishscore=0 malwarescore=0 suspectscore=0 mlxlogscore=999 mlxscore=0 adultscore=0 spamscore=0 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2403210000 definitions=main-2403250137 X-Proofpoint-GUID: 6wTWOURHPOt1wVh2y07rgChgePhGiFCh X-Proofpoint-ORIG-GUID: 6wTWOURHPOt1wVh2y07rgChgePhGiFCh From: "Darrick J. Wong" commit f29c3e745dc253bf9d9d06ddc36af1a534ba1dd0 upstream. XFS uses xfs_rtblock_t for many different uses, which makes it much more difficult to perform a unit analysis on the codebase. One of these (ab)uses is when we need to store the length of a free space extent as stored in the realtime bitmap. Because there can be up to 2^64 realtime extents in a filesystem, we need a new type that is larger than xfs_rtxlen_t for callers that are querying the bitmap directly. This means scrub and growfs. Create this type as "xfs_rtbxlen_t" and use it to store 64-bit rtx lengths. 'b' stands for 'bitmap' or 'big'; reader's choice. Signed-off-by: Darrick J. Wong Reviewed-by: Christoph Hellwig Signed-off-by: Catherine Hoang --- fs/xfs/libxfs/xfs_format.h | 2 +- fs/xfs/libxfs/xfs_rtbitmap.h | 2 +- fs/xfs/libxfs/xfs_types.h | 1 + fs/xfs/scrub/trace.h | 3 ++- 4 files changed, 5 insertions(+), 3 deletions(-) diff --git a/fs/xfs/libxfs/xfs_format.h b/fs/xfs/libxfs/xfs_format.h index 371dc07233e0..20acb8573d7a 100644 --- a/fs/xfs/libxfs/xfs_format.h +++ b/fs/xfs/libxfs/xfs_format.h @@ -98,7 +98,7 @@ typedef struct xfs_sb { uint32_t sb_blocksize; /* logical block size, bytes */ xfs_rfsblock_t sb_dblocks; /* number of data blocks */ xfs_rfsblock_t sb_rblocks; /* number of realtime blocks */ - xfs_rtblock_t sb_rextents; /* number of realtime extents */ + xfs_rtbxlen_t sb_rextents; /* number of realtime extents */ uuid_t sb_uuid; /* user-visible file system unique id */ xfs_fsblock_t sb_logstart; /* starting block of log if internal */ xfs_ino_t sb_rootino; /* root inode number */ diff --git a/fs/xfs/libxfs/xfs_rtbitmap.h b/fs/xfs/libxfs/xfs_rtbitmap.h index 546dea34bb37..c3ef22e67aa3 100644 --- a/fs/xfs/libxfs/xfs_rtbitmap.h +++ b/fs/xfs/libxfs/xfs_rtbitmap.h @@ -13,7 +13,7 @@ */ struct xfs_rtalloc_rec { xfs_rtblock_t ar_startext; - xfs_rtblock_t ar_extcount; + xfs_rtbxlen_t ar_extcount; }; typedef int (*xfs_rtalloc_query_range_fn)( diff --git a/fs/xfs/libxfs/xfs_types.h b/fs/xfs/libxfs/xfs_types.h index 851220021484..6b1a2e923360 100644 --- a/fs/xfs/libxfs/xfs_types.h +++ b/fs/xfs/libxfs/xfs_types.h @@ -31,6 +31,7 @@ typedef uint64_t xfs_rfsblock_t; /* blockno in filesystem (raw) */ typedef uint64_t xfs_rtblock_t; /* extent (block) in realtime area */ typedef uint64_t xfs_fileoff_t; /* block number in a file */ typedef uint64_t xfs_filblks_t; /* number of blocks in a file */ +typedef uint64_t xfs_rtbxlen_t; /* rtbitmap extent length in rtextents */ typedef int64_t xfs_srtblock_t; /* signed version of xfs_rtblock_t */ diff --git a/fs/xfs/scrub/trace.h b/fs/xfs/scrub/trace.h index cbd4d01e253c..df49ca2e8c23 100644 --- a/fs/xfs/scrub/trace.h +++ b/fs/xfs/scrub/trace.h @@ -1037,7 +1037,8 @@ TRACE_EVENT(xfarray_sort_stats, #ifdef CONFIG_XFS_RT TRACE_EVENT(xchk_rtsum_record_free, TP_PROTO(struct xfs_mount *mp, xfs_rtblock_t start, - uint64_t len, unsigned int log, loff_t pos, xfs_suminfo_t v), + xfs_rtbxlen_t len, unsigned int log, loff_t pos, + xfs_suminfo_t v), TP_ARGS(mp, start, len, log, pos, v), TP_STRUCT__entry( __field(dev_t, dev) From patchwork Mon Mar 25 22:07:03 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Catherine Hoang X-Patchwork-Id: 13603062 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.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 DD0487175F for ; Mon, 25 Mar 2024 22:07:43 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=205.220.165.32 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711404465; cv=fail; b=XIh2LaYn93Q6m/CEXxjZP5pZxJ6ig3sSyDVC3ZOX/Ug6F6//miqVs8iI6swmzz7DqlHM7iqBMVkcHMzzvlKEGraGOqw9OSQiosvMrdyxH1lViCO0DUdcV6BqvIFXt1YIPRfQcdqpCxS8wqYfmAVqwWjkJHLzlSyPA2B0FrHRxg4= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711404465; c=relaxed/simple; bh=DABseXzTzi3gKfGJRuy8CPBfhSwuhGQtrf/9Ag16wrE=; h=From:To:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=CGYRJf4O6dqjQG+4CKC4dmreW3tNiQHWjWZOXBkPcy8stqNLJBYVoigBNEAMhlMUI8YjxECKPnpe+MmIu1Uroq1Xiajz0rHytJx8JQQV5mLQQ/DX1VGbeSXIvJfjSZYUb90T1fZJv7A/DefnxL0S/TCVcz/KxWkNHyRRD8Md59Y= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none 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=lZ+pPDEn; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=YLWsd6Sj; arc=fail smtp.client-ip=205.220.165.32 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none 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="lZ+pPDEn"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="YLWsd6Sj" Received: from pps.filterd (m0246629.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 42PLFuX6027157 for ; Mon, 25 Mar 2024 22:07:43 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : subject : date : message-id : in-reply-to : references : content-transfer-encoding : content-type : mime-version; s=corp-2023-11-20; bh=MLEzSTX1mIEoCexCxoxLbecaFSizWrv3TRED2zmoxIw=; b=lZ+pPDEn4lwbjF3DSWWt+bAwHg1X2CNBHtADxd1cjZA94Q5XIpwR2OM3ICdTZxs/mpMO ymAYIGXWprIZfpxZm7YbeBLPezfu2Dnm2MHkCNi9Ho8tXr0NPSqgZPEH2FyJ+S8drQ2z aA1gGpbIhdcRvjG56Eft7PH4NkNY+XvH7S4gZZZuAZPm9cyfrkUEbLS8WIZMa7zCg4tm oopNmj9dDT1dVWkO5eGNF3IdQqAiKjF1bvQGgYxARwjWN8a9lsBPK8h+RGg3B8tiuMIh 74UmmtX6QdLIOSShwstHw+I1WyNLugy2yYXwh4a1e8KKeINQm0vuroCb+6w+VgkKASv+ WQ== Received: from phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta02.appoci.oracle.com [147.154.114.232]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3x1pybkqhr-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Mon, 25 Mar 2024 22:07:42 +0000 Received: from pps.filterd (phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (8.17.1.19/8.17.1.19) with ESMTP id 42PK1P5m024439 for ; Mon, 25 Mar 2024 22:07:42 GMT Received: from bn1pr04cu002.outbound.protection.outlook.com (mail-eastus2azlp17012016.outbound.protection.outlook.com [40.93.12.16]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 3x1nh6ccff-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Mon, 25 Mar 2024 22:07:42 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Mo3dB8kUJRh3/OUucSrlALktpMiP1sQQquFmx9i+8i31/dwEEFC4oKh3SGqQY4iVNWCq0BuLQOfJZWhfKWvthU2rNdPo7EdgTqV5t1i4Cg6YVbe+EptlB43v38iIon4tIbCdi5KDmxR10N27JE4HRUvm3KQRFaNyy22xYx4sbzaU/jJ/5Qs6vSP0yRSldHUOodFTv7XavSKSghYWqm/fQY69QOt6SZqCV/bTsynZLjAFbxgr//wnYCspDmq2FKhRUT+gjMipcSwe/cUqy9nV6AEiiWlZuElx27lzBhdiC5PfPIztJNwfR7YnTbk13YSyVdW5/kH240sbi1E/CTHrjQ== 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=MLEzSTX1mIEoCexCxoxLbecaFSizWrv3TRED2zmoxIw=; b=T/U3jmeOQGHx25XEttZzkBvGJhzE9Wfz0zDVcwR3RJxW8q/FIjgLCao16xkn1t3ocjI5lwqB3pGZ2zD9KmZSBjszaXPvhKIEyelxwALe2mdOcYM5smwAwHhiekvP5QdNaFkBzrshXCauITzC6BrXP9xM+CwvUCyyeuLpcB4oeNs/QiFlqaGooIaK7Fp6A6I8zf3OdcAha4f9NKUrLP6+pDjpbMnrNjCduCXs0a12T9Zbnh8ve/6Y/uNzVsva+hpTD+DKWqhGhcEP8N2sklrh6/qK8vjeiRneLf4HKhR425vjepVq3l0JX/2KxA2xyaRzRiXTc6c1usYizsZg8gSzLA== 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=MLEzSTX1mIEoCexCxoxLbecaFSizWrv3TRED2zmoxIw=; b=YLWsd6SjxC2Vc45MHEk6Kw5sdw/19ESiHsT/IJhnzUD5qQpTZJNlBdgM70WSDa2WSqTXrvdYWtqgPtl4BYZUYYXtFrEt7qLAHwARuqiwdfd7A25o5r/9SXFgjYsjC59moYHjbnDs+9oPDFSi4bQ/o2frARr1H06mCIAgOtm5yGY= Received: from BLAPR10MB5316.namprd10.prod.outlook.com (2603:10b6:208:326::6) by DM4PR10MB7476.namprd10.prod.outlook.com (2603:10b6:8:17d::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7409.31; Mon, 25 Mar 2024 22:07:40 +0000 Received: from BLAPR10MB5316.namprd10.prod.outlook.com ([fe80::404e:f2ff:fe2c:bd7a]) by BLAPR10MB5316.namprd10.prod.outlook.com ([fe80::404e:f2ff:fe2c:bd7a%4]) with mapi id 15.20.7409.031; Mon, 25 Mar 2024 22:07:40 +0000 From: Catherine Hoang To: linux-xfs@vger.kernel.org Subject: [PATCH 6.6 CANDIDATE 03/24] xfs: consider minlen sized extents in xfs_rtallocate_extent_block Date: Mon, 25 Mar 2024 15:07:03 -0700 Message-Id: <20240325220724.42216-4-catherine.hoang@oracle.com> X-Mailer: git-send-email 2.39.2 (Apple Git-143) In-Reply-To: <20240325220724.42216-1-catherine.hoang@oracle.com> References: <20240325220724.42216-1-catherine.hoang@oracle.com> X-ClientProxiedBy: SJ0PR13CA0020.namprd13.prod.outlook.com (2603:10b6:a03:2c0::25) To BLAPR10MB5316.namprd10.prod.outlook.com (2603:10b6:208:326::6) 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: BLAPR10MB5316:EE_|DM4PR10MB7476:EE_ X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: xwZtiuJ0PELr69K0Zvug96JfpALejJhnTGRZFoCth27g741oQJO9pUfNKsgApHNhtsqV06SdGGh9ZIZmMAZ+kkPaEZfXYtlI8vvdqJ16R0JS+khjEbQ+675gT0bWLqtEzqpl8WIpBMRYotxc7prNU5bNuBes79Ua9kzdcy7L0rH9IQk4Eka5OJAgzgIZPS5SJJtFK6UJie1+OY3XUWW42NbpkMyg6ynCcjlLIxQ6hQe9Sbc3CWpP64gP9cr/4u7odWXscDlwxOOB/OO1isjgJ3sVSdSbqvAlm+rxHb62Cr1RkfmhlXDkkB8y/uPvneNwSQnmiWobVvzfCKy8Nv0+BURSv1TEut1ZPUQ8e2u1iaqnZ5PZhXRvuRZL09ZQcazsU0rAI3Oo1mK5knP0wViHW80cvY/bOlaBpAUP2LAzE/gJ276elzlT3ZUao6wVB4S00RtObGxYwzkEPZMmyCJjXH5cRmkNB67EVE4QEDqRVtSshYvDJ/AXGP0j2QcM3QzgM6HS1xtBK7S1yj7FkoOWKjHwXdHY7volZIpNdV8Ue13AgPcSl4FZt2y6LAieSC8h+6HcEwtIpBSZhWGngbKlsYXAnkEdpUAoqtGMI+J/AyhQPFDnoA2Zauey+Ja2npWJCMZGW8cLqDe0w4857hzIvv4P4WxdCadd4UmjrkW8mLk= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BLAPR10MB5316.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(366007)(1800799015)(376005);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: PjawynEXgyIkhI0TMsU0NMn4SaY+t/u+Ri65yLq5E9ZYHTd0BSwFiugCpA/kq5YwLkWM7tX21Xc4GnYPS7/MnOi0TvAhsF8InyavU+UQl2GKeVgTOnaPQOwpCF9SCcEyNsgvOOA1ilolhMdu6mafVEOMikA+JlVz09JAWcs62Zt/uveAJErLcfMowKcNkHZij/qNPk+Svp87T1XtSF5aLvwX7wetRNEb0TNi9QtTTlcWh+fb2MvuPE1sLpKqsybnU1Hl2vPWaH+MWKUgrJAzpI83DcOjDTX/1yP3XKyC2EaIXZXyTFKBSEbC+Y/3M8Yc2sVny7Q8krgQbMiNAZYkoAVFgAhUO5N0bzM89yZ3yCFUS2+KBf6LdUSMwBsX0ca1buF1pFED3kXfPM4tV+nLNeyBCl95rMmiFUAFeMi2EnFivZmK9FxpxE+gB+GhNaY4QglBPuVE68MtxSyuukaPmRqKIKTaDBrWFWjDAhK0wXQ6qMe/LQRxrjWxjGETHYG3RVU7HK732ivqDsVog8BLQoNLwzNynhRWO12hwzjid2PlaZ6vm7wgwtXLA3LV+ArHxHYpR8XD6cfzmWaAaSpUBjdM3AfOVQ7JNi1y3ruTuQdji4cKIcWWiL8wJGQd0c7+A3UPlB8Adndw6YSniCJaYh86/XjdW/WhgvPhnWKJswYz2XMiQ4G6Tx4OTBzeG7TfMM9/uITDEZTeUFYnBOYtfFTgxkaxl4EfYrHFnYYsoQVJQrL2z4VXRHV9faBhhIOoVFefP8vZkovfqrxp4jcFRM+lPOKgjQ0h1p/yE12/THgE4QtHhbWTqWkawHWuRbas0c6ka9EmbvwhAJGmcR0IeU8keoXK4MF9Lj0hCZ1KgPP5KepoSvRA0YYkvS04cqp+jFUcsxlvTz8AwHIvja0Kcfgi63qnnvVkgBiHfDBItNOLjPZHmQ/WifbteNlw8+sQxChc1X9hmPtK/OHFWdITjufj+PqPu9wFn6KjVIqp9suDK8xTRPykLaYuOu1TXPGujUhVp59KavjFnR4Mv0uUWEUNJw4j5/6wWKWrsMSW/erPtcE0KKfh1GW0K++v4MXnRHgxRBiphK5ld2LHoolERHwJrapb8T9s0C4OhMuWrnZcV+Sb+RrkwnD8yvCM9atS+S9wqz6msDyaTSaj+ydz96qHb81B5GxEYgYCHbIiRBybwVkvPP7Xo83LfbMWbc5cad9mel1uGO5ADv/e2ID0xkraNsTHwqWBD8PH/h18jdx529/6JljM90uFR4/Cr+SA4Ga76ZsXGiVePH6rUhRUf670aSrKlcRwhlgvFFyi929Ip2vm+qds5rnTRoWn6Pn+/bkJ3SkJUEHS0J99i+mUBBMVEPu7BnhQkEmPmfgcwHqF0/dFj3A2fuPcaUf07+oE98wKPS93WVNINsuw1XPP337zN33DCMRuXalCZHbMp7oY/ghA4405aelkjOYUi5tkd+1338AFYcxn1LoD03y/kbD0DYxMvKsLSp1Tb/XwNwDYNr+iDd5XMM45IPsRr1EpUPbt1Lw1w57LIDDLkcNNX4zHnW259tm19H+OjwfGo4gc0SPxJbOizsim5JXJev6qX2/x4oMreMUVOmChVoOGP8cg1Xzz0ybWpb7EFMjBvzUs4K9yDmyRlrVjKSv1LUB2CnlIfqRPuFkzL8Fe2kujow== X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: cGgX6TuEqpK7E1OUzAAtkuLDQYDUnZ3zX1ZYKnOU+hnEeNyiz0Orq09YN9KfPyE6KnbvIYRpH2Mn9yPzUsV5A70seEDacpP21H24OGMgHJYmgpKB6wmdxvZ1F2V/wxSwb+E7WQRanmoatMojnX25MvItmvnWZ90hDCtkU6NWY2XO98Vp5PPBqmOBncZsSFthGIypqb5KR7E0wp1Echj0DVGqWVRZbq6lSGDspyIOIPDz4shWS1Zr6b2dj0SKe+tJbnWZmG5VupHMKJ275JvgbtyLSgROdadMxdawb4HJ+U7R9BE68s+ISnS2aMqjDPVq0heUXaJZz6rKsvfOWCpPMMC1n2dCRn6HE2pimQHe4L3vg/rLdF/f+YJNh8uwXnDnRx72kOeMM7EXCUVdBxauST3sTACVAio/YiA8xiyEag1ANpPdN3OTIguyShgCPhb4z6vSod3TtULJHbyTO/NM2G6KmyEg0Wt3x8qkd895D5SCctneGBsDDvVvjCrkmCEnGyOIOumvUG/4D+wYsPSJoTifaGZlFDH4clTDJx8526hPvL+nCZwnvkTtccCzKetaLxJgwxpkqUpIVWLSFnWhief10CgkXnUnyL0dsW0l4C0= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 67cc4fec-f665-4039-3a69-08dc4d17fc9d X-MS-Exchange-CrossTenant-AuthSource: BLAPR10MB5316.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 Mar 2024 22:07:40.3150 (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: +fdmSmcraJ1AZ68v4Eyws+ju5eVWyCn53dpHunntSHslcC9kT3A24E2MTQPT80Je6xSfMOKUhvzfhmzVeqN4zw7y0yHw7/bcZdv8x9hlHSg= X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR10MB7476 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.272,Aquarius:18.0.1011,Hydra:6.0.619,FMLib:17.11.176.26 definitions=2024-03-25_21,2024-03-21_02,2023-05-22_02 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 phishscore=0 malwarescore=0 suspectscore=0 mlxlogscore=999 mlxscore=0 adultscore=0 spamscore=0 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2403210000 definitions=main-2403250137 X-Proofpoint-GUID: 1Uvneu507iSzPbJbxpDmGt3JVZUG332B X-Proofpoint-ORIG-GUID: 1Uvneu507iSzPbJbxpDmGt3JVZUG332B From: Christoph Hellwig commit 944df75958807d56f2db9fdc769eb15dd9f0366a upstream. [backport: resolve merge conflict due to missing xfs_rtxlen_t type] minlen is the lower bound on the extent length that the caller can accept, and maxlen is at this point the maximal available length. This means a minlen extent is perfectly fine to use, so do it. This matches the equivalent logic in xfs_rtallocate_extent_exact that also accepts a minlen sized extent. Signed-off-by: Christoph Hellwig Reviewed-by: "Darrick J. Wong" Signed-off-by: Chandan Babu R Signed-off-by: Catherine Hoang --- fs/xfs/xfs_rtalloc.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fs/xfs/xfs_rtalloc.c b/fs/xfs/xfs_rtalloc.c index f2eb0c8b595d..5a439d90e51c 100644 --- a/fs/xfs/xfs_rtalloc.c +++ b/fs/xfs/xfs_rtalloc.c @@ -318,7 +318,7 @@ xfs_rtallocate_extent_block( /* * Searched the whole thing & didn't find a maxlen free extent. */ - if (minlen < maxlen && besti != -1) { + if (minlen <= maxlen && besti != -1) { xfs_extlen_t p; /* amount to trim length by */ /* From patchwork Mon Mar 25 22:07:04 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Catherine Hoang X-Patchwork-Id: 13603063 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.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 783C671720 for ; Mon, 25 Mar 2024 22:07:45 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=205.220.165.32 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711404468; cv=fail; b=R+nAbYvSSeiaQu6aq8IsXw71Q4C74LPqPXVgqmxn/2xhYJbF5L6VHA60Li3CjWIydWQ06JBLPzCnc9tSrfMo319kwOtQx254xXztQW1Yls40qJc0/5lyigc94ddWlxXIDOVGmUv0jF7geXJmf/wA6ztJOPFbf7k5dQDpR5RFRq0= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711404468; c=relaxed/simple; bh=j5t23ItROCrWpAOgZZE2u7eA5J8+E0XwRbvjHFHaFic=; h=From:To:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=lVeyPVLV9+rZ7J+c4tMe7Tub6buCilpMPcB1s9XMqdUUgMgvU9DY6vz/x2pbVO661Xi84P7KGOuhiDVpaD0HPps6Dl/Os/NPyLqYys+dndGeVm/f9/tbaxcndTkKbeYGN1b+Nbz1sbb0GmZ2xnh7XPAQS1J6sWno9ch7dWBCOis= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none 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=INxZZSlc; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=sMMRXKZL; arc=fail smtp.client-ip=205.220.165.32 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none 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="INxZZSlc"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="sMMRXKZL" Received: from pps.filterd (m0333521.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 42PLFxH9019802 for ; Mon, 25 Mar 2024 22:07:45 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : subject : date : message-id : in-reply-to : references : content-transfer-encoding : content-type : mime-version; s=corp-2023-11-20; bh=Zt/hDV5T5tqiefSb6YyQFHqfjVY0afy302RE8KUgo2g=; b=INxZZSlcC3hb98KGSsUdCM160AJGPimCgZ8JM6S0F4DLiMhnoRmW20LPl0PWOkezRZfa JajxvY3SrezE8Ol35ytuc/qKbJVwO+8NU+iXf3dIkClN30nIvmqgOiHE8zmty6JQMX6L z+zvtcDIOSfTcRdiC0IbE+sHNAYW6qvesHDW8uRUMJtXYUqmgmxM7M3rTZcDWm2rqt4o wzjnqbkq1psaSj8YpHOexzJINiOO0LrQdMgsALFJMRnTRzYa/Eg1oaa4u2UNnf2j+Yro mlwwdEMIjDR5+28DgR+lIm52wMDoJBk0TUMHOb4aztA7O88VurZTgQVHhAxrsfwlTRQU Zg== Received: from phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta02.appoci.oracle.com [147.154.114.232]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3x28ct32g3-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Mon, 25 Mar 2024 22:07:45 +0000 Received: from pps.filterd (phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (8.17.1.19/8.17.1.19) with ESMTP id 42PK2Xtc024865 for ; Mon, 25 Mar 2024 22:07:44 GMT Received: from bn1pr04cu002.outbound.protection.outlook.com (mail-eastus2azlp17012016.outbound.protection.outlook.com [40.93.12.16]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 3x1nh6ccg5-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Mon, 25 Mar 2024 22:07:44 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=HZKAPJduZmCR6LaTFDYUvrJr/MRHHwkRlNJVUbU1BZpv6D1AeIAfJVs3G47ND7YivE+FNawSxM4ji4IoqLpNn1Tj5GoahhqQkQwpmCIDZFR+NlhpQC/sNfGBupvi1sLrlWkH2ar0HADeHY76Kw9DaRWWqoqdKittVE2QG1voaw8TzST6N4BFG88IvqP7pprSdK2nJGBaHDEr8z4TkTk1svdRgc0HU0ERDM8Oh7OjTNzScwPWMSSOzKfcdvo8KYDkeUtLQ1AslJsdpL8EFpR7KMBZnsE2taO5h3WBcb/sEr3FQ7+SFtuFNW0wwWveVV61y1rQJrGxRK5cvC3lTGxN2Q== 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=Zt/hDV5T5tqiefSb6YyQFHqfjVY0afy302RE8KUgo2g=; b=Zr7iNUGi6wPXjAVx8CpnAWq538GLb02LDUt+8R9vJ1EaoBfYovEFk8DeEi0t9E4eX+UQ7lMkzqLIZ9nZJro/KvwghEHrLEmKw1rSAIDfrzG18wqO2UJLHkw/JlpuOocVPPNunc1dLo2HiTd66TJLhws1vGB/HPkwY+zxyv7VcLCjqSViKkOAzesj9sOOvBdJb1L6tGRI+GY+mXcfZQiFda7wZnXGzqbJPRICg8IGWx3oTE08mA7JX007jdROzclECN9ya3cJkZ8shs1uAEPaV/3A5+zmmDWsHMggW2KyH45rSseK3N8YQ0qhb9KSwH73mBQ1EpMPM3zDitN4Qa/Fbw== 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=Zt/hDV5T5tqiefSb6YyQFHqfjVY0afy302RE8KUgo2g=; b=sMMRXKZLSiLwZbPkpmaizXyBC8b5PPd3sVavAyiPhbncHth8Ez/aSgpQ8sdObeKJB1xI8cgMLoNgRRKfU/DULSAp/d+Bt6i1te+MYWlVZejCxxAmSnYWlLQDpMK2dDqT0oz/smSrTaYMjfosiL7OCsMITvMf+uHof4+GZnL3INw= Received: from BLAPR10MB5316.namprd10.prod.outlook.com (2603:10b6:208:326::6) by DM4PR10MB7476.namprd10.prod.outlook.com (2603:10b6:8:17d::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7409.31; Mon, 25 Mar 2024 22:07:42 +0000 Received: from BLAPR10MB5316.namprd10.prod.outlook.com ([fe80::404e:f2ff:fe2c:bd7a]) by BLAPR10MB5316.namprd10.prod.outlook.com ([fe80::404e:f2ff:fe2c:bd7a%4]) with mapi id 15.20.7409.031; Mon, 25 Mar 2024 22:07:42 +0000 From: Catherine Hoang To: linux-xfs@vger.kernel.org Subject: [PATCH 6.6 CANDIDATE 04/24] xfs: don't leak recovered attri intent items Date: Mon, 25 Mar 2024 15:07:04 -0700 Message-Id: <20240325220724.42216-5-catherine.hoang@oracle.com> X-Mailer: git-send-email 2.39.2 (Apple Git-143) In-Reply-To: <20240325220724.42216-1-catherine.hoang@oracle.com> References: <20240325220724.42216-1-catherine.hoang@oracle.com> X-ClientProxiedBy: SJ0PR13CA0021.namprd13.prod.outlook.com (2603:10b6:a03:2c0::26) To BLAPR10MB5316.namprd10.prod.outlook.com (2603:10b6:208:326::6) 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: BLAPR10MB5316:EE_|DM4PR10MB7476:EE_ X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: cRY4CKbYL5yaJQHj0xM2DdVXrXKp/tQJpb746qlnXmIeYGMrDL6Vuzp3rIiJHFyyPmO9D1oaOI8kvoSV57MyCLunYDjhXybMiR8tEel1KA3YTaeiwZuYlutbC61aGqb1Y9i767KGPCkFfvaQoOsUvxoooX0bS2VKpSwqaAPyzdgecuXXkvspPeZB8PShN4zswRavxJSK+UuwLMJgz9KiY2RnxYmYY5jNI2P9qvNeIDk2G8qFyUNSPzb+UoovuI3J9mxix9G9g0joyoPQ8pdlkcQdS5uBGzV97yuc8GY+Z7WwA4+6L8l0xR/sqzqBj3f0GrHedwmW42SYS/72GexsAHfDDRP9OPJ5H81YmDz9ArWUjke8zqsqF/17/atHL/OSNjHjyS9Ip/XZ4UuAnj6lAsdprI6K5W4ujGtyDyJgrl06LmeXQqaSrN9mJOtbIZF/M+AbhnE08sUGXqT8OG/0x3zEYai4Fh8JDGjyr+fR14Z+8Cyc1rYtVtABUGxmeqH+aAJ1uzyn3yrzeiFyJAe2lurwBsiamqrXk8T17JavOOnPxLGV+l/x6ApVYS2FLLL7xY+SqtPwzL6TlKvLh/evLgAnPO43nScVykwUBkjzcG6qxWaUUD5ep+5NZErrZC1E8kBHU2/DZxeBcWfAJ+NEgtABQnoygjp1xALaXiaYrYc= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BLAPR10MB5316.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(366007)(1800799015)(376005);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: YtZkZu90Xdmyys46fZV29fzEEfCTEdxbW40eBCSBm7hjTQ2dhjEw10BqD1onV9ANYX5rCNI/Hw0kpf/5OxjEyrHPXpBsH1RZvKo4Gpeg1tU3DYcXdtCm5LvUZkVLwk9Yl609SygGAfK8SOnhQnhts40JuWJM5hIpxSoGoBGSSBFSNNv58RL8KnC5ZHoHWNcdUUrmMlv5SWKfygfwtKRalqhkgrkOaVErZNUY9aqR3at1Khgtktb9H5Xo3wO5vdWmhi0swAKyE7O2JqLluQhJTbV0WDrGG+1STpS4AMRhcgLilJlQ/JbnYkIZEIHa2RtSW/+w7xJX8pgBBKhasCmIHWDfUAB9q/8SURadcmH91NDRD0U389oj3Pu7QO6BkUmDZTphI/8Z3tmwniQkdQpbCXlwx5ZM4CGWFxhaHCw4eyAxdu2bQqWagsaci7Snbud9BE8RuS1BDQQCeEz2bzkV3JNr9LezrG1zp9abhZ+2V/jNm4/5h+sTf7mZg5oz/Z/f/0T+VqlnkI3TCMSonRFLQjWx1EtSE1cbvLpY7y3oOU/h13KjWTxzGTQCrlQ+IdrKmH8uPZknmVaBVocXkGdSqIb1NAYFe0sbH+alerNSS0LN3u3NXiWH2MpwNQ23332B8lDRxPWvz87zA2hKOqTtQUOi2U/Dj0e+wsc9XyTuBOe8bHDMGhkXJN6zjdpdYFJ9eNvRq/PbVsjEiZN37tQ/Npj4gywWYo8/1KizorkLQ94z5fLxVp1dIUW4yljfqwMULtBVN9voWlU/azfotWco4Dr1rd4p9iQgur5Orex95BPQFycnz3L5AEw0sk+drdzjR9h/Ox+YsUJw/cgcdKC8ip6KS5Q7PKJdMwnAX0Eh9EFEFYlZwYxhubhb5mS7U7EwQr3Eu+1yojQfcrBXJPqXGpMY1R5BzfqmJKoRjgaUWliWS1VgNioKChgbBKBzPPXvjyX4/926+PZTxgc//TAS3QdeJqxOCr63Y1P8QRK0o7qRHz5M6G5QePDozb/43+Yri9k1LQQ64N6/4sJGxI00ixMD9/mB1693jgmVINsGEkeXsbJO4a68qJnts4LjlXhVRzAppViSOI4FoMuwAgVjbZ6MQF1sUigHRL1liOJYouNlHMlWnLUOxVt62m29trI+X6yYeMVXsGPw+GLh11f9duHP/oLozFOKR10rIp5tzNykbiItPjNs3O+IPXKjBzdAljWm51pf0atBlX/d3UPoBQEjPNjpW9TZSBOGfFzIl/nDuXkBPWzH3Od3O2YFhxGW8VGdOa/4LE83LaKH7wuU4I2p3qR1T7U7P5FwVvwNNd809GG38hY6UHw8iLeBsQHrhIKPXm4as/mlS4tINglUIHoCdqkAgG5pdIP9PJIAsE7kCatX6q+UOhXHBwYmUOimR4Ar+yBn6ZbXk7QYQi+KblPTl94P11Jn/mFeORDl8P+MlR2WtKjMWcDWIRbw66aFTKBWONpAUng9ucTpP/HLx5VVcYxZQcQEM9a9nKvMcD9UffApoaIWurG0FTdfBNvzar5NeKXk+njxtDry81xzWdlOTw+ynWP9IQ1lXGNvJD7Q867oO46XPoM5NQs4IT6+uZMz3hhNGIH5cXGDaf//h5rmhsHC5cTxauw1d5kJoU1XLyU1CLcVy5Davor/Xb97pWS66sGWPA1swqcs2zGM+g== X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: eA5RwVZlAwFU1LrMQ+1xQK3YtGsXvu95KcBBjNCFBBZLxhky3QgOyhvq0cHeVf6iT3o01xvDfgS32COaIxfJ0+U0BQEpa1J5IuDEyOjjBQZzLuqytwFzp1Xv31+YNdu4diXK/iUKBmhFC5udh2UYzszZoDJ2/fTsZl2/ejY3k8Bo7EySWhWMO+DJeTywkeyJb3kr+gBt6cHNsmFm88HAN9S2SME6ualyp1vdpwtkIfeSYiVOnovwvwbVnLNOfmQq2eDD/m2uJa8Lcm1QryjCiy9fCpSRw+N9dTpy1tbLSezi7BduZ6jewY4y1XFcXYbdopLdJU1UY9Qd8QgPTiF4E+cu1AGRmZ7mL/KiMc1upUI3+Bb5aBUSnKDkq3tK2mdWy6X1lORrpqan0Q8dnypDA3766l31T/WBIGuFQCun8CpvFWv1RjyJvvC3GjGHnD6YMKj9GP7v0nc21s1UvV6ny/Dfpn5kfBQcl4poKzmwcxNQxLkdaqRvFuEJRkiwIN/YuG4IH0q88KS/fciL0aeAQcDKDT9H1N1to3UC5tzAU7plVoaLvyyndncIY/gzP0qUYWXqQnTM8K6AOHOGuDRqes90tFry+wyvP15SoJbwcM4= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 2b044c6a-2458-4c09-b06a-08dc4d17fdf2 X-MS-Exchange-CrossTenant-AuthSource: BLAPR10MB5316.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 Mar 2024 22:07:42.1445 (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: tJnHCn7msVRdkIvvVgjPQCxQjyeFwCplAemETWf1hmmoR8Jqr3R9KkyX3svvL2DsrLXx+no2JL/waPcHFRDyjKpkt36Z6EGfcRKJOQyIGfM= X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR10MB7476 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.272,Aquarius:18.0.1011,Hydra:6.0.619,FMLib:17.11.176.26 definitions=2024-03-25_21,2024-03-21_02,2023-05-22_02 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 phishscore=0 malwarescore=0 suspectscore=0 mlxlogscore=999 mlxscore=0 adultscore=0 spamscore=0 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2403210000 definitions=main-2403250137 X-Proofpoint-GUID: X1sceB14sOxRcj9w8IkC6sXfKNwZENNE X-Proofpoint-ORIG-GUID: X1sceB14sOxRcj9w8IkC6sXfKNwZENNE From: "Darrick J. Wong" commit 07bcbdf020c9fd3c14bec51c50225a2a02707b94 upstream. If recovery finds an xattr log intent item calling for the removal of an attribute and the file doesn't even have an attr fork, we know that the removal is trivially complete. However, we can't just exit the recovery function without doing something about the recovered log intent item -- it's still on the AIL, and not logging an attrd item means it stays there forever. This has likely not been seen in practice because few people use LARP and the runtime code won't log the attri for a no-attrfork removexattr operation. But let's fix this anyway. Also we shouldn't really be testing the attr fork presence until we've taken the ILOCK, though this doesn't matter much in recovery, which is single threaded. Fixes: fdaf1bb3cafc ("xfs: ATTR_REPLACE algorithm with LARP enabled needs rework") Signed-off-by: Darrick J. Wong Reviewed-by: Christoph Hellwig Signed-off-by: Catherine Hoang --- fs/xfs/xfs_attr_item.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/fs/xfs/xfs_attr_item.c b/fs/xfs/xfs_attr_item.c index 36fe2abb16e6..11e88a76a33c 100644 --- a/fs/xfs/xfs_attr_item.c +++ b/fs/xfs/xfs_attr_item.c @@ -329,6 +329,13 @@ xfs_xattri_finish_update( goto out; } + /* If an attr removal is trivially complete, we're done. */ + if (attr->xattri_op_flags == XFS_ATTRI_OP_FLAGS_REMOVE && + !xfs_inode_hasattr(args->dp)) { + error = 0; + goto out; + } + error = xfs_attr_set_iter(attr); if (!error && attr->xattri_dela_state != XFS_DAS_DONE) error = -EAGAIN; @@ -608,8 +615,6 @@ xfs_attri_item_recover( attr->xattri_dela_state = xfs_attr_init_add_state(args); break; case XFS_ATTRI_OP_FLAGS_REMOVE: - if (!xfs_inode_hasattr(args->dp)) - goto out; attr->xattri_dela_state = xfs_attr_init_remove_state(args); break; default: From patchwork Mon Mar 25 22:07:05 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Catherine Hoang X-Patchwork-Id: 13603064 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.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 9C18571748 for ; Mon, 25 Mar 2024 22:07:48 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=205.220.165.32 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711404470; cv=fail; b=VhQaf5siqZE7xNsJtJhol6WLn2eLBun7HadPzw/iCeRmvE6Kx3UQzygGvBmpzH8TeRyTg0J4/NtRpQn5UcV/I2lKmrFOnq2kbx5h5My6o0WnrSaNpqqUq5bF/LpGb2ujioMsrKdLFA32VyUSDUW33DZs52xaCyq7D4ofp8zGnmY= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711404470; c=relaxed/simple; bh=ZwpwA3RCtI3kbM88WL2iOuS5Mi8L3TCb1KYatxm9Ec8=; h=From:To:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=kMrdtDe5cUlkXH2daTOX/XWOMN7K1TstgHhv64A9RWJjdZnXuMiXawPDjSGkV34HSw3TUNSMaIWkeSoAaZLBUjslmAHtKChP3xtEFL1tIqhGlLiwd5Zy2DecsVHskQWv14Gy6Ozd31m96AeQgSYhqbzp3UkcIDIUONRc60M+Yx4= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none 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=NYsy4Bgv; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=0P7OUOFC; arc=fail smtp.client-ip=205.220.165.32 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none 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="NYsy4Bgv"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="0P7OUOFC" Received: from pps.filterd (m0246617.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 42PLFuQu012492 for ; Mon, 25 Mar 2024 22:07:48 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : subject : date : message-id : in-reply-to : references : content-transfer-encoding : content-type : mime-version; s=corp-2023-11-20; bh=V7CJgXfDpvp91R1e7WDQf82WN9gj2dH+OTbWByewUTY=; b=NYsy4BgvUeSkfmCq9mVsLp+7KyD/3tvodfmUY6nPkUFxrY2xXavY2aqQQEPwPNwvADtL N2DDpNXUJ9u4eNs0fGNEBjgwIrcDvE9E+S9JlD4pqfoEJt0NFV6zHmNWeRpO+5i3073P pwfaTEbHAcpWF+gKII23f8ymIfhGenffpqU3eC/a1oaqnzxL0PG6e4P+ydMqCo1Krsch W5Mwk0FgIt2pTr3FHfpF+2NMGi9TnDoA/lBzCLg7JcM/8/vrIrDbI2JAKKEO+kxFH4ic k40A4v5PP2xduxGQSeE4Wu1PjS0xAy2L35aH+Lxd/quytyJWhmLpPm2AQJXdRBQkK+nn HA== Received: from iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta03.appoci.oracle.com [130.35.103.27]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3x2s9gt7e3-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Mon, 25 Mar 2024 22:07:47 +0000 Received: from pps.filterd (iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (8.17.1.19/8.17.1.19) with ESMTP id 42PKNWnh015902 for ; Mon, 25 Mar 2024 22:07:46 GMT Received: from bn1pr04cu002.outbound.protection.outlook.com (mail-eastus2azlp17012016.outbound.protection.outlook.com [40.93.12.16]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 3x1nh64r3g-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Mon, 25 Mar 2024 22:07:46 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=VDxPrJ1PalAZekUADo32sjueDwOuPxS7+khs9MULYmDidns7s0PiH+/CIdKzgOb+k9pX0N5VV4eLUireUovv6qjSgpPFZfM9qkk8Q0zIyyMxuhKiVPhFx7bsI7OdtjKUtPqnZqYGE/9/NQFEV/ZdPzsibaUxxDEw3d8hzvVZk2Jrn1SuV/cf2GPBqDJYMaHKT5rH8op/IQ9GATZEiw2n05gfW/HpENH8ipfI4mGRYtOu7pXe6YzEZ9pN7mDlIl8G6TNM0lvd2tNBh3w27xJyD8P65tnYG2SJ0M78nxYdO3pAMuyBhBtl59Sqy6RbjkWFUqmL3MG8d/k6qLrb3I5W5A== 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=V7CJgXfDpvp91R1e7WDQf82WN9gj2dH+OTbWByewUTY=; b=AjqmNQ7ne1sjKO4FTfk6NBpLLTDW7ZJyZfLimu56nE4dc52nBvAjpTy3zAzW3VECzzcMhy1h9YPozwkmuveUh4Ji01Fdkj+z97s2RfEzhY+zzxOZgLpqrQyVRNu43uOuIYOucmoqdd6ddbXBhvDWfAtga8/Lcf2Gzki+V8NY709nGUHlBJ0OLNdiOu45/tIcQ437L8wjoS3wiKt8SmTu52Srz0WMGCBSz5P6byMGXoAo5hsMaPf4c/GlrjT+W2VNEweeI2FMDkBVX4WiotDwBAUL1n/ZU+uTcYzfxeurf+g0DlSbjEkZ4vwaANQRQivmcR/PRv/qCPN3fUdZKeAaRQ== 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=V7CJgXfDpvp91R1e7WDQf82WN9gj2dH+OTbWByewUTY=; b=0P7OUOFCggd9RaGF3g2iqNM4dkhEowJa2VOK4j+Lzn14x04K1xM4WVgePBtgWTAtqAEF+gj+LcMZLOYBlRXJB3pV/17YxbnuyxYUAu882fB8jIrOkTid7S4Mwl01IX7nukPzMi3fMXXgXb69zrtocP46VnpePHMzxXwB1o8mzd0= Received: from BLAPR10MB5316.namprd10.prod.outlook.com (2603:10b6:208:326::6) by DM4PR10MB7476.namprd10.prod.outlook.com (2603:10b6:8:17d::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7409.31; Mon, 25 Mar 2024 22:07:44 +0000 Received: from BLAPR10MB5316.namprd10.prod.outlook.com ([fe80::404e:f2ff:fe2c:bd7a]) by BLAPR10MB5316.namprd10.prod.outlook.com ([fe80::404e:f2ff:fe2c:bd7a%4]) with mapi id 15.20.7409.031; Mon, 25 Mar 2024 22:07:44 +0000 From: Catherine Hoang To: linux-xfs@vger.kernel.org Subject: [PATCH 6.6 CANDIDATE 05/24] xfs: use xfs_defer_pending objects to recover intent items Date: Mon, 25 Mar 2024 15:07:05 -0700 Message-Id: <20240325220724.42216-6-catherine.hoang@oracle.com> X-Mailer: git-send-email 2.39.2 (Apple Git-143) In-Reply-To: <20240325220724.42216-1-catherine.hoang@oracle.com> References: <20240325220724.42216-1-catherine.hoang@oracle.com> X-ClientProxiedBy: SJ0PR13CA0022.namprd13.prod.outlook.com (2603:10b6:a03:2c0::27) To BLAPR10MB5316.namprd10.prod.outlook.com (2603:10b6:208:326::6) 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: BLAPR10MB5316:EE_|DM4PR10MB7476:EE_ X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: KWOmrW4hWJeS78rKLUuGIicVNUVu62v7bWGvVn5rOhJncz/TVzItBrL8w4/aPL/Hw8G/I7d4uykNOPNRFBQRHcCbmAH8MV9WIrnHoasUuuYfPCC8oZlL/+twdumSvSraDd0wbk2/zqLTTbnVqLSozKqe2/ySvbBDQuFybBT/T6K+pcWLY7vmM3owwB6ajFt3ODmGP9e8VtR6uDmytUuzULXeMJ1DAyo3TTzUVqG8TabPHhStiAbSpfV9FYbW6iiLohUQ/rGvQkLVSgITCwnySG+PLwprtC//qG8tb5ir1SFo612B/6Lls2Q8poAFiOzo2KNs/Nr2MvSQ0Om3lDVLcVitjgAd14mjK2DKzl7x6b/xdymK4e+7o+fnrAj3jLZOI9fOPhK9qMflPS/JI06RioYY3ZCpTv5Uyy0adV7+pzRIx7Qi7h591JQOji652ftlfU1KVeooFg9HnEm+LlRNNgcsfQx6xlMuFayHCuvB2/c6DAbLgpz84Oiv8cyLkK5Ns0SnyWUal6Xs/W1OrOPfRvr8lql7BsxYsq7tDOfMjDjElxv8Sw9V/6l6lJ0a6xV4yhCOjvpkixeTuSFCmXkR8bg0hykHrKhoTgZM7sKvhkG75sG9afomscT3CLRodE/aYQ93RuKkfSVzERDAzdkeUH8fHgC41tGTfWHN6PosxzA= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BLAPR10MB5316.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(366007)(1800799015)(376005);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: DvOFKxkEtDD/DZT4zGJdTdKMT+1m4Q0udUPcXHWgCnKp/qWi2XZSbXpxB6sF6oP+blsLhlC4AgJAjKX08oY7GonfC+KFqQpjKrr/Z+6+jgWovy/B+PeXW4BkmYXvflHc3trWZqr5i+g+7BnX7V1K9wLn3+aA6d5UQTFsCR6IWofccGUC2OcmaTqoC8+Idp0uixnKSM3KaJ8vDZXgcPQVBZ6L+FE8/j+ORatOh4/+RIN+CcjV1Kt/lPTg/qbfMry1ZPkS/1jsSQYRHnoeM5miaEAZz94TFBSI1PPoTrV5eR5gmfNtVC1DfsLCTgCq59qkR/QTrzs+t6FtUlgK6rCvLdoUTxcNRri8QHYVN5rAFuPMlgcOnsfjfnJRvU0Os1xCXDqUMYt6TSHOd9FPARnty9hPW7XChvBfnO232K8tsQojhcFvmxYM5FdrMpaH7rkA6WQ2am6wu/qRI2be9C9J2/Kq7Dz+v/cGqxsGvd08+v0Gu3wCy1C4VIaeUEy1Idevu10Mi1YHmEDjcjGw5Du6x5w6kvjP1st2gmrD1tzvCdRr60gWzu4+/B0winyHw6Bhovz/UeiAEP/tVSZKTlcXUssjapMFU/64vMNtahillCgO3+25pPl5xqEpcjDLykHnCPAH5iGCNHGKfViTqAE8ADXO/tw/Fz8yiZ/YzwDJ4Ih+4tn3HD52wu1PwYHQ5g6WwtqO257gC1A1DVYxlPo2seZ3klSxLX3zKiNpvSMMcevYsJlu2F0bGzO1hsz9dJI+azA92YIJbeaNoKZ4fKSDMGHeDevVdKgXKZZd9f/U+psTqhZmNk8MxnEK5Y84Uki5mBeqyeCQinYIQZYphd3NE94ja2yxepoEJzENucdcWdK8/8tLdVw9UPDAbyfRL8vT7b6NTlx4Oeo/yh/uegI501BuGStKYmdbjjvDvCo19ISob0PzynPrHBTOmigq/X5DjRe9YDLQH5MAqkvJuCDauuIU0rPvwI6RsVi94WMASM01eSk4n6VU+qYyaM6rR3mQp6H6bbYahHcoZGfpAlDEPjdugH9KfZFtD93R2yEOeelgFsStIPE2Tgxgo6fMgxG0nvpm2hVUekZeuTVdWTS8/OqulxmIhW6kkfI0TedWVMtoT+3kpuK7fZbUk1aLGWpBL5gUQQaFy2smHIuk2uKLmAMADbq6KZOZlPhDsdaqg1hZ75qV6hOGMNg9aWNUaIG9rPfaQ5XkXHuJ4efxZad0EIMxKQHZdP3JVi3RM2lAJlzA8gL6IcJuJ4wsbinptPNHSoZhgKVHi76A1Ix8tAzRCjWhQ1ih2aRuJeMSPMxPyX/OGr+dPSpyFXRslH0y730uS8QDmAkucR1NZbk0MSuDAAM3k5sxxTUpx5RfllX+EAwAxvoV+UkLN5m2OZZ4jGgt5ncNwPjDAJcQrVisKPdds3aPDzzUImP0Q7ApdIT5vaKGLum5gIFTNnCIA1KgbsS4fUB9d3Zbnn6NrfDHLBxc9xNAJ2YWgOzdX8ttlOl+rzQ40Bra7MKZnfEA7Fz3p0B2aqJM0sBVOHjPUGQJKPjz5/FIfIPxB5vKBOlV7FQ3eBmv2x2AVI8WGqHzG98+HVboDeMdOs4lzNfn7SForNTRhLytapz+xNnvxbJYEKGTOQEor9xNcocdcdiZLoKjOr5oM2OJgPzDLQmz276v6IdqhQ== X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: LydXl1uuVv1hgXiPb8u6RJl3kjUnRzCbXW1Oze5NMeCiC8QOu+GX14yhigf3GYMxsSTcT4R2YTEGAYT068K5ryJ7bY8yaLNwPioUdKBue6T1lsHghiJ0nFl/zFnAA0IF2CXeGqUHXmCq13koXQSfKgYL1DCe54s6ktEyo23WKOX93RPQGyg3/m3oMdA45mRIpwoHE0Lf07cSxaFgDlULyyTOq+NKVwBFNqCb+TomA5oohnAIh91fFE0EKL/t56FRlyEw0qXdIz8kPQcYdix5bss1agBglnMXlWNlAPXgPFYigCxFiUsOfcZJEhfU2Vo9YvlmgnndXLjsbYwCyzMsAK1oGWUza2LKsi7aST4EfEdXZ9NdSXIxJuxEl+vdI6fVVc56n2O65aqdBglo3Snq7KzlVNtsz5ppTe4Cy2mrPRSre8+PD+AHpjO2AMhH4+DUOHctxhKTGR09Az4un2nDTlky2vVGPlW2smjO0iOZkr8dNT9tAOlcoVD+Me1a3s8iezR+Nzl3fCKP5ydHW5+M26VLpa4VKTFSvFvyurAnPPOhb7PYZjmiFMUwyQm2HKj6x15etHk5D/9Y27lHXrhGc9NCEWsQvoz7bdM4KC++q0g= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 1d731f6d-63bf-4d51-3237-08dc4d17ff4c X-MS-Exchange-CrossTenant-AuthSource: BLAPR10MB5316.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 Mar 2024 22:07:44.3600 (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: cGsDRKYcHnsNR2Aj9E4guJ8+jqlLL/Vc9LdFmNrvT1WzVJKUKaLWexovc5UPUpjeIjuONDzamJGQyOqkTjSjzijheXPpyw4OnwUBAPiuwUg= X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR10MB7476 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.272,Aquarius:18.0.1011,Hydra:6.0.619,FMLib:17.11.176.26 definitions=2024-03-25_22,2024-03-21_02,2023-05-22_02 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 adultscore=0 malwarescore=0 phishscore=0 mlxscore=0 mlxlogscore=999 spamscore=0 bulkscore=0 suspectscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2403210000 definitions=main-2403250137 X-Proofpoint-GUID: XtQwjYIFvOUdH9XrbgP6iqDexaoSsfXf X-Proofpoint-ORIG-GUID: XtQwjYIFvOUdH9XrbgP6iqDexaoSsfXf From: "Darrick J. Wong" commit 03f7767c9f6120ac933378fdec3bfd78bf07bc11 upstream. One thing I never quite got around to doing is porting the log intent item recovery code to reconstruct the deferred pending work state. As a result, each intent item open codes xfs_defer_finish_one in its recovery method, because that's what the EFI code did before xfs_defer.c even existed. This is a gross thing to have left unfixed -- if an EFI cannot proceed due to busy extents, we end up creating separate new EFIs for each unfinished work item, which is a change in behavior from what runtime would have done. Worse yet, Long Li pointed out that there's a UAF in the recovery code. The ->commit_pass2 function adds the intent item to the AIL and drops the refcount. The one remaining refcount is now owned by the recovery mechanism (aka the log intent items in the AIL) with the intent of giving the refcount to the intent done item in the ->iop_recover function. However, if something fails later in recovery, xlog_recover_finish will walk the recovered intent items in the AIL and release them. If the CIL hasn't been pushed before that point (which is possible since we don't force the log until later) then the intent done release will try to free its associated intent, which has already been freed. This patch starts to address this mess by having the ->commit_pass2 functions recreate the xfs_defer_pending state. The next few patches will fix the recovery functions. Signed-off-by: Darrick J. Wong Reviewed-by: Christoph Hellwig Signed-off-by: Catherine Hoang --- fs/xfs/libxfs/xfs_defer.c | 105 +++++++++++++++++++++-------- fs/xfs/libxfs/xfs_defer.h | 5 ++ fs/xfs/libxfs/xfs_log_recover.h | 3 + fs/xfs/xfs_attr_item.c | 10 +-- fs/xfs/xfs_bmap_item.c | 9 +-- fs/xfs/xfs_extfree_item.c | 9 +-- fs/xfs/xfs_log.c | 1 + fs/xfs/xfs_log_priv.h | 1 + fs/xfs/xfs_log_recover.c | 113 ++++++++++++++++---------------- fs/xfs/xfs_refcount_item.c | 9 +-- fs/xfs/xfs_rmap_item.c | 9 +-- 11 files changed, 158 insertions(+), 116 deletions(-) diff --git a/fs/xfs/libxfs/xfs_defer.c b/fs/xfs/libxfs/xfs_defer.c index f71679ce23b9..363da37a8e7f 100644 --- a/fs/xfs/libxfs/xfs_defer.c +++ b/fs/xfs/libxfs/xfs_defer.c @@ -245,23 +245,53 @@ xfs_defer_create_intents( return ret; } -STATIC void +static inline void xfs_defer_pending_abort( + struct xfs_mount *mp, + struct xfs_defer_pending *dfp) +{ + const struct xfs_defer_op_type *ops = defer_op_types[dfp->dfp_type]; + + trace_xfs_defer_pending_abort(mp, dfp); + + if (dfp->dfp_intent && !dfp->dfp_done) { + ops->abort_intent(dfp->dfp_intent); + dfp->dfp_intent = NULL; + } +} + +static inline void +xfs_defer_pending_cancel_work( + struct xfs_mount *mp, + struct xfs_defer_pending *dfp) +{ + const struct xfs_defer_op_type *ops = defer_op_types[dfp->dfp_type]; + struct list_head *pwi; + struct list_head *n; + + trace_xfs_defer_cancel_list(mp, dfp); + + list_del(&dfp->dfp_list); + list_for_each_safe(pwi, n, &dfp->dfp_work) { + list_del(pwi); + dfp->dfp_count--; + trace_xfs_defer_cancel_item(mp, dfp, pwi); + ops->cancel_item(pwi); + } + ASSERT(dfp->dfp_count == 0); + kmem_cache_free(xfs_defer_pending_cache, dfp); +} + +STATIC void +xfs_defer_pending_abort_list( struct xfs_mount *mp, struct list_head *dop_list) { struct xfs_defer_pending *dfp; - const struct xfs_defer_op_type *ops; /* Abort intent items that don't have a done item. */ - list_for_each_entry(dfp, dop_list, dfp_list) { - ops = defer_op_types[dfp->dfp_type]; - trace_xfs_defer_pending_abort(mp, dfp); - if (dfp->dfp_intent && !dfp->dfp_done) { - ops->abort_intent(dfp->dfp_intent); - dfp->dfp_intent = NULL; - } - } + list_for_each_entry(dfp, dop_list, dfp_list) + xfs_defer_pending_abort(mp, dfp); } /* Abort all the intents that were committed. */ @@ -271,7 +301,7 @@ xfs_defer_trans_abort( struct list_head *dop_pending) { trace_xfs_defer_trans_abort(tp, _RET_IP_); - xfs_defer_pending_abort(tp->t_mountp, dop_pending); + xfs_defer_pending_abort_list(tp->t_mountp, dop_pending); } /* @@ -389,27 +419,13 @@ xfs_defer_cancel_list( { struct xfs_defer_pending *dfp; struct xfs_defer_pending *pli; - struct list_head *pwi; - struct list_head *n; - const struct xfs_defer_op_type *ops; /* * Free the pending items. Caller should already have arranged * for the intent items to be released. */ - list_for_each_entry_safe(dfp, pli, dop_list, dfp_list) { - ops = defer_op_types[dfp->dfp_type]; - trace_xfs_defer_cancel_list(mp, dfp); - list_del(&dfp->dfp_list); - list_for_each_safe(pwi, n, &dfp->dfp_work) { - list_del(pwi); - dfp->dfp_count--; - trace_xfs_defer_cancel_item(mp, dfp, pwi); - ops->cancel_item(pwi); - } - ASSERT(dfp->dfp_count == 0); - kmem_cache_free(xfs_defer_pending_cache, dfp); - } + list_for_each_entry_safe(dfp, pli, dop_list, dfp_list) + xfs_defer_pending_cancel_work(mp, dfp); } /* @@ -665,6 +681,39 @@ xfs_defer_add( dfp->dfp_count++; } +/* + * Create a pending deferred work item to replay the recovered intent item + * and add it to the list. + */ +void +xfs_defer_start_recovery( + struct xfs_log_item *lip, + enum xfs_defer_ops_type dfp_type, + struct list_head *r_dfops) +{ + struct xfs_defer_pending *dfp; + + dfp = kmem_cache_zalloc(xfs_defer_pending_cache, + GFP_NOFS | __GFP_NOFAIL); + dfp->dfp_type = dfp_type; + dfp->dfp_intent = lip; + INIT_LIST_HEAD(&dfp->dfp_work); + list_add_tail(&dfp->dfp_list, r_dfops); +} + +/* + * Cancel a deferred work item created to recover a log intent item. @dfp + * will be freed after this function returns. + */ +void +xfs_defer_cancel_recovery( + struct xfs_mount *mp, + struct xfs_defer_pending *dfp) +{ + xfs_defer_pending_abort(mp, dfp); + xfs_defer_pending_cancel_work(mp, dfp); +} + /* * Move deferred ops from one transaction to another and reset the source to * initial state. This is primarily used to carry state forward across @@ -769,7 +818,7 @@ xfs_defer_ops_capture_abort( { unsigned short i; - xfs_defer_pending_abort(mp, &dfc->dfc_dfops); + xfs_defer_pending_abort_list(mp, &dfc->dfc_dfops); xfs_defer_cancel_list(mp, &dfc->dfc_dfops); for (i = 0; i < dfc->dfc_held.dr_bufs; i++) diff --git a/fs/xfs/libxfs/xfs_defer.h b/fs/xfs/libxfs/xfs_defer.h index 8788ad5f6a73..5dce938ba3d5 100644 --- a/fs/xfs/libxfs/xfs_defer.h +++ b/fs/xfs/libxfs/xfs_defer.h @@ -125,6 +125,11 @@ void xfs_defer_ops_capture_abort(struct xfs_mount *mp, struct xfs_defer_capture *d); void xfs_defer_resources_rele(struct xfs_defer_resources *dres); +void xfs_defer_start_recovery(struct xfs_log_item *lip, + enum xfs_defer_ops_type dfp_type, struct list_head *r_dfops); +void xfs_defer_cancel_recovery(struct xfs_mount *mp, + struct xfs_defer_pending *dfp); + int __init xfs_defer_init_item_caches(void); void xfs_defer_destroy_item_caches(void); diff --git a/fs/xfs/libxfs/xfs_log_recover.h b/fs/xfs/libxfs/xfs_log_recover.h index a5100a11faf9..271a4ce7375c 100644 --- a/fs/xfs/libxfs/xfs_log_recover.h +++ b/fs/xfs/libxfs/xfs_log_recover.h @@ -153,4 +153,7 @@ xlog_recover_resv(const struct xfs_trans_res *r) return ret; } +void xlog_recover_intent_item(struct xlog *log, struct xfs_log_item *lip, + xfs_lsn_t lsn, unsigned int dfp_type); + #endif /* __XFS_LOG_RECOVER_H__ */ diff --git a/fs/xfs/xfs_attr_item.c b/fs/xfs/xfs_attr_item.c index 11e88a76a33c..a32716b8cbbd 100644 --- a/fs/xfs/xfs_attr_item.c +++ b/fs/xfs/xfs_attr_item.c @@ -772,14 +772,8 @@ xlog_recover_attri_commit_pass2( attrip = xfs_attri_init(mp, nv); memcpy(&attrip->attri_format, attri_formatp, len); - /* - * The ATTRI has two references. One for the ATTRD and one for ATTRI to - * ensure it makes it into the AIL. Insert the ATTRI into the AIL - * directly and drop the ATTRI reference. Note that - * xfs_trans_ail_update() drops the AIL lock. - */ - xfs_trans_ail_insert(log->l_ailp, &attrip->attri_item, lsn); - xfs_attri_release(attrip); + xlog_recover_intent_item(log, &attrip->attri_item, lsn, + XFS_DEFER_OPS_TYPE_ATTR); xfs_attri_log_nameval_put(nv); return 0; } diff --git a/fs/xfs/xfs_bmap_item.c b/fs/xfs/xfs_bmap_item.c index e736a0844c89..6cbae4fdf43f 100644 --- a/fs/xfs/xfs_bmap_item.c +++ b/fs/xfs/xfs_bmap_item.c @@ -681,12 +681,9 @@ xlog_recover_bui_commit_pass2( buip = xfs_bui_init(mp); xfs_bui_copy_format(&buip->bui_format, bui_formatp); atomic_set(&buip->bui_next_extent, bui_formatp->bui_nextents); - /* - * Insert the intent into the AIL directly and drop one reference so - * that finishing or canceling the work will drop the other. - */ - xfs_trans_ail_insert(log->l_ailp, &buip->bui_item, lsn); - xfs_bui_release(buip); + + xlog_recover_intent_item(log, &buip->bui_item, lsn, + XFS_DEFER_OPS_TYPE_BMAP); return 0; } diff --git a/fs/xfs/xfs_extfree_item.c b/fs/xfs/xfs_extfree_item.c index 3fa8789820ad..cf0ddeb70580 100644 --- a/fs/xfs/xfs_extfree_item.c +++ b/fs/xfs/xfs_extfree_item.c @@ -820,12 +820,9 @@ xlog_recover_efi_commit_pass2( return error; } atomic_set(&efip->efi_next_extent, efi_formatp->efi_nextents); - /* - * Insert the intent into the AIL directly and drop one reference so - * that finishing or canceling the work will drop the other. - */ - xfs_trans_ail_insert(log->l_ailp, &efip->efi_item, lsn); - xfs_efi_release(efip); + + xlog_recover_intent_item(log, &efip->efi_item, lsn, + XFS_DEFER_OPS_TYPE_FREE); return 0; } diff --git a/fs/xfs/xfs_log.c b/fs/xfs/xfs_log.c index ee206facf0dc..a1650fc81382 100644 --- a/fs/xfs/xfs_log.c +++ b/fs/xfs/xfs_log.c @@ -1542,6 +1542,7 @@ xlog_alloc_log( log->l_covered_state = XLOG_STATE_COVER_IDLE; set_bit(XLOG_ACTIVE_RECOVERY, &log->l_opstate); INIT_DELAYED_WORK(&log->l_work, xfs_log_worker); + INIT_LIST_HEAD(&log->r_dfops); log->l_prev_block = -1; /* log->l_tail_lsn = 0x100000000LL; cycle = 1; current block = 0 */ diff --git a/fs/xfs/xfs_log_priv.h b/fs/xfs/xfs_log_priv.h index fa3ad1d7b31c..e30c06ec20e3 100644 --- a/fs/xfs/xfs_log_priv.h +++ b/fs/xfs/xfs_log_priv.h @@ -407,6 +407,7 @@ struct xlog { long l_opstate; /* operational state */ uint l_quotaoffs_flag; /* XFS_DQ_*, for QUOTAOFFs */ struct list_head *l_buf_cancel_table; + struct list_head r_dfops; /* recovered log intent items */ int l_iclog_hsize; /* size of iclog header */ int l_iclog_heads; /* # of iclog header sectors */ uint l_sectBBsize; /* sector size in BBs (2^n) */ diff --git a/fs/xfs/xfs_log_recover.c b/fs/xfs/xfs_log_recover.c index a1e18b24971a..b9d2152a2bad 100644 --- a/fs/xfs/xfs_log_recover.c +++ b/fs/xfs/xfs_log_recover.c @@ -1723,30 +1723,24 @@ xlog_clear_stale_blocks( */ void xlog_recover_release_intent( - struct xlog *log, - unsigned short intent_type, - uint64_t intent_id) + struct xlog *log, + unsigned short intent_type, + uint64_t intent_id) { - struct xfs_ail_cursor cur; - struct xfs_log_item *lip; - struct xfs_ail *ailp = log->l_ailp; + struct xfs_defer_pending *dfp, *n; + + list_for_each_entry_safe(dfp, n, &log->r_dfops, dfp_list) { + struct xfs_log_item *lip = dfp->dfp_intent; - spin_lock(&ailp->ail_lock); - for (lip = xfs_trans_ail_cursor_first(ailp, &cur, 0); lip != NULL; - lip = xfs_trans_ail_cursor_next(ailp, &cur)) { if (lip->li_type != intent_type) continue; if (!lip->li_ops->iop_match(lip, intent_id)) continue; - spin_unlock(&ailp->ail_lock); - lip->li_ops->iop_release(lip); - spin_lock(&ailp->ail_lock); - break; - } + ASSERT(xlog_item_is_intent(lip)); - xfs_trans_ail_cursor_done(&cur); - spin_unlock(&ailp->ail_lock); + xfs_defer_cancel_recovery(log->l_mp, dfp); + } } int @@ -1939,6 +1933,29 @@ xlog_buf_readahead( xfs_buf_readahead(log->l_mp->m_ddev_targp, blkno, len, ops); } +/* + * Create a deferred work structure for resuming and tracking the progress of a + * log intent item that was found during recovery. + */ +void +xlog_recover_intent_item( + struct xlog *log, + struct xfs_log_item *lip, + xfs_lsn_t lsn, + unsigned int dfp_type) +{ + ASSERT(xlog_item_is_intent(lip)); + + xfs_defer_start_recovery(lip, dfp_type, &log->r_dfops); + + /* + * Insert the intent into the AIL directly and drop one reference so + * that finishing or canceling the work will drop the other. + */ + xfs_trans_ail_insert(log->l_ailp, lip, lsn); + lip->li_ops->iop_unpin(lip, 0); +} + STATIC int xlog_recover_items_pass2( struct xlog *log, @@ -2533,29 +2550,22 @@ xlog_abort_defer_ops( */ STATIC int xlog_recover_process_intents( - struct xlog *log) + struct xlog *log) { LIST_HEAD(capture_list); - struct xfs_ail_cursor cur; - struct xfs_log_item *lip; - struct xfs_ail *ailp; - int error = 0; + struct xfs_defer_pending *dfp, *n; + int error = 0; #if defined(DEBUG) || defined(XFS_WARN) - xfs_lsn_t last_lsn; -#endif + xfs_lsn_t last_lsn; - ailp = log->l_ailp; - spin_lock(&ailp->ail_lock); -#if defined(DEBUG) || defined(XFS_WARN) last_lsn = xlog_assign_lsn(log->l_curr_cycle, log->l_curr_block); #endif - for (lip = xfs_trans_ail_cursor_first(ailp, &cur, 0); - lip != NULL; - lip = xfs_trans_ail_cursor_next(ailp, &cur)) { - const struct xfs_item_ops *ops; - if (!xlog_item_is_intent(lip)) - break; + list_for_each_entry_safe(dfp, n, &log->r_dfops, dfp_list) { + struct xfs_log_item *lip = dfp->dfp_intent; + const struct xfs_item_ops *ops = lip->li_ops; + + ASSERT(xlog_item_is_intent(lip)); /* * We should never see a redo item with a LSN higher than @@ -2573,19 +2583,22 @@ xlog_recover_process_intents( * The recovery function can free the log item, so we must not * access lip after it returns. */ - spin_unlock(&ailp->ail_lock); - ops = lip->li_ops; error = ops->iop_recover(lip, &capture_list); - spin_lock(&ailp->ail_lock); if (error) { trace_xlog_intent_recovery_failed(log->l_mp, error, ops->iop_recover); break; } - } - xfs_trans_ail_cursor_done(&cur); - spin_unlock(&ailp->ail_lock); + /* + * XXX: @lip could have been freed, so detach the log item from + * the pending item before freeing the pending item. This does + * not fix the existing UAF bug that occurs if ->iop_recover + * fails after creating the intent done item. + */ + dfp->dfp_intent = NULL; + xfs_defer_cancel_recovery(log->l_mp, dfp); + } if (error) goto err; @@ -2606,27 +2619,15 @@ xlog_recover_process_intents( */ STATIC void xlog_recover_cancel_intents( - struct xlog *log) + struct xlog *log) { - struct xfs_log_item *lip; - struct xfs_ail_cursor cur; - struct xfs_ail *ailp; - - ailp = log->l_ailp; - spin_lock(&ailp->ail_lock); - lip = xfs_trans_ail_cursor_first(ailp, &cur, 0); - while (lip != NULL) { - if (!xlog_item_is_intent(lip)) - break; + struct xfs_defer_pending *dfp, *n; - spin_unlock(&ailp->ail_lock); - lip->li_ops->iop_release(lip); - spin_lock(&ailp->ail_lock); - lip = xfs_trans_ail_cursor_next(ailp, &cur); - } + list_for_each_entry_safe(dfp, n, &log->r_dfops, dfp_list) { + ASSERT(xlog_item_is_intent(dfp->dfp_intent)); - xfs_trans_ail_cursor_done(&cur); - spin_unlock(&ailp->ail_lock); + xfs_defer_cancel_recovery(log->l_mp, dfp); + } } /* diff --git a/fs/xfs/xfs_refcount_item.c b/fs/xfs/xfs_refcount_item.c index 2d4444d61e98..b88cb2e98227 100644 --- a/fs/xfs/xfs_refcount_item.c +++ b/fs/xfs/xfs_refcount_item.c @@ -696,12 +696,9 @@ xlog_recover_cui_commit_pass2( cuip = xfs_cui_init(mp, cui_formatp->cui_nextents); xfs_cui_copy_format(&cuip->cui_format, cui_formatp); atomic_set(&cuip->cui_next_extent, cui_formatp->cui_nextents); - /* - * Insert the intent into the AIL directly and drop one reference so - * that finishing or canceling the work will drop the other. - */ - xfs_trans_ail_insert(log->l_ailp, &cuip->cui_item, lsn); - xfs_cui_release(cuip); + + xlog_recover_intent_item(log, &cuip->cui_item, lsn, + XFS_DEFER_OPS_TYPE_REFCOUNT); return 0; } diff --git a/fs/xfs/xfs_rmap_item.c b/fs/xfs/xfs_rmap_item.c index 0e0e747028da..c30d4a4a14b2 100644 --- a/fs/xfs/xfs_rmap_item.c +++ b/fs/xfs/xfs_rmap_item.c @@ -702,12 +702,9 @@ xlog_recover_rui_commit_pass2( ruip = xfs_rui_init(mp, rui_formatp->rui_nextents); xfs_rui_copy_format(&ruip->rui_format, rui_formatp); atomic_set(&ruip->rui_next_extent, rui_formatp->rui_nextents); - /* - * Insert the intent into the AIL directly and drop one reference so - * that finishing or canceling the work will drop the other. - */ - xfs_trans_ail_insert(log->l_ailp, &ruip->rui_item, lsn); - xfs_rui_release(ruip); + + xlog_recover_intent_item(log, &ruip->rui_item, lsn, + XFS_DEFER_OPS_TYPE_RMAP); return 0; } From patchwork Mon Mar 25 22:07:06 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Catherine Hoang X-Patchwork-Id: 13603065 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.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 601B170CC8 for ; Mon, 25 Mar 2024 22:07:50 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=205.220.165.32 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711404472; cv=fail; b=ViKprwTuppLupONFH+JI7W1E+fGO77Bk8DUdNbj6KvvQA/fUxRGIw8Y1klm/y/h66aoLaGmMrXzqEMt7jOUNX8EgyrB2wBoSQ3Iuxz7T88gTl63DGwPK2Lv7XmGVTIrAjpuKXkKXwmpCvwo2coP5nOxrQxHIIl4LuxDTbZe1Y5Q= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711404472; c=relaxed/simple; bh=JrmZSWiFaLuUuMxdo1qc6+NmRd033gC7WQHcoqIrPXI=; h=From:To:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=WkILJmGepdShzDWxnNJXc0wzcoN3mj2QPs3Ltd3VigKGKt4/yOB1nB61LnEshNV04Du4dLKo/n72KNO2WdeuJhdMlfAKmaWpMGLVYizbLYXRQrhoT+h8WCYFud7Vj/wVdAUEyCVBlaa6bQCiMh7sNz1ATcU1jNoSH3DO+Do7sSs= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none 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=MaLhVQbz; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=g7u4i7QT; arc=fail smtp.client-ip=205.220.165.32 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none 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="MaLhVQbz"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="g7u4i7QT" Received: from pps.filterd (m0246629.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 42PLFtGj027130 for ; Mon, 25 Mar 2024 22:07:49 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : subject : date : message-id : in-reply-to : references : content-transfer-encoding : content-type : mime-version; s=corp-2023-11-20; bh=/sqs684xErVXEx9ewTWjS/Y9cD7ZGJLSDw5cAre1a9I=; b=MaLhVQbzlEImrSrupP+GpqAwTMDwXlgIw6a29h+R7hXAL7wKmkS6IDoa1MzsDweRlnWo hyucQrHElcA1VwnQGm/iukQXsclHM8f7ydKxSaF8hhwuQhiCU/IcptTfqH2dWiuGVYJ/ +38yqMPDR2VHUo7zIecd2ZhpU7FvCo3qY6RMJdGFTxYBPUjzCJaj7DfkFXXKVVP764cL LoaxqcZlscSwL1zT8xK8G2TNNAbHT7U7OuQMzljpvZtkUJSX29CvMW3dCBVBXXDqJ51E VpEGgsT6cIWnOSiwvFTa6iDYoBIYD/1D5XFGeD/ImxsldsltADGroLXJsIIf6mVuO7a1 tA== Received: from iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta03.appoci.oracle.com [130.35.103.27]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3x1pybkqhx-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Mon, 25 Mar 2024 22:07:49 +0000 Received: from pps.filterd (iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (8.17.1.19/8.17.1.19) with ESMTP id 42PK9EIC016177 for ; Mon, 25 Mar 2024 22:07:48 GMT Received: from bn1pr04cu002.outbound.protection.outlook.com (mail-eastus2azlp17012018.outbound.protection.outlook.com [40.93.12.18]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 3x1nh64r4k-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Mon, 25 Mar 2024 22:07:47 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=ZnSdwe2WZPycK7/JwC/siKYhAL1W6yFQnEWMyTbTpP1KH7JdAHLXtYLnwG7r8hXWVBG4q/gRfUHd/io+AWpqWkBBJ+NYcXXqqFVFu/qZ1pZKSI1zHjw0l8IM7a2fJXm907fJiOiJJhjd2W2rbMAZPjhn7UyaUt++uCNou+GrOlI/FcEL8iClWaLGp14GPbt+qUTHU6sgk0nqb9m3R/lJRXClxLrFzjYhdPr92lyGmIcYkv0zAtINMgkzd6Q6sNIZ1X8TH1oR6aWGtnUAaFx3zp16/QQ0z8sieDW/ESgSiCnGw8CWvXNlg3LDvnkKFODxRyPom57I9sjmymZPoQtNNw== 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=/sqs684xErVXEx9ewTWjS/Y9cD7ZGJLSDw5cAre1a9I=; b=ilmXyVhAIXHGZATkMSEIPgO43+/xFx+6/5HaJB3ARJ+oGBQ0FKoXTGf1/HGApmRS2mj7hdYJa5bk55sBbfN0TK1oQAgiQ/zZTWQKpGYJ4D+sBjQwR481+gRZRhhfQxsuZajqO9V6Ad6BORO1owJ+3zgTE/35gtXcsnoyQzHGogSmWfrB0C4f1AHOLBaSvY9BpUoWx7ICTkEmCtS8mksJRA64tqiu+dpzebPbVaPQOTIeeto6VFbASfxmB/+DZ0sastdIEyx3NQRUNBpeygDAhbEuL491gIPCDc2GxC8vHU46dUJob6q8pBn1HLRkTap/bAna+Dt4w7U/pz02Pkdjtw== 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=/sqs684xErVXEx9ewTWjS/Y9cD7ZGJLSDw5cAre1a9I=; b=g7u4i7QT6pSBUiHS28lzcmu810T7q3GRk+5y1kQ0NyF/mpGeDkywZnF/O6uTmg0eoFf+9LqoeDr7ufPisUlAKAnE6DUYZ/TAfCK80w7sT8g9q5kVpkZAZIF8hIB/2kQw0ni93P9M72Mr/xgKSoUrkql5ENh92xcWs8UNl3lxdl8= Received: from BLAPR10MB5316.namprd10.prod.outlook.com (2603:10b6:208:326::6) by DM4PR10MB7476.namprd10.prod.outlook.com (2603:10b6:8:17d::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7409.31; Mon, 25 Mar 2024 22:07:46 +0000 Received: from BLAPR10MB5316.namprd10.prod.outlook.com ([fe80::404e:f2ff:fe2c:bd7a]) by BLAPR10MB5316.namprd10.prod.outlook.com ([fe80::404e:f2ff:fe2c:bd7a%4]) with mapi id 15.20.7409.031; Mon, 25 Mar 2024 22:07:46 +0000 From: Catherine Hoang To: linux-xfs@vger.kernel.org Subject: [PATCH 6.6 CANDIDATE 06/24] xfs: pass the xfs_defer_pending object to iop_recover Date: Mon, 25 Mar 2024 15:07:06 -0700 Message-Id: <20240325220724.42216-7-catherine.hoang@oracle.com> X-Mailer: git-send-email 2.39.2 (Apple Git-143) In-Reply-To: <20240325220724.42216-1-catherine.hoang@oracle.com> References: <20240325220724.42216-1-catherine.hoang@oracle.com> X-ClientProxiedBy: SJ0PR05CA0141.namprd05.prod.outlook.com (2603:10b6:a03:33d::26) To BLAPR10MB5316.namprd10.prod.outlook.com (2603:10b6:208:326::6) 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: BLAPR10MB5316:EE_|DM4PR10MB7476:EE_ X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: jBUnv7XKLxWCHq47pxP0ev5Mu3AmTwO2rDH0xl1NnQtAU8IH+8pbu4nANrpPrIKPgE/56yKpsjSPAFEfsYzU/61X92zraKIYezqeGLlSjVllECJ0w97DLmaLCt5F5dWvdwo5cW+ODrogHP86pe3f5nvALdbUbqjtWOGXIskqzmRjn/EAoU/+3lbq1lzZ9xKTLX8Q2674F1SG4eOboM6BQgw0giErz1sfyV7cYNZk4wDC4THYBd5s7vwQylN9jP0bX4IVqcZ8lxTqvUz6axn7r5FgGQQ0oBq2WfjiQcQzcrsgCgD3XG4ys/73ogekPXkOwS89Zz2cz14xwRYiOS2sIJssgaDOZt4Y0g7BF18XnbmPVBgYM/EwmQNnFO9DTnNzK/j6sO7qU4jlDQbtHsbmbwIEkqmITbC/ivdMzAYXHX+i9QJceCYRlM2dHc731nkzdf65OQkZJnk/7f8DvnQZgef9WpU6HO/mvMi3RwuoubpRnhu6vCqhTXhlp2wA/B+5y8XqbiOfDcxpPHqFItb6UWd3y3HwvT+yNRRa3k8nUiqcNzmjPD2qfZg8RGoda62/WNAAKqnbxvWVXotG1TzB2Mkdh7dkcFLz3swF/oS9scZ7sGZE5BSbC+URWosFQHnuA59BgdWs6R5EqQr8n7hnPO8x8WSSmeKtu2L04Le+Gns= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BLAPR10MB5316.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(366007)(1800799015)(376005);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: 6y9ZPKq7HMmykKTcltmmeQVso2kesoT+oUHUHgJdBJEdUDrMWnu1DVDGZP7/PwbvZnziVGXi9DA0eHofTW/3gCzNJotOMVcozRiFskgcAmI+8cTfvyzYbWgztCNTrr5NKeHuYYRt0NO9jNDKaQU6++e9K+kPb6sat/2dELxzTx+TcYPPer3CR94n8YW41oNA9pqjohGnSpwMadzgdq/4IfBhXGwDGESihBk1oGduGpU1M+sbGPWUNLC4x9pR2uCqJFTrUnPOQGHduwacfNSHtJo7vc2Ppt5Rta6wnyIhAcIoOswGE9tnkslSk3M9OubYuZfGxennATa0VZ2IgZ5wXAWPdSlnQN7bcd2IFQwbk2rGQuuQnFkqd9NZMO2x2nV6Mjb7E4DCHMOQoeuo5qZnu9XxHjwWyNwf+Tn9J/HcYDmCbWN+ct8vBKBnFmrt+mbG5t8ZWri52f40IFD4/vygiZ8QL93p9GJu2Stp6Eom+/tPqnYJ+4wQ7XEE6sYD5wEDKeFgS4LbSB0l/1QLSsMXJFghRv9rj6JO2AIV5VNVgAWOwDyDTqHCKRR6Erh4AUESMGlpsBTxugaoi/eUToScc4qU/XoTbAJowfXomrH7QZmkNhSVB0bh8NnYN6bpVI3b8VBtZk6Bd6sBz5G5Ea5+E2nWSpm3G9jK9hy44FrZUBRk+U3eEOR3qF7dvEAMtLlYiwF0khXw9u3xgOjnUF0zXjh5ExSV6N1YCdeV5AYMt9VHb+uSJ8VY2+VqWshitzLbB8xH7uwoG7WjMDMhPfPa9TleXUYleAm+0+9DGNE+xu3EVWg3YthfBA5jnbJ6rg0L90A2iA52Fz1ezmLYLCgxhjDQtdstOQ2bJDpP/F10UkXtaENvUizNq/E1iUVy3T7RHHjEuF/JQtaMmk7qopON6EMjEBNBNySMwYz43RZEGyIO3KT/4F7kYYjoW41TjvZGmarJmjNoCA70mqFqZxY7psAAZBUoHTdJxlnS0SwB04QNE23llJneU95NC+561DxxYQRvQiHDPb6IL98BaA3VpX7W7oRWAYD1g+6ID1YrJLFu4D0YNU9GlYI3cN8IUtYBFRu6zVlj1aaCAS1TzmCklkOoyBfysKlau3ZwmK2MmOFhBDhiJSyxadXLD8qzkmdJAlTQORqMivTDDmQ9R5BNPoLc7hGJSOqvM9uSbweRLTFg0lIoaAUSIo2xTIHDxHJLG0JBHkvxKTSXa7J/lopzdIKS+S7eM3+vcnpcu+q4AtiF6aTXZxWoPL9JmDmT0GrJnCymn0G6jin7gKa6Ris/DOOrcHCCGrHBN1QbBaYdAQfBHp2S0d+2n5z03WdR7RP2+weUiAwqG5eoXk46bj6K1z8tv3enV54Ibwo+i/a7BjNmTrXWvuUBC9yxiZSFjBvUIfQ6XSzr39BsrXpsN8Nhh7UUmBSPc8NwRXqiPXyfTBFX+kBCI4ZqP1+Z1b+tbxecYL/aCrALkQIXns/VzmVREGNdNSJkiUHck7oEzS96umD9UNmIXifrSypwLXZcPpsr/Dozzzhxi5zTp2GUVP3eO1wO4N6XAuQJpbwX6qTufs5BPlKwZkPBHo0wocdfqHDvKqylYfrFufhlxvqnFuQO2OIoJ5mNDW6rt0AKa0Qk1FztnQ4Z6Z0PPs7LuoR8upq988PA7z3kQdIWlzsGsCyz+g== X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: 5u9E3BuZpE1SC01BaEtINj6tmzjWXvZR+0knX2Q5XIzEkT1YSr49rR4nMcFziLTqrW6dIJJ7vLkISvsx7TQ/w0TZU7bNd0fGv03rbtfnEBPV5A67WlwApuNHzmbqK6ItHwgLVdhhXDc1ZNeDuubEPARPIxNTdX3xBn+5IwM9mwzkhF8CbzKt+FZ+yt9Bec8kj/rdQVXOt/d7o0qJF7PAALbdOU+zhyfU4bm/eqc0pl5VXkUsVmAvGDOllr6Ihi/BfF8PasdkFfUL5NY6ky/GxfJyLfQvtzIWcuDrAs55ycKGuxgB00M+ZCNcxj6xNwAlqIqdgP/CW+Hgb9y49ELu9bKs1jYRDyQSbMygq3R/xkqVO60LXmcPYXDgKIod/ZTkIwaxcg1n5iOMAJPxDGctdq+asy9j73OGRQIwQ5l3bLMRnOTO5/C8y2kaw9oFNfu/lIuy3JRU9G6TRHTvQJ43GYYaO61PDZ3PDoxE8RDKtWggeAsdCfjNPhI9mmAtdwwwWIsns2zuTQA/JvXOl5irvAWGHCvQ2PPwEW2Ip/0F73//e8SqbX9JLZt1A+69cznSg0XXsX0rhfOp+vbRWiOSNqQMH82Deg512Co+fjWoxAA= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 7fd78702-44da-4409-b67a-08dc4d180084 X-MS-Exchange-CrossTenant-AuthSource: BLAPR10MB5316.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 Mar 2024 22:07:46.4313 (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: 4cfUjRZ7xlRQmff6g/Vwy2RaU8hntZyuLnbWDHdD3YTfFqkCJDjrcrOqTb8atk2iI8IzE5GvhtJ2JnnsClk1kcfYjrn1/nxBZCbej4WlKXE= X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR10MB7476 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.272,Aquarius:18.0.1011,Hydra:6.0.619,FMLib:17.11.176.26 definitions=2024-03-25_22,2024-03-21_02,2023-05-22_02 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 adultscore=0 malwarescore=0 phishscore=0 mlxscore=0 mlxlogscore=999 spamscore=0 bulkscore=0 suspectscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2403210000 definitions=main-2403250137 X-Proofpoint-GUID: xtMnSOGHs0mNWDPk_p-FVzoIaBNXXx__ X-Proofpoint-ORIG-GUID: xtMnSOGHs0mNWDPk_p-FVzoIaBNXXx__ From: "Darrick J. Wong" commit a050acdfa8003a44eae4558fddafc7afb1aef458 upstream. Now that log intent item recovery recreates the xfs_defer_pending state, we should pass that into the ->iop_recover routines so that the intent item can finish the recreation work. Signed-off-by: Darrick J. Wong Reviewed-by: Christoph Hellwig Signed-off-by: Catherine Hoang --- fs/xfs/xfs_attr_item.c | 3 ++- fs/xfs/xfs_bmap_item.c | 3 ++- fs/xfs/xfs_extfree_item.c | 3 ++- fs/xfs/xfs_log_recover.c | 2 +- fs/xfs/xfs_refcount_item.c | 3 ++- fs/xfs/xfs_rmap_item.c | 3 ++- fs/xfs/xfs_trans.h | 4 +++- 7 files changed, 14 insertions(+), 7 deletions(-) diff --git a/fs/xfs/xfs_attr_item.c b/fs/xfs/xfs_attr_item.c index a32716b8cbbd..6119a7a480a0 100644 --- a/fs/xfs/xfs_attr_item.c +++ b/fs/xfs/xfs_attr_item.c @@ -545,9 +545,10 @@ xfs_attri_validate( */ STATIC int xfs_attri_item_recover( - struct xfs_log_item *lip, + struct xfs_defer_pending *dfp, struct list_head *capture_list) { + struct xfs_log_item *lip = dfp->dfp_intent; struct xfs_attri_log_item *attrip = ATTRI_ITEM(lip); struct xfs_attr_intent *attr; struct xfs_mount *mp = lip->li_log->l_mp; diff --git a/fs/xfs/xfs_bmap_item.c b/fs/xfs/xfs_bmap_item.c index 6cbae4fdf43f..3ef55de370b5 100644 --- a/fs/xfs/xfs_bmap_item.c +++ b/fs/xfs/xfs_bmap_item.c @@ -486,11 +486,12 @@ xfs_bui_validate( */ STATIC int xfs_bui_item_recover( - struct xfs_log_item *lip, + struct xfs_defer_pending *dfp, struct list_head *capture_list) { struct xfs_bmap_intent fake = { }; struct xfs_trans_res resv; + struct xfs_log_item *lip = dfp->dfp_intent; struct xfs_bui_log_item *buip = BUI_ITEM(lip); struct xfs_trans *tp; struct xfs_inode *ip = NULL; diff --git a/fs/xfs/xfs_extfree_item.c b/fs/xfs/xfs_extfree_item.c index cf0ddeb70580..a8245c5ffe49 100644 --- a/fs/xfs/xfs_extfree_item.c +++ b/fs/xfs/xfs_extfree_item.c @@ -657,10 +657,11 @@ xfs_efi_validate_ext( */ STATIC int xfs_efi_item_recover( - struct xfs_log_item *lip, + struct xfs_defer_pending *dfp, struct list_head *capture_list) { struct xfs_trans_res resv; + struct xfs_log_item *lip = dfp->dfp_intent; struct xfs_efi_log_item *efip = EFI_ITEM(lip); struct xfs_mount *mp = lip->li_log->l_mp; struct xfs_efd_log_item *efdp; diff --git a/fs/xfs/xfs_log_recover.c b/fs/xfs/xfs_log_recover.c index b9d2152a2bad..ff768217f2c7 100644 --- a/fs/xfs/xfs_log_recover.c +++ b/fs/xfs/xfs_log_recover.c @@ -2583,7 +2583,7 @@ xlog_recover_process_intents( * The recovery function can free the log item, so we must not * access lip after it returns. */ - error = ops->iop_recover(lip, &capture_list); + error = ops->iop_recover(dfp, &capture_list); if (error) { trace_xlog_intent_recovery_failed(log->l_mp, error, ops->iop_recover); diff --git a/fs/xfs/xfs_refcount_item.c b/fs/xfs/xfs_refcount_item.c index b88cb2e98227..3456201aa3e6 100644 --- a/fs/xfs/xfs_refcount_item.c +++ b/fs/xfs/xfs_refcount_item.c @@ -474,10 +474,11 @@ xfs_cui_validate_phys( */ STATIC int xfs_cui_item_recover( - struct xfs_log_item *lip, + struct xfs_defer_pending *dfp, struct list_head *capture_list) { struct xfs_trans_res resv; + struct xfs_log_item *lip = dfp->dfp_intent; struct xfs_cui_log_item *cuip = CUI_ITEM(lip); struct xfs_cud_log_item *cudp; struct xfs_trans *tp; diff --git a/fs/xfs/xfs_rmap_item.c b/fs/xfs/xfs_rmap_item.c index c30d4a4a14b2..dfd5a3e4b1fb 100644 --- a/fs/xfs/xfs_rmap_item.c +++ b/fs/xfs/xfs_rmap_item.c @@ -504,10 +504,11 @@ xfs_rui_validate_map( */ STATIC int xfs_rui_item_recover( - struct xfs_log_item *lip, + struct xfs_defer_pending *dfp, struct list_head *capture_list) { struct xfs_trans_res resv; + struct xfs_log_item *lip = dfp->dfp_intent; struct xfs_rui_log_item *ruip = RUI_ITEM(lip); struct xfs_rud_log_item *rudp; struct xfs_trans *tp; diff --git a/fs/xfs/xfs_trans.h b/fs/xfs/xfs_trans.h index 6e3646d524ce..4e38357237c3 100644 --- a/fs/xfs/xfs_trans.h +++ b/fs/xfs/xfs_trans.h @@ -66,6 +66,8 @@ struct xfs_log_item { { (1u << XFS_LI_DIRTY), "DIRTY" }, \ { (1u << XFS_LI_WHITEOUT), "WHITEOUT" } +struct xfs_defer_pending; + struct xfs_item_ops { unsigned flags; void (*iop_size)(struct xfs_log_item *, int *, int *); @@ -78,7 +80,7 @@ struct xfs_item_ops { xfs_lsn_t (*iop_committed)(struct xfs_log_item *, xfs_lsn_t); uint (*iop_push)(struct xfs_log_item *, struct list_head *); void (*iop_release)(struct xfs_log_item *); - int (*iop_recover)(struct xfs_log_item *lip, + int (*iop_recover)(struct xfs_defer_pending *dfp, struct list_head *capture_list); bool (*iop_match)(struct xfs_log_item *item, uint64_t id); struct xfs_log_item *(*iop_relog)(struct xfs_log_item *intent, From patchwork Mon Mar 25 22:07:07 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Catherine Hoang X-Patchwork-Id: 13603066 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.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 02B2071747 for ; Mon, 25 Mar 2024 22:07:52 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=205.220.165.32 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711404474; cv=fail; b=lDPKQ7VQP7KV8lwCZMk034AK414iGmts90UKNu2VAPA7MQCgpzIR/C+eElrsz2ikMU0w/2Gs+QtHyZ+gZUq9Cl6yOiu/jK7OCRrbAMhl6GcHpOUNRtABKIYmf3Pckfurl41ooT7Zd85wBHFRNGVszeMtEos8MZpGvRbLsu2W3rM= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711404474; c=relaxed/simple; bh=E/T+PN4/7W5IQsnZbVOj3oYtmT9OMWoZcTsF1K7Dhwc=; h=From:To:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=pRVwm51jOm9uiaIrbLCsQXV9E+2BKepwmmPsJzuWb2ceR1pKzNB4wtjlRLT/wPZB4iMsJeDuktTElM+la1YO0M8QiefetknVb8J3sePwY5EPcVOikg2d/qUg1EUDSN30LHLL43bMG/WintSj0XILNu+VBU2GoXoNYoJeWzwGdtE= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none 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=Q4SAeWFx; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=xZWRS+Tj; arc=fail smtp.client-ip=205.220.165.32 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none 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="Q4SAeWFx"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="xZWRS+Tj" Received: from pps.filterd (m0246617.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 42PLFuQv012492 for ; Mon, 25 Mar 2024 22:07:52 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : subject : date : message-id : in-reply-to : references : content-transfer-encoding : content-type : mime-version; s=corp-2023-11-20; bh=8e7ljh1M+YKG3vohNJMAR2I8qRLBTu62ixMOdtt7SXo=; b=Q4SAeWFx5LFooFXfO1BbO3eEZoWsRJjlvOgc9K+HshL2neaCt/tHGwQhxg3iofJi57/w g1YykZnDSZ7IXPz7Rs30/EAvqOz/WstF8DddUUsM9eDuhdqnThjLZzgYA+WlFI2aTM8W Hzdrz0QnR1C+L5ZOB+lAhc4wopJ3kPs0wGo70/tmYc1TrzZZ1yoetBU1suxcBGfQjO7I DpzjbM6YNLWbDS50acAhDZbQLT7koKdgR/JSz8nYl4R34TXGyPNR5oT6N2zevCiknPu1 rVTt0Wc9pzIIh27EocHtHT9cPl2+MqcVaw83ra5CrSaoILV0fPQE2aAwKmQRHofCgs+X SQ== Received: from iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta01.appoci.oracle.com [130.35.100.223]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3x2s9gt7e8-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Mon, 25 Mar 2024 22:07:51 +0000 Received: from pps.filterd (iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (8.17.1.19/8.17.1.19) with ESMTP id 42PKIRun024375 for ; Mon, 25 Mar 2024 22:07:50 GMT Received: from bn1pr04cu002.outbound.protection.outlook.com (mail-eastus2azlp17012018.outbound.protection.outlook.com [40.93.12.18]) by iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 3x1nhccqke-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Mon, 25 Mar 2024 22:07:50 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=P6FHlJvGsH6GRSbh37kEeY2clYtJc7HbaU/1znHTB/6SwZ/TgL15zKX6uTOT0RD01puNyHD0Zun50D6RAWEJH6e2JawE2SbmVgAMSGttJ23JoLxK4o3T1fKzxpBuzjPf/e/6pyHIPJC50IkntdjRU5ytLsNEgoz+hZEDiRavupHL36CDFI5GJHP3tIl4eqFPStYo9d9kp3vkUA3fGsnRX4wFnqB2R4TzIL9DZmZE50GcIx2b1xutoncRiQp9QHU/p17DHmMvDiMg57+NOFkgqaupjJeAEvkQcm7m6WtRzeb3cKL6wlPtVNCO5Qc5LJ2W2HYc5Dd5JAv22v1o8jNWlA== 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=8e7ljh1M+YKG3vohNJMAR2I8qRLBTu62ixMOdtt7SXo=; b=edkpfM67wx8PAR59zhKLzmesSiG6Xo9IfMnCXuRie0/ratcY77xJmz3CcSkUcA7I/TufoHZ8psGduT6UX1yg08ZoLiKoUVU4a6gQTHYeRmEmyTHbvxJ68O/mHYxJAeUin4bV50TCHedSuLlVp6v77Cq9kVqimdV4S6Eqr9cM26Ro+X+WKyaP4WlAy09g6p+oDWuAYWJ0oRgrO88TpU8aRoxNxD1sjPex4ZyAfeP04FtYvsZpoKkSaHWZGz+BoSTrGgY1IvAOdKo8eAz0Vj+hJ9To5GMMP0jzppVjG2zbTUkvdSK1TZmrYNL1L1ErkjxWaQUrzD8SldUk7mkCgevXZA== 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=8e7ljh1M+YKG3vohNJMAR2I8qRLBTu62ixMOdtt7SXo=; b=xZWRS+Tj1R7jWPYR/VWhPdOY+5iuEFSd+nD9wZMsKT+iOyOb3LLs8VNQh4Ag1R/A16/pyVAXhIfXQ29iUQvFzQhXt/dE9qu5zBkbRywsZ0tIVokUvDWqAUl0dQoYO6fDWt/IEKov9zz/NbqJu4UrSO6EKk8VqZkGl8ywLrbpnlU= Received: from BLAPR10MB5316.namprd10.prod.outlook.com (2603:10b6:208:326::6) by DM4PR10MB7476.namprd10.prod.outlook.com (2603:10b6:8:17d::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7409.31; Mon, 25 Mar 2024 22:07:48 +0000 Received: from BLAPR10MB5316.namprd10.prod.outlook.com ([fe80::404e:f2ff:fe2c:bd7a]) by BLAPR10MB5316.namprd10.prod.outlook.com ([fe80::404e:f2ff:fe2c:bd7a%4]) with mapi id 15.20.7409.031; Mon, 25 Mar 2024 22:07:48 +0000 From: Catherine Hoang To: linux-xfs@vger.kernel.org Subject: [PATCH 6.6 CANDIDATE 07/24] xfs: transfer recovered intent item ownership in ->iop_recover Date: Mon, 25 Mar 2024 15:07:07 -0700 Message-Id: <20240325220724.42216-8-catherine.hoang@oracle.com> X-Mailer: git-send-email 2.39.2 (Apple Git-143) In-Reply-To: <20240325220724.42216-1-catherine.hoang@oracle.com> References: <20240325220724.42216-1-catherine.hoang@oracle.com> X-ClientProxiedBy: SJ0PR05CA0142.namprd05.prod.outlook.com (2603:10b6:a03:33d::27) To BLAPR10MB5316.namprd10.prod.outlook.com (2603:10b6:208:326::6) 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: BLAPR10MB5316:EE_|DM4PR10MB7476:EE_ X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: RzJAerU6A39eYD0MmKbm0YJ6JFoJogkd4PbBfmNAljzdSuzUbD71RaGJ/wpf8oWFtLOVZhKyLNA54jtR6uxMOQ3UgOG87KQCJgjgQw5MQ9TU09tNNLwN23PIw4rSpTZYbS5tEiKXT3/AtmzVPpCIDnXvt6JyQqEyAziXdLcStKjzo1lqH3krYg7Ol0aO28bf5kju0x3/0dBs1PhWS2Fx8RHTwhqk8F6UEwh99Gvnsthi1QYrXEJqgBx1BpmLd45HIUIQpG29XWZKWddMm8F+5+dqeuQKHieyI8QF0Tpf4LKEBwjI3jGsqUmOshgertXOwxVKA35CoaU+vEybS3iy9KtWRl3dBsLl2J7WorGqVH2D3uUh+ejLSyjYL6gejKA0ezamdbT/nDlHZ9+fESfDfIkKLmkarnct1Y0vS5ubnvuCzuQLbBwLdYDVqrWwYqbQCLSdTavwFmnuy67o1omWg+07cWCu/AFNIbKU/6k9mSQlrdngZSDtTMocLHYC9VYdwExgxN2Ehvr9vvdjqyYo+9Filj6XBFmjVoPehsbRcwx3Qfh80dyTVsw0qz090LgcVjWF1KA6kIfJRv0xYV9x+N1Ervw7eberSI/NyqQ9hIKVnG1tvZS8cT4DBJ2TygN7Vz6BziXoRw2IGSyQc1O+i7qvCY/dBReaDJFzOOoT9eU= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BLAPR10MB5316.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(366007)(1800799015)(376005);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: /WTmKi4MBv5w+UfD53Za1xwwhbAYb7TMbq7Bf1H951n+9npKtC5qRO2QjxY9lCP24LBUs32dj3iLfLbmU+VFamEx6YVPSoxSeddt8M+vgLyz7glr2FWUaooo2i0DcnjPnswFwhM1WgakrTbAvKrYlP/9cFokTVUUr8yXr2VtPsJ8xR0YOgoL0QC0d2DyUWLUBhVWcp/CNepDneyNj7u2t0AHlEPSYibL3SpwcQmZ2cyz7HxMl766OoKH+jJgm179O17SYLcn6OBkwDtiYTZL9U5WC14+DxZ03tKMaMiPGX6ZfBkLR293ugcbScpTPQthv/J6VtDli2sl9D4otI3kgvdYGgmBYC4r5JDr3D8xckWfOAZ5RHdd0PuFgXhBRp+P/MGKd/akdU1dGmO3OZB9HAz8TDZ5R8Ax97JUjijgBHLe4Sp0PeYBWqjvzqNzOSSnyZ0V/ArHERt1XGlZUpSWDrucDeFXyLk5y8BMu5JgUTaIQoJa4PnaR2IgTChb9wjcpKvysRsN02I8UbU9vvfYJCXtj2SMofsSWxZ/d/7MNYpEg0NjAHWsfPkhjYE9/e80FY7F2/LIjQ8JdszPnH9d4GbjrT6BvgW25S2b8TuFQhpdQ/HFRjktc0sTHxUzZHiO/TGEza/4o3wCdEIFUu/PDmGiQDHsAo7aVCYm6cb+9g5IvL7ujbLn80f+k+brLBUoMRqioNNY93ZA9i4c3M22ZUX0TM4FMCj7bbPHn1aAKrRPtg5DiEicuw85q0U8mfhh3g5yXYRWWps3h5W3mxgNXlj+vKiE/4qML/RdiFhLHSHXGPJwUKHtOvdI6pgDm73AG55ErnAcCYfizm+WJfwHXXWnTabVWk9PQ8ZRvh8qsnWUuLTzNAoomGGC/FS3RCgGB4KR6N32XXFLjvbwiAMNOO28V3/kjGJvZs7AZEE/Xyhfm9ObKdiyuV7S7liHzkftO81KBUlzRIRZ6/a+Hsa7r/8cvlpIjQMMgz76LbVdnbdvNEbIoExUDnBgrAY+TBt6g9qAF9/oTPZaHH/NQ+OIeiSbsKkafJoszfFnt0oz+eAivRBF2D2HZO6YMqStI1Ybhn9foP12a3pk+BzScl5u+IyVZznlm+WhjNGe3fp9dnrV/rIFV4Rz83ikibuM/c9ibTl5GMhrzC8mgx2JuCreE07C0NEVP/mU5JaGS46kDlWWrfMeePTqrR0Oy2nQTqXjxYJ/tMFmE3yaT7GcO2BABtHNOXNDO+De+cqUP6amkQvtVXvDuGp23T/D6oRacl58/crgBSf68ghK2WC0XVXtzIDOGOVR770W0RaR8mNJi9YCePFidR96Hjo20WNZxW50fzQ5kd9vlxs1vbbHQCWz+Pz23+wDXZkNGiz+itoQNwl2ZN2KuzzD2hlGWtXY3BPHnLaFPezQ4nY/CFNX7F/DnzLwXlvtjeUjOSe+WY2gK+7oXt5zl6v1P9flkx0wUU52FvkqGjsGLXv043YMAkw619NdbQ8aJVzY/YHf1l6YLzKydTCksBXFDHfUX+6u45CnpZ50fbm+dfqLP2Seyrg9vg9/vXv6pb/mxxlkjXzFBNJVGhCdywMkoOCe3sU6sX4ITaaEAncYZGQX8Wzz9KqItN3/9jUggLImN1Mf5Jk4p9uLRAOYjZiBQLd0FxOarUrklxwCwK6ERGvV01SBsIuFUw== X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: f/pSGS591ra+fmSiqjrpbgX8gPEJh5jPPAnZhTE0HUnsHsjTu8HrKwEvGrsTucqLC/Az+7L9La0ywpROciKn7tDqLXE1jZ39UyxnKZ76eYcGQND+Adjh0tElVbrwJwwjWqeDn93fppLUgBIEXTmolv5yGyxExuYdIlPX+m4i78uxSzryY2OO7kWW02QfGtNRBL6EfinpRWEoic7k0QTAQ3jCaJyS72RbSLRAlPYXMlLQHKmHtpR47t24VS48+A38Yo6MV01ceXLoq03bTQY74c68tcvVI1UDtYIcExS4oR1ykr9QfJB5goMOczaMtQs9TU9v8a8/7sONbYVMfVD1+jDUdH1XjMuKxy+Rk3NTaOOHy7/UGtE3KW/c9HzO4v+0+DiQ7ieuUn6NGeuzt2QDPg496IPk17m+34FobdYatfqgcTK++BW6DK/rRlsvBjaAfRl1+shQiwTmPc0ql9L3Jx/tUiDerzufgqSTs1T01PKHIl9V32x9JvMz0yWq0r2DQkewwhn5jDNogF8yLbCm+5QS13vogtEs9Dz+GG/sHvTcRuT9eC1LlHKMbW36e0Y5l9B9wGoY4GeK9W+iDoU2OmyMOGar6KQYalm3+Aj9FTU= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: eb465407-c0ee-4a57-9451-08dc4d1801b7 X-MS-Exchange-CrossTenant-AuthSource: BLAPR10MB5316.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 Mar 2024 22:07:48.4728 (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: AlMQpq5gpRfMui+SRvF1p7RmqUKU7L0wnBJenUQfSJSNtdWM5/pF/uFsbOHt/pR2g4G6ZdnkOKqZZvPt/m77UvDqXomppmomgDhEEtdFo0M= X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR10MB7476 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.272,Aquarius:18.0.1011,Hydra:6.0.619,FMLib:17.11.176.26 definitions=2024-03-25_21,2024-03-21_02,2023-05-22_02 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxscore=0 phishscore=0 suspectscore=0 mlxlogscore=999 bulkscore=0 spamscore=0 adultscore=0 malwarescore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2403210000 definitions=main-2403250137 X-Proofpoint-GUID: DdyWBLYkycDk6j4zFy256yoUL-26psTQ X-Proofpoint-ORIG-GUID: DdyWBLYkycDk6j4zFy256yoUL-26psTQ From: "Darrick J. Wong" commit deb4cd8ba87f17b12c72b3827820d9c703e9fd95 upstream. Now that we pass the xfs_defer_pending object into the intent item recovery functions, we know exactly when ownership of the sole refcount passes from the recovery context to the intent done item. At that point, we need to null out dfp_intent so that the recovery mechanism won't release it. This should fix the UAF problem reported by Long Li. Note that we still want to recreate the full deferred work state. That will be addressed in the next patches. Fixes: 2e76f188fd90 ("xfs: cancel intents immediately if process_intents fails") Signed-off-by: Darrick J. Wong Reviewed-by: Christoph Hellwig Signed-off-by: Catherine Hoang --- fs/xfs/libxfs/xfs_log_recover.h | 2 ++ fs/xfs/xfs_attr_item.c | 1 + fs/xfs/xfs_bmap_item.c | 2 ++ fs/xfs/xfs_extfree_item.c | 2 ++ fs/xfs/xfs_log_recover.c | 19 ++++++++++++------- fs/xfs/xfs_refcount_item.c | 1 + fs/xfs/xfs_rmap_item.c | 2 ++ 7 files changed, 22 insertions(+), 7 deletions(-) diff --git a/fs/xfs/libxfs/xfs_log_recover.h b/fs/xfs/libxfs/xfs_log_recover.h index 271a4ce7375c..13583df9f239 100644 --- a/fs/xfs/libxfs/xfs_log_recover.h +++ b/fs/xfs/libxfs/xfs_log_recover.h @@ -155,5 +155,7 @@ xlog_recover_resv(const struct xfs_trans_res *r) void xlog_recover_intent_item(struct xlog *log, struct xfs_log_item *lip, xfs_lsn_t lsn, unsigned int dfp_type); +void xlog_recover_transfer_intent(struct xfs_trans *tp, + struct xfs_defer_pending *dfp); #endif /* __XFS_LOG_RECOVER_H__ */ diff --git a/fs/xfs/xfs_attr_item.c b/fs/xfs/xfs_attr_item.c index 6119a7a480a0..82775e9537df 100644 --- a/fs/xfs/xfs_attr_item.c +++ b/fs/xfs/xfs_attr_item.c @@ -632,6 +632,7 @@ xfs_attri_item_recover( args->trans = tp; done_item = xfs_trans_get_attrd(tp, attrip); + xlog_recover_transfer_intent(tp, dfp); xfs_ilock(ip, XFS_ILOCK_EXCL); xfs_trans_ijoin(tp, ip, 0); diff --git a/fs/xfs/xfs_bmap_item.c b/fs/xfs/xfs_bmap_item.c index 3ef55de370b5..b6d63b8bdad5 100644 --- a/fs/xfs/xfs_bmap_item.c +++ b/fs/xfs/xfs_bmap_item.c @@ -524,6 +524,8 @@ xfs_bui_item_recover( goto err_rele; budp = xfs_trans_get_bud(tp, buip); + xlog_recover_transfer_intent(tp, dfp); + xfs_ilock(ip, XFS_ILOCK_EXCL); xfs_trans_ijoin(tp, ip, 0); diff --git a/fs/xfs/xfs_extfree_item.c b/fs/xfs/xfs_extfree_item.c index a8245c5ffe49..c9908fb33765 100644 --- a/fs/xfs/xfs_extfree_item.c +++ b/fs/xfs/xfs_extfree_item.c @@ -689,7 +689,9 @@ xfs_efi_item_recover( error = xfs_trans_alloc(mp, &resv, 0, 0, 0, &tp); if (error) return error; + efdp = xfs_trans_get_efd(tp, efip, efip->efi_format.efi_nextents); + xlog_recover_transfer_intent(tp, dfp); for (i = 0; i < efip->efi_format.efi_nextents; i++) { struct xfs_extent_free_item fake = { diff --git a/fs/xfs/xfs_log_recover.c b/fs/xfs/xfs_log_recover.c index ff768217f2c7..cc14cd1c2282 100644 --- a/fs/xfs/xfs_log_recover.c +++ b/fs/xfs/xfs_log_recover.c @@ -2590,13 +2590,6 @@ xlog_recover_process_intents( break; } - /* - * XXX: @lip could have been freed, so detach the log item from - * the pending item before freeing the pending item. This does - * not fix the existing UAF bug that occurs if ->iop_recover - * fails after creating the intent done item. - */ - dfp->dfp_intent = NULL; xfs_defer_cancel_recovery(log->l_mp, dfp); } if (error) @@ -2630,6 +2623,18 @@ xlog_recover_cancel_intents( } } +/* + * Transfer ownership of the recovered log intent item to the recovery + * transaction. + */ +void +xlog_recover_transfer_intent( + struct xfs_trans *tp, + struct xfs_defer_pending *dfp) +{ + dfp->dfp_intent = NULL; +} + /* * This routine performs a transaction to null out a bad inode pointer * in an agi unlinked inode hash bucket. diff --git a/fs/xfs/xfs_refcount_item.c b/fs/xfs/xfs_refcount_item.c index 3456201aa3e6..f1b259223802 100644 --- a/fs/xfs/xfs_refcount_item.c +++ b/fs/xfs/xfs_refcount_item.c @@ -523,6 +523,7 @@ xfs_cui_item_recover( return error; cudp = xfs_trans_get_cud(tp, cuip); + xlog_recover_transfer_intent(tp, dfp); for (i = 0; i < cuip->cui_format.cui_nextents; i++) { struct xfs_refcount_intent fake = { }; diff --git a/fs/xfs/xfs_rmap_item.c b/fs/xfs/xfs_rmap_item.c index dfd5a3e4b1fb..5e8a02d2b045 100644 --- a/fs/xfs/xfs_rmap_item.c +++ b/fs/xfs/xfs_rmap_item.c @@ -537,7 +537,9 @@ xfs_rui_item_recover( XFS_TRANS_RESERVE, &tp); if (error) return error; + rudp = xfs_trans_get_rud(tp, ruip); + xlog_recover_transfer_intent(tp, dfp); for (i = 0; i < ruip->rui_format.rui_nextents; i++) { struct xfs_rmap_intent fake = { }; From patchwork Mon Mar 25 22:07:08 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Catherine Hoang X-Patchwork-Id: 13603069 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 CCFFF5D737 for ; Mon, 25 Mar 2024 22:08:18 +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=1711404500; cv=fail; b=aGgFEUhTdkm7l7JlnUvN7tbR61zuVyM/6gXuRaG8GREe2vgdNhqAqyT58SII53UJJKkpnERVZkqC21llHNqUwXF7953pwFkZxdAnFQOF/aREhZPT+pYZderMrGy75HS2LhD4H5mtDOPUSEdrOJDq9Vv2/DRrFt768PK3nHltylI= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711404500; c=relaxed/simple; bh=P28vyeU0MLzge3gUHR8nq+tcxE29uV1Ebm/ttUchGFM=; h=From:To:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=MbQlXRLbJgoxsGfonENFexwWRT4e1SNoANLxYDu4aZv3jf7ZuuVNrrPYqeJxxITPvUq1XjFF15HYpbqvSPTcTARDt8WoUGiltV/G0BGH/rdkmUXoVgA4D3jR9SS7GkDazk5BpaXG9U6u+ZF5R0nv+xPPvX6Aq5SsV7MXUTnjqiI= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none 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=j5m2o6AJ; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=s8ueIQ6t; arc=fail smtp.client-ip=205.220.177.32 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none 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="j5m2o6AJ"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="s8ueIQ6t" Received: from pps.filterd (m0246632.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 42PLG6BJ019731 for ; Mon, 25 Mar 2024 22:08:17 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : subject : date : message-id : in-reply-to : references : content-transfer-encoding : content-type : mime-version; s=corp-2023-11-20; bh=j92rUiRDuBMJaU3ChZ9N3Ma7yjzaZSXtNeW2Qt+8Kng=; b=j5m2o6AJwUjgvwsEFUInSSW2euz69NW6+Konk3D2Q+dcf1dK+ciSzhbG2Vn0tp+mQlOZ IfoiXQ6wVTsgRlFM4A8D+kuyoA0JUamhQRbOoRn0aqB3CJakCRBbql8h/So61RnKIEH+ fZwHyLrK5IfTNipFFG6cOJe+J02d3MKhR9sb9pEDLt1mX2XkatkwmqS70HAGUkbDLrNp 74P73o5ZF4LSCiyW5ny4Gq4E1XPc5BABDK4ctH/mFFg5mOsyP/mubuXnbq8McZXBQNZt 567pbOOK4yffAOcxNYMiG7MSqUNJoOuHU8sC8mqrsEsqaTur1Udd0sVR211lNIz5TrGe pg== Received: from iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta01.appoci.oracle.com [130.35.100.223]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3x1ppukrun-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Mon, 25 Mar 2024 22:08:17 +0000 Received: from pps.filterd (iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (8.17.1.19/8.17.1.19) with ESMTP id 42PK5KkL024422 for ; Mon, 25 Mar 2024 22:08:16 GMT Received: from bn1pr04cu002.outbound.protection.outlook.com (mail-eastus2azlp17012018.outbound.protection.outlook.com [40.93.12.18]) by iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 3x1nhccqkt-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Mon, 25 Mar 2024 22:08:16 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=aUvXUSuNgDD3VX5PZd9RXzlgC9As1ane+ReEDwQJ+ut1jKdPTu6dztfluLrnioCA4zl9Dk5GE0bu8s5j9HEv5fNbtvkFlmmNouUwApiUyXBUtlTNAdpKFMxjFNZsp7IdVrRnsy40RZuCGmLCk1b1L2C+E5LFX6HHfyHvEAEELh3c/dLvvcZm75vDAUwV6+dmtOJlAelIoZf262v8OPM8li4PJr+P6nNcMUyJaQXfTFy2VCl9SZQFcaYeIKqKi70kGCwDJALvrNs64iWNIZSJHoLyQGzp/LCHVfhzxjOuLaNUI0gCoGnPuNY50yEm++Mzd/6IPCTyyIHUsb0q3iGKfw== 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=j92rUiRDuBMJaU3ChZ9N3Ma7yjzaZSXtNeW2Qt+8Kng=; b=ZudnVxM+/moKPx9tjq6oi+T0tqowIuKgsNIiowDpqg5nDbYdlJXU1PtpIYYdHdAsMGURFbjw7i2EwlTVe2iYLp/jh5XzMsRu7IFiykh5sGCwu/MsN+Yt6ETjW7DfA4/+ZHaQrX4TeTND4kXueELord5G28HD4LSvl7xZ68uW0SrCV1ydjRHeqDbP+jkQDJRWRxvhBlHc2fifoshJxwHfa4wnOtIc8Wyypfnv+tHuMWMl/euQ4djAJ4hB+xusvCGEM61XZshz4sIPlz/8nd1OPvgrQFXObkKtH6eW9dm5PEMijYL4d0Y46LyUVVCMQDeJgboBB/4Ir5ObNxFsw3yR+A== 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=j92rUiRDuBMJaU3ChZ9N3Ma7yjzaZSXtNeW2Qt+8Kng=; b=s8ueIQ6tuPU3DPDlm7M5W4xOhKMZSJOXB2vd4X48HREFYBEZFdMMc9nd43F6UN7soBFDpRyTXSa1FiNXJGyZrmuCr705kt0oqoXQIjKNkrv8yxFjdEH7Uk2IMM67bNZYVQysFSw8Rl9I1yP7yM8CgALNNMi1wdqsNbf7tWqRPLs= Received: from BLAPR10MB5316.namprd10.prod.outlook.com (2603:10b6:208:326::6) by DM4PR10MB7476.namprd10.prod.outlook.com (2603:10b6:8:17d::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7409.31; Mon, 25 Mar 2024 22:07:50 +0000 Received: from BLAPR10MB5316.namprd10.prod.outlook.com ([fe80::404e:f2ff:fe2c:bd7a]) by BLAPR10MB5316.namprd10.prod.outlook.com ([fe80::404e:f2ff:fe2c:bd7a%4]) with mapi id 15.20.7409.031; Mon, 25 Mar 2024 22:07:50 +0000 From: Catherine Hoang To: linux-xfs@vger.kernel.org Subject: [PATCH 6.6 CANDIDATE 08/24] xfs: make rextslog computation consistent with mkfs Date: Mon, 25 Mar 2024 15:07:08 -0700 Message-Id: <20240325220724.42216-9-catherine.hoang@oracle.com> X-Mailer: git-send-email 2.39.2 (Apple Git-143) In-Reply-To: <20240325220724.42216-1-catherine.hoang@oracle.com> References: <20240325220724.42216-1-catherine.hoang@oracle.com> X-ClientProxiedBy: SJ0PR05CA0145.namprd05.prod.outlook.com (2603:10b6:a03:33d::30) To BLAPR10MB5316.namprd10.prod.outlook.com (2603:10b6:208:326::6) 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: BLAPR10MB5316:EE_|DM4PR10MB7476:EE_ X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: Sfn6lOktblqjHH3giKvbi80vE9WFiuK4HhBrRYbwQa70Xub6YWludAPiJWw7sHfjApW5p6gKjyJHaadYWCxBN2v7IMWP2f9j+QSxL/467mnjUjpLrw/tbRwE4kuUCFNrm2Iayi1BZ4cslNJfx5iOdg0QLx906YfJwtV9JUblFHUuMOqbT9yO7x2uF2jvnh/u+HbJ5P3gLPEhHryq/oCTJPLI8pR2tn9NeI6vyCoicl5csB24HdXzwqzb1HJo/6aC3RgRWd9h6RasSA6t7wwhSIL5qtEUIKbg6dk1DY7C/IsJjtkDfEqXzPVSCU5GRqOTxfR2Gt3IHT5l/PamLuNsiWwVr0qSIe89LKa6JKEQigHy0jd6lXRMMsIumL9nmPC42dhE5u/O+GSB7vdtx8AoAiS6m/8Cc06BlfeY9eNXReisYUQh8On74XO61iojiFMjIYJ7C6Xxx6fhnF7fBwRdJ2OTHx0zVghE+vsrIgldrsB2bKmJSttnUZ2r+n+/CzHrB0l68xUdhZV/BDLj4z+mWZDyPlcyQolT3oSLqr5dn1EN72X4uggdL9aqLsBC6SQyw9Gv0qTEA3AmI4YcJzMwla6TiFIb+avQGqGNj1YSipopzjqBiVcQX5w5ncCx7AZLRNRPXzhQshydYI9O84pwAUhkHvFQbPeutntep7UG8U4= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BLAPR10MB5316.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(366007)(1800799015)(376005);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: q9gkR0CJR/lsbdFBSaC6BBg0T10s5hczQqeVDCnLyBXpzVmVdW9Ngh7frmPVT+9F6C9gC7lHNlew1WHeh8ExzShtX1NwDapEDERpUw18moFIgGJeGA0eUAJowrEYMMUSJPWRIYHFn/0XdweKZ6zPG0hvGlyfDat4hVTMv629A3xA4ZnweLq/s/tMV3zExJRI00SdYG2Oo70y8vWPyNP0aCQtO7SFEniO/8kn5yAAQ0n/Cz1WqdbLGCn1ieMnWZ/QXOZGcvosAW27jmmYi8f6yLnpNTJxxqj/1vvVjDE8zZ8l4fKnwXQl3UWspGr5x1hSODWdX1o2ExzBumq3vu/AlPkf9ZauM9cJGrK0UKgPl8hYAKHmlJVsvwiYlwlSHaYuTpeyMCGkD/jX0RIDdBx6tdRjO58NPoc30QUKdGpLIGgAGmWV7WjjZz94aar8uAHVMS+dLpErzcDfipI0ETETG5xhTgfpVmVMAv6qAlVeyvPjRLDDnFq0m7YGXiiUAdOETYt60z6l+Ne4HaS/SFyq/Qetwxe78QQ3YybJQdIwdXv6WqKNkq3U9juAPSeBBDgYZzDQsa6kneANHhik8KuMA3cQu/mbBJTrHbLRZ/8NHov2/8c+DYzCJ8Oqdc1sTP3elTeP4fR9cl1gUFKkhYjDW9Y+hKViibZN+5hKwhphnT32FHXE/lXn+oMbE4x33b3Oc60XrwOETNptGCDgeriXHw3E4YNaV+fJBxzRehHRRqaN2Dl82bHzSbDzxO+q+ovDtmBkDCSQWXywLe0nmWfTRcDpgBx7mI+IyYmhtCTm6i0kx+SydD5Jn71BwIeK4DxnYChyXESwGuxmnth+LLPb4SFfhPHpHAqruTKjK0uZK77h+rXwAGtJjijH5pjkrA2rvSxqoVnRvS8pC34YzbdhbnvHnUD00rgSws2cYOo/Ck7LJOoHxeubc/tS90iujReKtrKgKFQKnASn0ZKbQ+RAtH0BZfXMfVfPHinSufN/XkTpkt+1J0bYVs3+0vPaAZKBR+9rs44If42Z+Sb60XBNBd7FPEsv8x6KdIyHWUTzduZ/xU1chShcZjuapgmELvmfv8SmnnSKkVnfCze8dLYi3vBdcDFcnXScQkI83duaNKg/ngu+EzmN/ASECBBo0juDTgKsq8i+sEGBt1XA318/AAvpzYfaavbSwcx6ZRjudEQMNLb7h9WtuiSsNzHV9/IafL/whOVQEy+rN2PdLra7/SK5LHU29OOu9OCt0skZ/+5f1yAuhylHsKvon/aUznabzsfiyZ1vLDzIXgms0RVUsVkOa0m/3T6vsFxXT9Q4uduNGHSDfrlX1c9NjIKJIK/wUm/YMFbSerPeq0unRwLMqwWC7Z97o8jF9LGqxkaf/3hRvXIuOl9YxWe5U0fAb9rA1SfDbkYc5xDl+rAQedrCUj/PJmVivr9Utsy/ko1FU4xQyDKjZeljKtXGJnvK8guxh4qUTiyjfJF4ph2cHAW0qJM7LZBAc4knbVx74sEiZDlY7qQy1IFU91/S3Ieoje6xR6WMqYJtun3vr+fhTw48NnYXw3eUcDbvNWdAZrAw1RXRFr7L8hGNgTbtw91d9A3EBKMei7zOxAy+933shRvW7DOuq56e4ZtpP9Dfd4eVHg0T2mxo+ruIcgd2Wbz+SQHdzQjV0y4t9melnEparpoM0w== X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: 8/l7JkDP/bR9+Jd2FEE/d/qyhjjgknvCD9oRsPLyCHUfzieWfXT71wbf1iKEgmNS1NkrarsbfhAgE1/ivSZDvpuBrAsUHSww3W6iJkCRs0Z4Lc24TcLE6j1RP7c9/jiDw0qbgmb1cLJ1LsEnr3f7unPTAXijQh2ChHUaHZFl8CQARyTVH4S1EAhRGhp3BfSknQKGPyA8wrq1NyLQbNG5b+GRp6BDMqJVfKvucxgpzubXiB+dS/k9ZMMWMz6Kt6rR/XlAND/zZ5vP6g5thmw+/TXatnohnpAU/YwNmPg+L3X6hBx+pbMxfyWvL0OM1Fbp9OenYlS77z+8s0lVLqGffVan71MkgdPf20tzO6mJykk6BvL2ReF3BmJ0rLru2cHAa2dsTMvecMMudHVd5P9w7tty9d2TJtHHt1RnGetRAK4XUNac/QbAnul++1yDKtKOM0Za3Ep8VOvQasZabHuZtSpavzfmFEJL0rXWoGWZjrG8UCUnyY95Ad44QqGOfHbYZVa5orIXokLSs1oysnvsHaGd9t6Xt+l62JQQXZM/eQn4bMSD1y4dZv+HRPJ2Vqec1QdQE2o/QDib76F10OhDGZshOHbEE7JKhz97snixtik= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 9d1b8d1e-f2c7-4b99-7795-08dc4d1802b7 X-MS-Exchange-CrossTenant-AuthSource: BLAPR10MB5316.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 Mar 2024 22:07:50.1490 (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: p6eZt+Cc8HinCQ1k6b3QzL9xCuE8DobhPv6aPSXO5ikEzNOr+GrDFRZtyKdZCgcclP7Dg6JIOd3tdHZjLLuw4KTPP6ZUvjeLx2qHONWe1OQ= X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR10MB7476 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.272,Aquarius:18.0.1011,Hydra:6.0.619,FMLib:17.11.176.26 definitions=2024-03-25_22,2024-03-21_02,2023-05-22_02 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxscore=0 phishscore=0 suspectscore=0 mlxlogscore=999 bulkscore=0 spamscore=0 adultscore=0 malwarescore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2403210000 definitions=main-2403250138 X-Proofpoint-ORIG-GUID: Nwt5gHzR_nj0arRWTD2uaP6sRuLxaF7x X-Proofpoint-GUID: Nwt5gHzR_nj0arRWTD2uaP6sRuLxaF7x From: "Darrick J. Wong" commit a6a38f309afc4a7ede01242b603f36c433997780 upstream. [backport: resolve merge conflicts due to refactoring rtbitmap/summary macros and accessors] There's a weird discrepancy in xfsprogs dating back to the creation of the Linux port -- if there are zero rt extents, mkfs will set sb_rextents and sb_rextslog both to zero: sbp->sb_rextslog = (uint8_t)(rtextents ? libxfs_highbit32((unsigned int)rtextents) : 0); However, that's not the check that xfs_repair uses for nonzero rtblocks: if (sb->sb_rextslog != libxfs_highbit32((unsigned int)sb->sb_rextents)) The difference here is that xfs_highbit32 returns -1 if its argument is zero. Unfortunately, this means that in the weird corner case of a realtime volume shorter than 1 rt extent, xfs_repair will immediately flag a freshly formatted filesystem as corrupt. Because mkfs has been writing ondisk artifacts like this for decades, we have to accept that as "correct". TBH, zero rextslog for zero rtextents makes more sense to me anyway. Regrettably, the superblock verifier checks created in commit copied xfs_repair even though mkfs has been writing out such filesystems for ages. Fix the superblock verifier to accept what mkfs spits out; the userspace version of this patch will have to fix xfs_repair as well. Note that the new helper leaves the zeroday bug where the upper 32 bits of sb_rextents is ripped off and fed to highbit32. This leads to a seriously undersized rt summary file, which immediately breaks mkfs: $ hugedisk.sh foo /dev/sdc $(( 0x100000080 * 4096))B $ /sbin/mkfs.xfs -f /dev/sda -m rmapbt=0,reflink=0 -r rtdev=/dev/mapper/foo meta-data=/dev/sda isize=512 agcount=4, agsize=1298176 blks = sectsz=512 attr=2, projid32bit=1 = crc=1 finobt=1, sparse=1, rmapbt=0 = reflink=0 bigtime=1 inobtcount=1 nrext64=1 data = bsize=4096 blocks=5192704, imaxpct=25 = sunit=0 swidth=0 blks naming =version 2 bsize=4096 ascii-ci=0, ftype=1 log =internal log bsize=4096 blocks=16384, version=2 = sectsz=512 sunit=0 blks, lazy-count=1 realtime =/dev/mapper/foo extsz=4096 blocks=4294967424, rtextents=4294967424 Discarding blocks...Done. mkfs.xfs: Error initializing the realtime space [117 - Structure needs cleaning] The next patch will drop support for rt volumes with fewer than 1 or more than 2^32-1 rt extents, since they've clearly been broken forever. Fixes: f8e566c0f5e1f ("xfs: validate the realtime geometry in xfs_validate_sb_common") Signed-off-by: Darrick J. Wong Reviewed-by: Christoph Hellwig Signed-off-by: Catherine Hoang --- fs/xfs/libxfs/xfs_rtbitmap.c | 13 +++++++++++++ fs/xfs/libxfs/xfs_rtbitmap.h | 4 ++++ fs/xfs/libxfs/xfs_sb.c | 3 ++- fs/xfs/xfs_rtalloc.c | 4 ++-- 4 files changed, 21 insertions(+), 3 deletions(-) diff --git a/fs/xfs/libxfs/xfs_rtbitmap.c b/fs/xfs/libxfs/xfs_rtbitmap.c index 9eb1b5aa7e35..37b425ea3fed 100644 --- a/fs/xfs/libxfs/xfs_rtbitmap.c +++ b/fs/xfs/libxfs/xfs_rtbitmap.c @@ -1130,3 +1130,16 @@ xfs_rtalloc_extent_is_free( *is_free = matches; return 0; } + +/* + * Compute the maximum level number of the realtime summary file, as defined by + * mkfs. The use of highbit32 on a 64-bit quantity is a historic artifact that + * prohibits correct use of rt volumes with more than 2^32 extents. + */ +uint8_t +xfs_compute_rextslog( + xfs_rtbxlen_t rtextents) +{ + return rtextents ? xfs_highbit32(rtextents) : 0; +} + diff --git a/fs/xfs/libxfs/xfs_rtbitmap.h b/fs/xfs/libxfs/xfs_rtbitmap.h index c3ef22e67aa3..6becdc7a48ed 100644 --- a/fs/xfs/libxfs/xfs_rtbitmap.h +++ b/fs/xfs/libxfs/xfs_rtbitmap.h @@ -70,6 +70,9 @@ xfs_rtfree_extent( /* Same as above, but in units of rt blocks. */ int xfs_rtfree_blocks(struct xfs_trans *tp, xfs_fsblock_t rtbno, xfs_filblks_t rtlen); + +uint8_t xfs_compute_rextslog(xfs_rtbxlen_t rtextents); + #else /* CONFIG_XFS_RT */ # define xfs_rtfree_extent(t,b,l) (-ENOSYS) # define xfs_rtfree_blocks(t,rb,rl) (-ENOSYS) @@ -77,6 +80,7 @@ int xfs_rtfree_blocks(struct xfs_trans *tp, xfs_fsblock_t rtbno, # define xfs_rtalloc_query_all(m,t,f,p) (-ENOSYS) # define xfs_rtbuf_get(m,t,b,i,p) (-ENOSYS) # define xfs_rtalloc_extent_is_free(m,t,s,l,i) (-ENOSYS) +# define xfs_compute_rextslog(rtx) (0) #endif /* CONFIG_XFS_RT */ #endif /* __XFS_RTBITMAP_H__ */ diff --git a/fs/xfs/libxfs/xfs_sb.c b/fs/xfs/libxfs/xfs_sb.c index 6264daaab37b..25eec54f9bb2 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_rtbitmap.h" /* * Physical superblock buffer manipulations. Shared with libxfs in userspace. @@ -509,7 +510,7 @@ xfs_validate_sb_common( NBBY * sbp->sb_blocksize); if (sbp->sb_rextents != rexts || - sbp->sb_rextslog != xfs_highbit32(sbp->sb_rextents) || + sbp->sb_rextslog != xfs_compute_rextslog(rexts) || sbp->sb_rbmblocks != rbmblocks) { xfs_notice(mp, "realtime geometry sanity check failed"); diff --git a/fs/xfs/xfs_rtalloc.c b/fs/xfs/xfs_rtalloc.c index 5a439d90e51c..5fbe5e33c425 100644 --- a/fs/xfs/xfs_rtalloc.c +++ b/fs/xfs/xfs_rtalloc.c @@ -999,7 +999,7 @@ xfs_growfs_rt( nrextents = nrblocks; do_div(nrextents, in->extsize); nrbmblocks = howmany_64(nrextents, NBBY * sbp->sb_blocksize); - nrextslog = xfs_highbit32(nrextents); + nrextslog = xfs_compute_rextslog(nrextents); nrsumlevels = nrextslog + 1; nrsumsize = (uint)sizeof(xfs_suminfo_t) * nrsumlevels * nrbmblocks; nrsumblocks = XFS_B_TO_FSB(mp, nrsumsize); @@ -1061,7 +1061,7 @@ xfs_growfs_rt( nsbp->sb_rextents = nsbp->sb_rblocks; do_div(nsbp->sb_rextents, nsbp->sb_rextsize); ASSERT(nsbp->sb_rextents != 0); - nsbp->sb_rextslog = xfs_highbit32(nsbp->sb_rextents); + nsbp->sb_rextslog = xfs_compute_rextslog(nsbp->sb_rextents); nrsumlevels = nmp->m_rsumlevels = nsbp->sb_rextslog + 1; nrsumsize = (uint)sizeof(xfs_suminfo_t) * nrsumlevels * From patchwork Mon Mar 25 22:07:09 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Catherine Hoang X-Patchwork-Id: 13603067 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.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 420B96F520 for ; Mon, 25 Mar 2024 22:07:57 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=205.220.165.32 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711404478; cv=fail; b=tOIow1RYO1c1r1+b9QASwLFLSPaG2J0F0X5ICc1fOemSstnG5pWz+eEYNeIiNTxbnyuk+bPMiyJ6PN/HcZzThmUdXasJRw7DSlTX8I9cz/qear/B0ksFgKWL7XaY7OI8GDgm59GC9Z3Z4p5XlJH5pPqE45ar5sK5us4eIM9htcw= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711404478; c=relaxed/simple; bh=8jwYWjKCGerZKNTDAj4pgA981/Uk5vxRQ5Iw+NYe6Lg=; h=From:To:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=SO2lV9M6MHu4xvz2Jdw0091T40YL0nKnAtQxRC1jrBHkv0LuxIO+WdSk8YOHlK+FXo4QA+2FLYgdm+yfbJTrCyhNYAhuL5+SPsi1G5k5+CIFaVXu/ALSz5BPM8mj0rtygn4YIcJNoFDaeTZJuFsciQ+KWn3c7Bq8pdTNUDTHefI= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none 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=bqPAMiJG; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=o4b6BhLq; arc=fail smtp.client-ip=205.220.165.32 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none 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="bqPAMiJG"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="o4b6BhLq" Received: from pps.filterd (m0246629.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 42PLG6CB027956 for ; Mon, 25 Mar 2024 22:07:56 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : subject : date : message-id : in-reply-to : references : content-transfer-encoding : content-type : mime-version; s=corp-2023-11-20; bh=GK6yV6IozZ8z8Thgwvvd5u2CNWQFZNQxIdIBgqY1TeQ=; b=bqPAMiJGA60hF+i7+fe5vYDgrKifhOxhhp84TmEpsHjg3Etjwn7YljkFv8KpT/1KEPx+ KWxR270xFjxXi91pQlBqXR7olIs4v7d21FO9igE93R2zRQXUkEXhIioSACBZyvsRwdbG bndbzsQ7oRUdj/VUjdMZT54w+nVG5PEXPenrpmNDP9AbhnzCvijVbqQf5+UZ37W6PwlL 14qZIMl8inMHg+zfzeQnG/HRaGSO+j1TvasQGxOowt0GspDn3El1qQFIsVfpvz//j1yE k780NaxnF/rAn28CkKbXrk0N5QJZgSePRqaIqKd1EDH3mqxliD/usOxY1m1mml1rRKtT 3w== Received: from iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta02.appoci.oracle.com [147.154.18.20]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3x1pybkqj5-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Mon, 25 Mar 2024 22:07:56 +0000 Received: from pps.filterd (iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (8.17.1.19/8.17.1.19) with ESMTP id 42PK1FAH007164 for ; Mon, 25 Mar 2024 22:07:54 GMT Received: from nam12-mw2-obe.outbound.protection.outlook.com (mail-mw2nam12lp2041.outbound.protection.outlook.com [104.47.66.41]) by iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 3x1nhcctt7-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Mon, 25 Mar 2024 22:07:54 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=GUDO9Bi2UfxUfGzO8e+OlvxF8sIoGTkktw1ZHG9pB4Qm8/O/t2UFQwh0xJktZ+Ph+++wIc5tqHAKkPTBGM1Ajgyh/E0NTcju4DW1t+cE9DjfBG7DvX35AqffHiOmxIG0CzBtLXDed3FdmvCS9vbuySVypQr2XAKzAYg5cJaXcRKXy9YDnEvVfNPvIxUL4mliTwL8DeOJc9kywtrFlEMSA8GbIJ96+Fg2xg0s6X+okC+zqFwtsWey+s4oyLHtGXVpBwgfIdEc8FXbrZYtr4/dc7xx7H4kKS8BWjjQbr3s5clFKFL9y2kpIeAG8WivOFk6KAJjiOI5TqtzovVQxkEcZw== 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=GK6yV6IozZ8z8Thgwvvd5u2CNWQFZNQxIdIBgqY1TeQ=; b=mxKBs9jNUArAd2j69eWbdTsX4JbW74zD4uJchctR+TH9SqRC0wDMYMBhhFMJ+b0/hgHu0ULIx1cy+pP/ZfM2BcpJn/1Gt0ylu1iz9AvsaTtYO5vfy1ggB1sx6hAIA/shgLWnQKCJXWLwOiKIkFsnARXPLw9QW5fGEE/b36T0TQj3GVbShL886C2erh5hWlCqoHLId8eNf66dXN15jR4/3IJOeWKuET39+ChamdXJrKQJ7Fj1jeppbFvF2bNunPfpfjAQ9REd8DKJAH+88NOXf460c7Tnz5v8/Jg665RaLuznKc0YvEBuo1ZQD5/Ab1JjN3Slh3weBM6H3sdcXR30lA== 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=GK6yV6IozZ8z8Thgwvvd5u2CNWQFZNQxIdIBgqY1TeQ=; b=o4b6BhLqgLPgsfHQ4TOD3IoRjXwRsgwlliBOYXDptfowxjfSNAY+/I+ATsq6OqACqfwiQU2hqAycWDmbAbAuwmmxj8l0dMGeUrkK/e9LgJNct1VapnclCJXJEKdJ8ikGNtFeR9BMLXE2/VUkOD1tTYWcCVmj7A4VgtDNnRMoWtM= Received: from BLAPR10MB5316.namprd10.prod.outlook.com (2603:10b6:208:326::6) by DS7PR10MB5005.namprd10.prod.outlook.com (2603:10b6:5:3ac::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7409.31; Mon, 25 Mar 2024 22:07:52 +0000 Received: from BLAPR10MB5316.namprd10.prod.outlook.com ([fe80::404e:f2ff:fe2c:bd7a]) by BLAPR10MB5316.namprd10.prod.outlook.com ([fe80::404e:f2ff:fe2c:bd7a%4]) with mapi id 15.20.7409.031; Mon, 25 Mar 2024 22:07:52 +0000 From: Catherine Hoang To: linux-xfs@vger.kernel.org Subject: [PATCH 6.6 CANDIDATE 09/24] xfs: fix 32-bit truncation in xfs_compute_rextslog Date: Mon, 25 Mar 2024 15:07:09 -0700 Message-Id: <20240325220724.42216-10-catherine.hoang@oracle.com> X-Mailer: git-send-email 2.39.2 (Apple Git-143) In-Reply-To: <20240325220724.42216-1-catherine.hoang@oracle.com> References: <20240325220724.42216-1-catherine.hoang@oracle.com> X-ClientProxiedBy: SJ0PR05CA0143.namprd05.prod.outlook.com (2603:10b6:a03:33d::28) To BLAPR10MB5316.namprd10.prod.outlook.com (2603:10b6:208:326::6) 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: BLAPR10MB5316:EE_|DS7PR10MB5005:EE_ X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: FOU4ITk1QUJOzxsvM9ntGdJUPZFZ5qhJgE6ZTbpxs9X5Rj9OBtWsBPeQQq42Bw/LcrLcOaBwCZdPRk26AKVntlBGx64yHtmxpJouhcRU0v4XXUo2uZPfOxibav0KmOApMJki7bmALtESjXs6/Y9YwaAuvxDquYy60+MZjdhn1Z11u9C+elm6gz9WSRdIRNQHPQ/9za8iLe8GKMKSpxLZPO14psTZr6Kto4lmxupUJujLl2d9fG7A7FyyioPV6Dod1eQkC/zVZiI9ZaA++lJtIduxr8528+iLlr0fkxJw9/fQmBgeQGfrkno/LINLbK56YFWcgSLHeSMsQWsF3gQj1WNfkLzH9OMKrBJZtDAMfFLX1BVHJZQAboaWpYLUEiO08lFF++AgRtfNfw8DPvWD+MP9VSg4w4YvDhEmPHpRVUkgpOKAS6Q/XIy5PUah9vIquvWEmAX3KqhBBAbKKagBPRrYXldQKrZ+UHG/1FJ40PtkfZcrL4SFdwixmRTBuCeQs3ulBmb+6HPnhO1SfXFMrvmOuPMaTBWG4SU7vL1U73W9NwUi0f3lqbukY8Txul+kZ3HXaEALYkzVjxT1f39zfPjKqlyKEhRyGl0PB36Mc5U2Xl0yK/lukJ2TcVSOfKrOSWW/0xBlM4DctkG7cvtfzbLXQgFJnSjd9pu/G1ajHG0= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BLAPR10MB5316.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(376005)(1800799015)(366007);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: FoUCT9/b2O0WAs7+u+G9FJhjYjyoee5+mnykC4P5XjGn6YybwMhFyPeLeNvs+3WCK//fohQKfeiWo5bxjV/5wURihayo0lIhoP29NHwebA0/XS5gYVNL3FKJvWNE+JqNCRh1Q5hLGVS9rdOdVJW/7r6wmgWPx9Gr3iIKKG8Et4PhMHnHQpv/HorX3R9hIn4qtFkmf+sT4QiTaI1wd4LVLueDPodw+kI5/q8955VIE4ME+UxKLXEvsiT9tAkQT+kuOdvmOWLF+Xn63XRXF+QISAoAw/vtc2bOVZNdkoUiYPWlNMHRz5f8KMyrImf2C32wOVRNl+PZjNdQMszskqgZ/kv/HXhTDILogt2pUW3QCpifawAEQ/Y4CuQNPVN/T8zTM35PWW7H4XhfBcVHGoVBYSWQHSpmbCZyD7F0IqsmuduzkHVp1HtIyJm3xnFGZSZJMFmo/JlptAy3W+QWALLOVfpPQxOE8W4oonw/oPR3MgNn/LrHs6dDWKlbmWqNisAgHm7MycidJiuMS113Ho1CDALHo/0NgoxyvJ9/fpy75KQiiiHpukw2ElqVgPf37uwpezL3M8N7ISI4TgS8FlSMfIUPp1KNrdFBGwZMHy4njmNkbNeEx8ZDzFxTR+iHkKooJjh8ifFj9IdrprMuGXUbI7GeFMBiTSoon1PAZYaXUX9CiuRBcu1phQJ3BNQrRQIOPLIo8Bj4gFfocuBXdLHecnfsQmPrjNpi0r9EfRESAwsTnmNdoNnM1/r6QoEFBCeGMf6H0Z/4eTayfAFqz8vV1NDKOnDnV1HBvyEcNgh1mspC0pQOjgAbkWp1R+aFxL6vF0kemAStJm3qU91kQ1L+Olh2uGnNTd4d8PicFfy6yUrGBuLqOvW2ul5CJ2EaLCLA4WuJQgETdzdFLPORbXxVSbe9c5fF/0VGHOOmNsPIjBqhNehmwsHjqYmqFBY6rykWyFxPaT9OXy3Dm6+GfvEiotb/4uqIOwk3cBay6DNumKsyEi755co+PnxBhz+VWn1fVWohS31zP1MQBZNBur/B+YsCtTqTi5hJf+9XGgPPv3UUVE5vlUgS66JRkJetzRhFMdJLExXRYIQxrlBZYv1SMByb4Ysdxfox8EGynLmXYdTrpj4G3ePtUPZJpOLv79sUY6xUTSNJYw1Si6+rds6xOYSRRlU6UtJpN04aEqmSoOyOn4n1J0w4pj/RMq9Q3YBZr9cYXFT/+PqSNC9RoSUoSPM7sjHPwFyjQN2ZQ5Y+nuk9eiMpLFcMu3CzlTDu+yEzZQM3bTy02mP6eV4yLuA1byk1kuUqqrMDXESHYvf1Q+7zFIYLALhgBPHdAfymc9kupdYWNAR9YbntW4uU7WsF8bC6owO6lDVzI5L4mXYksYF/pP5Rr0WR/moy95kIco446+2UmKHUlGRjXFohSKxGbtqvNhxukurPtkuMMBL/xcygVfBvvQje7sYrWiXdbOnQ8Qa2MEHaxUqkVJd0FJgqxCEU7tLjC7ge3N4d4cbkTWZ+G/2yCQ+4WM0toq8ggKZhXZ9nUpy2aicMUDQ0HgKjYhqiy0xnOhlsExqrR0UxGtZlOSh8HJIggQ37FHvPjP8Fdb2oNMf2GzYauiKFT2chjc1kBrp9ZIyaINTn+R6z+emCMveT7T1SsXzOwuv5ZAgoA1myxzIZ5Dqfu92iSGuDAQ== X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: Z/Dwgrjpm096a5PF1OMg0xeq/nXGHjpNYl6k9f7Eht7O9h6s3VVDK6pGfZbLOF359Z8kdwdpBI+Rh5gtPd271zyR5DslrjoEqwc2WvA+h2qQ7xJORinxA2As0UjdboAZcufYUcv9uqp+wa2A+gP1EyXT1UlVtQBFh0E/uAzLZgdVvDcbR8DVSbkw5+9/BE/FETh/QlsSuwqAf6odCg+oJKCOY+XUOW7o6puU1g8/0VO8GlqCo2Wkh+dqQrLnKl3jyWk3MOVM/MxGbvyOkf1V/9jrvMnIjXVzXnRTnaVLLch+NpkuejnwdhaAdrYx9VixPW/kJaqdYP09Ilfdr9Z3DkiF7hjYVZBm2LNeytok/T8wtqsgv0HfLfQQUOTvAYAoBT0v+EPZt08ScgH5hd+tIuUCULunrpR0A+lNkv2+jivQw9BkmzDNwMfJsEMosPD4WGtTN4EQDw78OB5hCFQmqCRA87lzkVMKThNgSeeqiiUCq5sXd151Dd6k+PfsbUGC+3UOVZ4cCNKghxB3NWSFXatild3tpp1uiEX59da9o3AQzpUd+t5cuQzWhnl58oSY5W0/gp23rk5ancZTag4CpMb7gBli+pBCZ3gHAML3Bfg= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 31a1abfa-a534-4e41-25e7-08dc4d18042d X-MS-Exchange-CrossTenant-AuthSource: BLAPR10MB5316.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 Mar 2024 22:07:52.5662 (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: wEIzWf+IQRP079ngSoNCqNxBFZ03+MR1NINqWfdXX7NsRNWpzw9f+tNGCDXYs6hWf1q81mq5VtD2AkeB/sKHFCIbqXnHp4TRn87ACJktHI0= X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS7PR10MB5005 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.272,Aquarius:18.0.1011,Hydra:6.0.619,FMLib:17.11.176.26 definitions=2024-03-25_21,2024-03-21_02,2023-05-22_02 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxlogscore=999 bulkscore=0 adultscore=0 mlxscore=0 phishscore=0 malwarescore=0 spamscore=0 suspectscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2403210000 definitions=main-2403250137 X-Proofpoint-GUID: kSajOLe1qmhArtyi4As3kYaJGj-m51ea X-Proofpoint-ORIG-GUID: kSajOLe1qmhArtyi4As3kYaJGj-m51ea From: "Darrick J. Wong" commit cf8f0e6c1429be7652869059ea44696b72d5b726 upstream. It's quite reasonable that some customer somewhere will want to configure a realtime volume with more than 2^32 extents. If they try to do this, the highbit32() call will truncate the upper bits of the xfs_rtbxlen_t and produce the wrong value for rextslog. This in turn causes the rsumlevels to be wrong, which results in a realtime summary file that is the wrong length. Fix that. Signed-off-by: Darrick J. Wong Reviewed-by: Christoph Hellwig Signed-off-by: Catherine Hoang --- fs/xfs/libxfs/xfs_rtbitmap.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/fs/xfs/libxfs/xfs_rtbitmap.c b/fs/xfs/libxfs/xfs_rtbitmap.c index 37b425ea3fed..8db1243beacc 100644 --- a/fs/xfs/libxfs/xfs_rtbitmap.c +++ b/fs/xfs/libxfs/xfs_rtbitmap.c @@ -1133,13 +1133,15 @@ xfs_rtalloc_extent_is_free( /* * Compute the maximum level number of the realtime summary file, as defined by - * mkfs. The use of highbit32 on a 64-bit quantity is a historic artifact that - * prohibits correct use of rt volumes with more than 2^32 extents. + * mkfs. The historic use of highbit32 on a 64-bit quantity prohibited correct + * use of rt volumes with more than 2^32 extents. */ uint8_t xfs_compute_rextslog( xfs_rtbxlen_t rtextents) { - return rtextents ? xfs_highbit32(rtextents) : 0; + if (!rtextents) + return 0; + return xfs_highbit64(rtextents); } From patchwork Mon Mar 25 22:07:10 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Catherine Hoang X-Patchwork-Id: 13603068 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.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 71E9F7173A for ; Mon, 25 Mar 2024 22:07:57 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=205.220.165.32 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711404479; cv=fail; b=arKCA1Qhbi7CAIefvvMsO2PbFscWaFNli3AZ0IVHur8oktwp95Od02YoJtcoplxvDxMCKiu+5yYxzeWVG+wn9QYWMdpEtO9c4UFMIAME5zjpeoSC+yDARTdwPSMEiAVEkFBu+7hVUMYZ1PNKmDgXc5djPZvEdpy1pmS8ZdKVKl4= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711404479; c=relaxed/simple; bh=GvjbvZfi6qFOYlt16BG9AW0gCpK/2+12aXAwe5R0DlM=; h=From:To:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=BkaKz69e2wS9bqhC7uJkL26252wpECkZ1U/4YG02PU7W8BFuOOZftTa8//5Ol6Ff+PNuvuNseb5jLY2i/Dmo03PcFruUv+jyRyGP7BWGQFqmuK+meonAksDKETHUz0+l/Z6jGwsVQq3jiPWvpCf3jR17urAEzeDlngeGKG+rkBY= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none 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=ARNQu/sW; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=lXtisDH5; arc=fail smtp.client-ip=205.220.165.32 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none 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="ARNQu/sW"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="lXtisDH5" Received: from pps.filterd (m0246629.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 42PLFshB027120 for ; Mon, 25 Mar 2024 22:07:57 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : subject : date : message-id : in-reply-to : references : content-transfer-encoding : content-type : mime-version; s=corp-2023-11-20; bh=kti3WkbrH1jNkALXvyRGKYjKNRrEMaVRnA96YSVvpmE=; b=ARNQu/sW1rxLdNi2+9XOO11ro7ZazBGVhm5uxjPpRtBd78vfufYei/IyKMEXeK7UB8if Z11FM9efuQIcZjzB79zynBHaMvqX2BjB5A8LPMHQXuiHWD/dSIjqlnmnKYeuBNfr0eCy LKXS4Ch3/b7rUPCG6z90JRLzGA0oVZY9hanlzx52FXnHcjcMb0bNTvgDQWpJbv4diWgt tWA86sF9DGzqotHIz084yxe3tHaALKmmOS+HrmPvJ71npaVVBUXvQjIjSpMpYAXk4N2c qZ/B4L/o3g+65ayPM2Tv+XcUbpfxCtnzzpxWCFOt/JOGSeRBNM2C4Ml9uzd/Wg2X4GwL 0A== Received: from phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta01.appoci.oracle.com [138.1.114.2]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3x1pybkqj6-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Mon, 25 Mar 2024 22:07:56 +0000 Received: from pps.filterd (phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (8.17.1.19/8.17.1.19) with ESMTP id 42PK8sKn020253 for ; Mon, 25 Mar 2024 22:07:56 GMT Received: from nam12-mw2-obe.outbound.protection.outlook.com (mail-mw2nam12lp2040.outbound.protection.outlook.com [104.47.66.40]) by phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 3x1nh64b3e-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Mon, 25 Mar 2024 22:07:56 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=U1YoTe8OPWz0LLsxzzAuS3MFFgc1p6sy6Pi3V0Q9XRye72bRJzXwB6yqi7HxcSLXUtRhdje6/CryLEnGUDmeMjrAS+wOKLTWk+Z5sfz920adtRVN51qyfQ8PLEy/BNyFjlZoxpGMSxoP0o1jElMaBmaIflj6FYOgayXepAZpM0L4eCaQO6waRDlMUOXPe40NdlVP+4vzrH0CiGsgv3aCCW/gpxUoMTOEWQul124+vPt6gMiM/rA/pqbbuOu1axnTMNA/pP4zAGaA8y9DItbIFnIH9tNN3QEm7s9XK0t18CKKRoj+KsNL7Wf5ddYMH8IkCvpU+m7O1ypN5bZ+7S/FFw== 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=kti3WkbrH1jNkALXvyRGKYjKNRrEMaVRnA96YSVvpmE=; b=X/OBTJK4dqR750IGkyufEXUpSTzC1nKOuzsTuqcvIJQO+RgdZViLBUkvEQn3bhSzNggT8kXd9QqJOyyGDs4OL4PTGC5G+MgqvqAgIXe9ileVjg3HhnZ4g5RJB8f8JcOWtA/Lcz1g4B1O74N29jjtLzjeM2URaGi6KM2EkjCPLLXFus1MlC59bzsDKUOvPXLKhx32K25jB+VAmZisLxxEvVxVHrqJMjW9ZpVVoM11DmNm2AIRRNvRNGnKTRqgVkvc+5VSz75pjuj1NL36AZE0zw19n6XCPcPVxGvZ3ZWl+MsEqfDuTcvdQEzdZ25YBd4fDJQc1mPUlK1hUKKxvf0XJg== 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=kti3WkbrH1jNkALXvyRGKYjKNRrEMaVRnA96YSVvpmE=; b=lXtisDH5Uwm9FzmlvR/B+jF77NTQ48P8PH+sy/H3WJu8AxyEYFOP3Nl+Gf+qNHnmC7VwVfgTFPHb+enkVyeLmwZF1QTBgGy2loe9Aod1Mz46bEsQdaZUYP0BHfPBKabGiUSUmFBo0396O+AHzwgsZAf5GJYuzRGlfqPEPX/KsHs= Received: from BLAPR10MB5316.namprd10.prod.outlook.com (2603:10b6:208:326::6) by DS7PR10MB5005.namprd10.prod.outlook.com (2603:10b6:5:3ac::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7409.31; Mon, 25 Mar 2024 22:07:54 +0000 Received: from BLAPR10MB5316.namprd10.prod.outlook.com ([fe80::404e:f2ff:fe2c:bd7a]) by BLAPR10MB5316.namprd10.prod.outlook.com ([fe80::404e:f2ff:fe2c:bd7a%4]) with mapi id 15.20.7409.031; Mon, 25 Mar 2024 22:07:54 +0000 From: Catherine Hoang To: linux-xfs@vger.kernel.org Subject: [PATCH 6.6 CANDIDATE 10/24] xfs: don't allow overly small or large realtime volumes Date: Mon, 25 Mar 2024 15:07:10 -0700 Message-Id: <20240325220724.42216-11-catherine.hoang@oracle.com> X-Mailer: git-send-email 2.39.2 (Apple Git-143) In-Reply-To: <20240325220724.42216-1-catherine.hoang@oracle.com> References: <20240325220724.42216-1-catherine.hoang@oracle.com> X-ClientProxiedBy: SJ0PR05CA0149.namprd05.prod.outlook.com (2603:10b6:a03:33d::34) To BLAPR10MB5316.namprd10.prod.outlook.com (2603:10b6:208:326::6) 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: BLAPR10MB5316:EE_|DS7PR10MB5005:EE_ X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: XOtIR8MhFM/NySwPTUcYRQgRgsmEhoKAwTwjL0C81mZCwPYZTHyJV5bBRg1e7uXMe6vRklrviv1ZfeUew67kqvBiCy/jKf9z22LOz9Cu3E+2HL3aXdluKynNeXfMgRw8ddNajbXTnOSdrAvaDa8Kg7fDs12ubLaHOarjD/bkajBv5AdC12cgDbScqdPl0z2mMyv3I07qOHpCQ7Q4HcD+smqSuzphpGw9gm17moUEhedj5PGc1rhDm1TqDYN/ag90zwc78+c94c+fWio5phcRNURC+IKBNYtP6JjE557l1BO432Z3qTbfdugLqtiAKNwkYFLxOAI54G9k6USOJusp9TuFoHaAXWg1Q6b+zivwrOKcmNEsf5uZ0OXaTuitL8WQkN6BqMyFHjEEYA5VJ3RnbfXYji7jITnIJO9fcTVTzl4ClcwkqMchRUZlfGNJ2RgZZrg+D8txRslLWS90pfqSQC2Nr+s/q/t3D6iFHnve5HGpmyWcbtOuV2NrzX7uWGJywT4KOTRqccFh4zdM0PLvAsUxEhqlMGkcnRwsLjbbfnmTnHvJ8WA68wDSzeDbvHPO6SVyEovoF1Ace44v2Lc5O7m5umm+UJleRLMb/5LcDR7PoDltPaN0y7wnb6w8kjX96ukGNPKRDUQFrPMZ/Q7e6dvGrjFZcgfQJ8RHdSgzW7o= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BLAPR10MB5316.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(376005)(1800799015)(366007);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: IK4j+l8XWWD7+gTMZ34DYuSifedB0cEm8ef0n2HvnpjJSL8USCmuR4Y9e/t7Ygq0dAutpebGiA91MCqAfJQHXOJ3+E9cVXXmLcwDK5cIYkKwCLO6boZxeAnjB1QI9PSTgyWhGtxy9NEkwCQvfr2d/8SogwmxpKDc447vyNh3j2r9XtLR4zX6/9+NX67YyRz2B3HpKQwqoBzO6S/eZMq1PYNXq0lQHOnUgrGeFDIWCFJB64Htur6ziXdfOPptakEHQSNHP9oBiZgxaRfR2PUfCraarRRilMYBLr0VoxdyYJ5Iq/5zLJ+D/zPB+JSi1X3BBf/snmbdOjZzJa+L0pcHKXVPWg180OPOsqD7pPlwaz587GcDd1aBWZzAXlDhefkRnupWfJGIUPC2F3/KY2jZXMXxE5206oXPSSqYpOBHJ7BVsSUCcVzBpRbqi8kmtVJOA8i3HalMyH+a5VL5/QNyR2cjkX9ahtXF+bIISmCel3/Nryi+AZ7EGPvF5yuTvhx4LfWybWtx+WCe6K4feARE9X9lZYJ7RJ/FXpYo6eVyWF3IYNmwua7N18HbC2oZUIMhmoNPxasA95zu/noDwjCmUA0ATJ3EU3/2l+m4Kxe1QPX7Zwh7MWBwu6+pikjlijcqO/dFWmgTi+E/plbnMrE4Ep6s9hGmMb5jPGNA+oj5ZVmixxXwJd0Of0YAqwp9oFg89PBHFLz4CsFQBMbK2rUXNRuEOEBVkN2XJBzXtcftUazGsF/gM7oLyn+kfGm+FEuEWAQ9bXWY0jytLd0RfaFIySeRyhpCOb+Txse2+rbUiQqkjYji//G/UNEzeinkzZqyMZnVKpIovVyPUH7mrWoXi51KRwEYPvSl7u3c7SSzdCOBwbKerae7TFbx1bD1xn9cyFbaatmPlzpThQha8rcwi6SD63lKKsHov2BoQl8nYmsGilk52Q6SqFdDcS/zm0dKmWadfogGC0M5wFUJOo5aQTyjgqVtjOTKvyNXbAskVEh97Up+jyxyq0upI02Qjp3E/L2fDdt6yfqt+ONz+XgaJPSv8bfBzJ/T/fzHIhzuTIKMTnmUiG1rAiHN0sheoyT66gw6iROscYpLpQ1oFdCRcvSa8HbynvgwVKT67KayE/mE7wj34i47OxQ9WbD2O7BoK40f7s7WQbzK3TP9RHxC5wUwn1ma3DB2SlSx+eD5HmS/b0ok2s+zcbIzch4M7AzNdMqx7asXuOvjOfh9Mazj7jg9Nhc8lMp6BihgbkabqDaakRoJkkPfxQ3tpJrd1KWeFY9ud5gZjdFfWNkoxuDa2qgoEkFzygLUa4xV+u2zPzRHVKf45TIYbDFwH3PGnU8CX1I4gQoJ/2t4/u7OH6SNT8bGN6j0pg9/jIKAwBmvKhoFqKKgN01L1s6PlIpYTnqX3fiHhYkUjHMeK7pwEpJdPP7aOTmTCe5NuYCLc36e6txKautnoAq7XzViuthOGLCG85gB9WC8sG1QHMEbh9DVWo1wTEliOg5xDGZT82ORKcuJ49TOf5Z9z/4tlY/hcwfBkFCmZkHavX/2j4wub5W8JgsmaZI0dGhgQnq5559GF5I5kWXMZ1v15I1Yv3GQ3ymxEfMs0d+cDoGpgoQBWIvI1QQe9dS/8IpXkok11YZ1gU1cuz2rMTH7HsGiS3q+ReD1YMErWg+enddyW0fqDY3j5A== X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: lgrVpPNH0GVg0EbJBp9byUuHbf1t5beTWZ/RhPQGDQtUwiEd/2LOeEchHRcUEn9v182tLI9eMeyK0Hosa+DqzCu/xsSAHACxbefc5bLvYvTODt0QTtpHytTbh/bxbPVa8NiEwUEcI1MF/6ko9WP1uVZe42cMweV8BnNKCfQuTP/rIzXSZ4Wr6C3lfU746cEbHHpt/CTmuR/ewqnahaSvhLVs4/2T6WTHiX10FWY34dg8Hc9tgfzr2sbbLLrloMOVt26RiZHGOnoZc7PO75s9DwOsrccdWwD/I9uGAex/mlJOCP4XE40DZb1U9grB3wM1bHotvwwMSg9iv0jHjKHI4ndX0hd+cEUZ96aBtgidsldeOzU2sX0CrL0f/fkFEXa8kG/2gSWbJQlMpr2IS14h8nhsaMwLQB2ZHbUKeyOidCFyuKbbcl7CcCWLNwHOC/jy8Tdkjhx30w2lXY5ct/U4O7KnuIf+olFDVWGKnSb0E1QMU9DcQ721sm8KvZ/jTwqkj5oJRAUT3sn3hD/PMSLqFv7nlO5me6nbSasse2QdReaLfZoUQbROrq06cRDzyMtBwr6ye6l3o7iPRLnam5LGntDrJwxD+630bcZ4f1JKedw= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: e82aad7f-484e-4275-bd4e-08dc4d18054c X-MS-Exchange-CrossTenant-AuthSource: BLAPR10MB5316.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 Mar 2024 22:07:54.3986 (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: 0BKmfPqJFMVfcllQHqU3pc9dKfZkiT6W4eKkz3F9Kb8qCVwDnIlpjE/Rn0SPi/xiQf9lBi9grFW0USCQoJgi6DY5q0fsE2zOtjRDsbYCWis= X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS7PR10MB5005 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.272,Aquarius:18.0.1011,Hydra:6.0.619,FMLib:17.11.176.26 definitions=2024-03-25_21,2024-03-21_02,2023-05-22_02 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 bulkscore=0 mlxlogscore=999 suspectscore=0 adultscore=0 mlxscore=0 spamscore=0 malwarescore=0 phishscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2403210000 definitions=main-2403250137 X-Proofpoint-GUID: dd46icfNXh3eMIsKG0M0mm6D6t70tWuc X-Proofpoint-ORIG-GUID: dd46icfNXh3eMIsKG0M0mm6D6t70tWuc From: "Darrick J. Wong" commit e14293803f4e84eb23a417b462b56251033b5a66 upstream. [backport: resolve merge conflicts due to refactoring rtbitmap/summary macros and accessors] Don't allow realtime volumes that are less than one rt extent long. This has been broken across 4 LTS kernels with nobody noticing, so let's just disable it. Signed-off-by: Darrick J. Wong Reviewed-by: Christoph Hellwig Signed-off-by: Catherine Hoang --- fs/xfs/libxfs/xfs_rtbitmap.h | 13 +++++++++++++ fs/xfs/libxfs/xfs_sb.c | 3 ++- fs/xfs/xfs_rtalloc.c | 2 ++ 3 files changed, 17 insertions(+), 1 deletion(-) diff --git a/fs/xfs/libxfs/xfs_rtbitmap.h b/fs/xfs/libxfs/xfs_rtbitmap.h index 6becdc7a48ed..4e49aadf0955 100644 --- a/fs/xfs/libxfs/xfs_rtbitmap.h +++ b/fs/xfs/libxfs/xfs_rtbitmap.h @@ -73,6 +73,18 @@ int xfs_rtfree_blocks(struct xfs_trans *tp, xfs_fsblock_t rtbno, uint8_t xfs_compute_rextslog(xfs_rtbxlen_t rtextents); +/* Do we support an rt volume having this number of rtextents? */ +static inline bool +xfs_validate_rtextents( + xfs_rtbxlen_t rtextents) +{ + /* No runt rt volumes */ + if (rtextents == 0) + return false; + + return true; +} + #else /* CONFIG_XFS_RT */ # define xfs_rtfree_extent(t,b,l) (-ENOSYS) # define xfs_rtfree_blocks(t,rb,rl) (-ENOSYS) @@ -81,6 +93,7 @@ uint8_t xfs_compute_rextslog(xfs_rtbxlen_t rtextents); # define xfs_rtbuf_get(m,t,b,i,p) (-ENOSYS) # define xfs_rtalloc_extent_is_free(m,t,s,l,i) (-ENOSYS) # define xfs_compute_rextslog(rtx) (0) +# define xfs_validate_rtextents(rtx) (false) #endif /* CONFIG_XFS_RT */ #endif /* __XFS_RTBITMAP_H__ */ diff --git a/fs/xfs/libxfs/xfs_sb.c b/fs/xfs/libxfs/xfs_sb.c index 25eec54f9bb2..acba0694abf4 100644 --- a/fs/xfs/libxfs/xfs_sb.c +++ b/fs/xfs/libxfs/xfs_sb.c @@ -509,7 +509,8 @@ xfs_validate_sb_common( rbmblocks = howmany_64(sbp->sb_rextents, NBBY * sbp->sb_blocksize); - if (sbp->sb_rextents != rexts || + if (!xfs_validate_rtextents(rexts) || + sbp->sb_rextents != rexts || sbp->sb_rextslog != xfs_compute_rextslog(rexts) || sbp->sb_rbmblocks != rbmblocks) { xfs_notice(mp, diff --git a/fs/xfs/xfs_rtalloc.c b/fs/xfs/xfs_rtalloc.c index 5fbe5e33c425..e5d6031d47bb 100644 --- a/fs/xfs/xfs_rtalloc.c +++ b/fs/xfs/xfs_rtalloc.c @@ -998,6 +998,8 @@ xfs_growfs_rt( */ nrextents = nrblocks; do_div(nrextents, in->extsize); + if (!xfs_validate_rtextents(nrextents)) + return -EINVAL; nrbmblocks = howmany_64(nrextents, NBBY * sbp->sb_blocksize); nrextslog = xfs_compute_rextslog(nrextents); nrsumlevels = nrextslog + 1; From patchwork Mon Mar 25 22:07:11 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Catherine Hoang X-Patchwork-Id: 13603071 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 338DE71739 for ; Mon, 25 Mar 2024 22:08:22 +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=1711404504; cv=fail; b=DQFx23mXP+f21B2nqqU+ZasxukekS0HcX5FNnP7VclZdL3NWqVgWkYRE2Z4H78fJ16iAKYPWMtrM50gwvtu5MmC7ILUU7NvKBDynYt1kgBxtyZvigIXALpSPYhFaE1DW3dvGIteyHutEp4UL2KzihBSs53ZCd+FJDF9jBHqFkV0= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711404504; c=relaxed/simple; bh=rUAMEtmpcIZndKy+7cogowvrPkY9Igh/p0wted4LzF8=; h=From:To:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=A9UA6VA9pSzpCGjGABA0+IYDk4xnSSN32sIfx/P5J8YBuzjGikE4qlsaQPn/dYZrlXcpx9xNZJOp1AtU83UERk6aZjO3520FpVZn3h5cb9JuVoqBYVwYSY1y8Kt2PdDDDA+pmbonk0O9pACzS1ub3xpKWwLt0q3Xdewff38wDaM= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none 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=NeDQ0Hhl; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=AFwccrsC; arc=fail smtp.client-ip=205.220.177.32 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none 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="NeDQ0Hhl"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="AFwccrsC" Received: from pps.filterd (m0246632.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 42PLGXjp019954 for ; Mon, 25 Mar 2024 22:08:22 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : subject : date : message-id : in-reply-to : references : content-transfer-encoding : content-type : mime-version; s=corp-2023-11-20; bh=IP8YqveRGDMFP+gsryZm3it2jc6yYcGEm0tKl8H2S5U=; b=NeDQ0HhlXXOUiq0totGGB63VFVOOsZl1bG7yB0fti7fZ7W2QqtSiVcdtPiJ9dY/DG5aU zXPKvGaZhLWTU4DmG47MXN3ayBpjiuNRu/yEl+eaN3wFHdeyVCDxRxQ+G4X50PgFxFxf LBFWE7XVYdbRYJzYDzvdjzEYI/+pzi0xYKDs1ZoRlDd4LzSwgpDC43xVBK+/23mWO1U1 0PhQ3UhL+LUUwm7m9bBlsIkFStLf6BgnJXg0jECq36dPoXROMdGmKE9KVlfiV0/eeaQz u/po8TSOANZSjJF34i0ZM8y9vP7t7Bplt33eLzwMb9gavLTstM04fhZrfj+lvaS+W/qP UA== Received: from phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta02.appoci.oracle.com [147.154.114.232]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3x1ppukrut-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Mon, 25 Mar 2024 22:08:21 +0000 Received: from pps.filterd (phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (8.17.1.19/8.17.1.19) with ESMTP id 42PKNtd1024519 for ; Mon, 25 Mar 2024 22:08:20 GMT Received: from nam11-bn8-obe.outbound.protection.outlook.com (mail-bn8nam11lp2169.outbound.protection.outlook.com [104.47.58.169]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 3x1nh6ccn9-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Mon, 25 Mar 2024 22:08:20 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=aly9qSnoa3qxE/u9TKCSyqY4dgCcIcGCJXPLIs4zqgjix/l4VtOp2ftc/HjF6ljWzDg1VVVLAvXRqq0nB4Wntvjjc1BycbhGRSlhnH0JhgWZDcwiedBNdSBOeiafcrtDd1MjkMMSUzI/GD70Ggq/qme3ERsIm3fkj/+qFBL7z0vKYMH/e1lwu63DPLYmKdSS4QJ33UAr2H18L5bz4DlPAOCl5r9qhGkSSPBj4lCfVlsOQGCeuiQPq6DnlfFApGfiAkBPCqA0878jvnfNUVNKjYzR2DA5bEIlJmvn+Gx/TsBweOsf3aq7xqnhVG8E4/tPap3pVagV8vjthyXUxOSJ6A== 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=IP8YqveRGDMFP+gsryZm3it2jc6yYcGEm0tKl8H2S5U=; b=iPmywb+Xg7eRFhjZ44p6ABghJCDCVvxesyqXqESnKh+o5crEIoXvKhiVcYQFn7Ftrn8bEL4Issfz82WmvjIwVzC3ZeySdKO/doDk8i790O2NoNiNrZeA5qUYNqH0ZUfdjVi4GgYyrvOze66CjglSrasBd7TE8Arcyenex94n86xttU8J8RuPPsxzjDerAShD4f/qLwk737KnCMXNlhRYroFL3Xoe2uHTuuBnB9coDvsNpualXIBWhts7PuSZ5cD3GLDST4BfL4nhEgxGZdgIebzzzeHf+CT4HJoL1tJId2EG94ybr3dKklNqUrUKwug0yps40kw/nv2L1VcbQCLVXA== 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=IP8YqveRGDMFP+gsryZm3it2jc6yYcGEm0tKl8H2S5U=; b=AFwccrsCLXZfQhtYxIx/kR/kaPRgYcEwBxpNeJb0S6Iw8z7Fz5tr3r+N4dVUMT1jkzHpeYvGDKAN5fV4u2eIQcQ4/W9VDFy1TjV9mIY/yJ6NCL9GywRmbcuEbpoNsuBhQv9Lv2WQf105xC7euk3OMiurTni6EQwNvuXpG2djBQM= Received: from BLAPR10MB5316.namprd10.prod.outlook.com (2603:10b6:208:326::6) by DS7PR10MB5005.namprd10.prod.outlook.com (2603:10b6:5:3ac::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7409.31; Mon, 25 Mar 2024 22:07:56 +0000 Received: from BLAPR10MB5316.namprd10.prod.outlook.com ([fe80::404e:f2ff:fe2c:bd7a]) by BLAPR10MB5316.namprd10.prod.outlook.com ([fe80::404e:f2ff:fe2c:bd7a%4]) with mapi id 15.20.7409.031; Mon, 25 Mar 2024 22:07:56 +0000 From: Catherine Hoang To: linux-xfs@vger.kernel.org Subject: [PATCH 6.6 CANDIDATE 11/24] xfs: make xchk_iget safer in the presence of corrupt inode btrees Date: Mon, 25 Mar 2024 15:07:11 -0700 Message-Id: <20240325220724.42216-12-catherine.hoang@oracle.com> X-Mailer: git-send-email 2.39.2 (Apple Git-143) In-Reply-To: <20240325220724.42216-1-catherine.hoang@oracle.com> References: <20240325220724.42216-1-catherine.hoang@oracle.com> X-ClientProxiedBy: SJ0PR05CA0150.namprd05.prod.outlook.com (2603:10b6:a03:33d::35) To BLAPR10MB5316.namprd10.prod.outlook.com (2603:10b6:208:326::6) 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: BLAPR10MB5316:EE_|DS7PR10MB5005:EE_ X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: vFfA5rBWfUtz8RbSKrBqp4cRUKD9Yc4h05G248gR7Vd0B+zYsTOM12vyBVXH6OtCueM03DFtHpQEDsXIge7bX4lM47iaUJOBKvK7BvZ61bvDz06cCnh/v6tNVERs98o8dYwDK/sbLZ6em8/Y8b3Ro9xDtJS2lIGNY9W67/W62aoH+j3j3bocGFFouK42tq1jsYp5l+a5CfdbFmQQjKShyDhwvkZbeNDD8vnavvJSjv3+2Uf7bMW0jZTY9gw/ckvnsZaJbpvKovCkYVqyP5xwXdIBER31ZxC4uksMPE9NDS7CjJPv0FtPNmGsn1nuGMZHierr4mbqnRopkSg4HRXCiaDTSP7/L8ZEPNncftItL4uMEjk2r/L+gcWo/ZcPLEwWGRgZ6bIclfvDjHYj6gx7nwvwC8PLi4wbUnTZSWraFw2DGvhcSJ+ZgJFhwWiDGwmSmc8jV0inrx/G1i778+87QV5jLSyTyNeraRJhGuvUxjbF1OwxL9FgYEliamhP1vxfbj9NNNlajxCTup36vZNQDSnwC42utitmdTJzt/Uv0tw8WNgBVvjRQnc8xcrlpKkny630PN8UnvioQXEu529/ZOLoKC+zEfcQmGATIHffzf/uq1qFugohN9yHNtUr7aLyui24qfpT832ETCH2gGkXRmcctxJ2So4ZdI0exO/TDvA= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BLAPR10MB5316.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(376005)(1800799015)(366007);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: VWFGqgyFk3/YUj2j9eAVqCRGJv2mnU+wh+AeqQwMzshIBhSPOqaVZQVeya9kISc+Z/jTD9o/GQqJuhX3zuaGQtcoWfH9CK7r2tHmnUUIXRqztUi1vGUcPGjEzbMeZBvVboSk65wz0YSKVwVb+jZCwrEAF5aC+YgbY5ct0Y8rgId/uQZVIsKLdJmBsFcaEvJ2zdKgfkGXr+o4Gt71DdUcI2BVUNdcgJ5g8QePoen/sPHCuvRZo4E/nDZTs08vkjBjrk1wFXth1oK1RRAxX5x2ZS/kVvG8XOuXPpo6pRN/ncrhoNykCfEsD1nGlUh8OT1MdjMrmHRakIquYMbKQNul3+R6ZVhSbzcKjqYiddXSCdWMSewRulzvbCDsWf52o6wwjzYN7mfcob/ofNqG3KNy+uNxxNNd4NcT8Gt+m8BzQNF9E2V10ft10YWo1WMva7av+ujEfntMUI9nwOAcbd/ZOgDFj6EexX2/6SgILZ309KFGF/1niUbZ+MdtzI/TkVEscTbLQDnG4R/qV1tTPNncosGpD7Jf4Y28Mxt8Koe1aYIc01xmouQ0Qc8WvaQycFuVNUksodzMgwtfFeueGFMcKgK/Gm0UGP1L9H+g2MgjOPznq9EAc0YCmYbB1/Y7lnQSZ8Aev7IQUGCtk+Psp3XlRXxT8jKpEdP57IgofSqL8MEmG0+bdu15bskhWyEVNY9pmEcG0F/O2d7TkL2Qz4Zh2cJNuRVyvgrSbE8g8Q3NMThliiSdxAJSqdRrUmGe0GFbIil174xuzY73+FX6hbPxxN+dzk1o+PeI7T9WUyzLNCptMO6BHHUtcSrk4UyhcoVYyU9sYTSKHRb/F7Wq2dstzweY7tKsRtTNj3AxwIMIASRbMUOsTWSV7FWnJ1TgQ9Clpdl8gSJE40FmcXxEzKwy9xvjbMSwATAaUa+2KEhMw+zWAOebgx1gXAjPO/QfE5yd32/Exk4ymvpid6BkMasrOGY+T0EVB5sr+DsOJUhI7EmZsMsYe07L7nTO15urtXX0nsgY2HuM5ID+GBOB6aphtmMLRDrahPbyylZmiGJYYeSo4IBNI7CWPIXOt88y8pAyYBvctNMWPXBODwVci1Hv/MPYw3vHu4xk3vMpzdnom7L3hTkOIZ5Rrowtp3uwbH6Fj+7AQ28cWsvwnC2t7e4iUiDepY2Mom5eEVrCKW5CH0nkiw9DS6h7WRiST4Zhu7wE05kKdOhVCVXYyj9cHuQKpGPu/1SwIU3j5b4AOdjXaR6JJw+iRcYudQONY6cHPD6Ga4eh1JnuxQOeZaYlEuEazMK2mnmXSjDpRwv/DMEZLjkd1LOwgbSzIFJjnTA/fo43nAgwKaoPNyqgdqS2qASgYoXe5Cw/hloY7rqRzQuorx06FcETDZ4X3hWUOsHUL7zyU7BvHNoPG6JcUKOP71k+TZ4Odes7RteWrWqvWoJMZ6rsxdY9w2Cz2W9XW0XJs5a+lnwyt/W+K4KbFtHP2ndSLNuxrejTjjhYYqdqRdpsdNkolUTvKs6c0yfQRPc63ZufbxmK+pGqTEZ6cmx73QdCf7l9IQjV3duAFRppdLDTc+kKFTMnAWhkkGpPtBvV1+fKf0Jmrl+0/pHkuvenZj9G06Q2LK7cECDrzylRtUQt2fdmpx4JM0YsQN6xO4IsBy2g/WKaPSqYR0jDqkmG0YE+Aw== X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: yxUZOaIvsHq3tCtYcmLFvu7O9pBDI7YFIYZg1oqxFIRAnUYGqrDMLvG/yyhp3t0uK9l7uJqbKf3Jmv+nxnr544ebR6tg89CB4eqRXzzIftaAqTBYs+aVEh/7xfuud4wYg10CHCZtpNWcK2ev1ptkiHyAzNC6Bx8zumZKl6p5WYeccyK4ZOptdJsaEsqCtu1Pjexi5cWVaswwHOo13E2du20nFQs+g7jH771dUwCe1ioPPZjGlgWBmwR8oNZjK7TYbmHR1JjIfAAl5Ihz3WwbD10I5Bvlbjr/jOmRacxF648WQWVIvTv0bZYZABfX0HLriwvPvqJz3azrSMoBGZYTdqN7LAjTkex3L97khAsXso7odcEbnV0JtfKMg4PIM83PUah/4CBxxcnzs8+7Gun2FVd4nDqJpk051JYzAp7O3PPr2/GL03F4CroguI422k6vgY19FFkFfkDgdHFaJ+6eg4QNFqBy9bZVtbeXeNGKZpWb4tXk8PHzD6MRtqwPe95iJUmV88/K0JimTHvEkwnur7XFfsP7zpd5kohT+C5kOjatNIIfMljeA/jYipd20Q6zN2aG2WHXFT4qfl9yUpM4NvlWfxxHYVLHtqHp906cIzE= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: e77aeaa3-c643-4648-bdb2-08dc4d180660 X-MS-Exchange-CrossTenant-AuthSource: BLAPR10MB5316.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 Mar 2024 22:07:56.2902 (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: GRaDe1ioplSTLxKKuZmeNyejOGWsgxQzo/euY8yXrM2P59qhdGr03lI8InI88wYb4nzJZLBa+fZh0hnv8+d17uO7xqkJSm4rwKA14qgPcMY= X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS7PR10MB5005 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.272,Aquarius:18.0.1011,Hydra:6.0.619,FMLib:17.11.176.26 definitions=2024-03-25_22,2024-03-21_02,2023-05-22_02 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 phishscore=0 malwarescore=0 suspectscore=0 mlxlogscore=999 mlxscore=0 adultscore=0 spamscore=0 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2403210000 definitions=main-2403250138 X-Proofpoint-ORIG-GUID: KR5wRcB4CJA0yAC1WGbQ6pGWe1mhN_h_ X-Proofpoint-GUID: KR5wRcB4CJA0yAC1WGbQ6pGWe1mhN_h_ From: "Darrick J. Wong" commit 3f113c2739b1b068854c7ffed635c2bd790d1492 upstream. When scrub is trying to iget an inode, ensure that it won't end up deadlocked on a cycle in the inode btree by using an empty transaction to store all the buffers. Signed-off-by: Darrick J. Wong Reviewed-by: Dave Chinner Reviewed-by: Christoph Hellwig Signed-off-by: Catherine Hoang --- fs/xfs/scrub/common.c | 6 ++++-- fs/xfs/scrub/common.h | 25 +++++++++++++++++++++++++ fs/xfs/scrub/inode.c | 4 ++-- 3 files changed, 31 insertions(+), 4 deletions(-) diff --git a/fs/xfs/scrub/common.c b/fs/xfs/scrub/common.c index de24532fe083..23944fcc1a6c 100644 --- a/fs/xfs/scrub/common.c +++ b/fs/xfs/scrub/common.c @@ -733,6 +733,8 @@ xchk_iget( xfs_ino_t inum, struct xfs_inode **ipp) { + ASSERT(sc->tp != NULL); + return xfs_iget(sc->mp, sc->tp, inum, XFS_IGET_UNTRUSTED, 0, ipp); } @@ -882,8 +884,8 @@ xchk_iget_for_scrubbing( if (!xfs_verify_ino(sc->mp, sc->sm->sm_ino)) return -ENOENT; - /* Try a regular untrusted iget. */ - error = xchk_iget(sc, sc->sm->sm_ino, &ip); + /* Try a safe untrusted iget. */ + error = xchk_iget_safe(sc, sc->sm->sm_ino, &ip); if (!error) return xchk_install_handle_inode(sc, ip); if (error == -ENOENT) diff --git a/fs/xfs/scrub/common.h b/fs/xfs/scrub/common.h index cabdc0e16838..c83cf9e5b55f 100644 --- a/fs/xfs/scrub/common.h +++ b/fs/xfs/scrub/common.h @@ -151,12 +151,37 @@ void xchk_iunlock(struct xfs_scrub *sc, unsigned int ilock_flags); void xchk_buffer_recheck(struct xfs_scrub *sc, struct xfs_buf *bp); +/* + * Grab the inode at @inum. The caller must have created a scrub transaction + * so that we can confirm the inumber by walking the inobt and not deadlock on + * a loop in the inobt. + */ int xchk_iget(struct xfs_scrub *sc, xfs_ino_t inum, struct xfs_inode **ipp); int xchk_iget_agi(struct xfs_scrub *sc, xfs_ino_t inum, struct xfs_buf **agi_bpp, struct xfs_inode **ipp); void xchk_irele(struct xfs_scrub *sc, struct xfs_inode *ip); int xchk_install_handle_inode(struct xfs_scrub *sc, struct xfs_inode *ip); +/* + * Safe version of (untrusted) xchk_iget that uses an empty transaction to + * avoid deadlocking on loops in the inobt. This should only be used in a + * scrub or repair setup routine, and only prior to grabbing a transaction. + */ +static inline int +xchk_iget_safe(struct xfs_scrub *sc, xfs_ino_t inum, struct xfs_inode **ipp) +{ + int error; + + ASSERT(sc->tp == NULL); + + error = xchk_trans_alloc(sc, 0); + if (error) + return error; + error = xchk_iget(sc, inum, ipp); + xchk_trans_cancel(sc); + return error; +} + /* * Don't bother cross-referencing if we already found corruption or cross * referencing discrepancies. diff --git a/fs/xfs/scrub/inode.c b/fs/xfs/scrub/inode.c index 59d7912fb75f..74b1ebb40a4c 100644 --- a/fs/xfs/scrub/inode.c +++ b/fs/xfs/scrub/inode.c @@ -94,8 +94,8 @@ xchk_setup_inode( if (!xfs_verify_ino(sc->mp, sc->sm->sm_ino)) return -ENOENT; - /* Try a regular untrusted iget. */ - error = xchk_iget(sc, sc->sm->sm_ino, &ip); + /* Try a safe untrusted iget. */ + error = xchk_iget_safe(sc, sc->sm->sm_ino, &ip); if (!error) return xchk_install_handle_iscrub(sc, ip); if (error == -ENOENT) From patchwork Mon Mar 25 22:07:12 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Catherine Hoang X-Patchwork-Id: 13603074 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.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 066B17175F for ; Mon, 25 Mar 2024 22:08:24 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=205.220.165.32 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711404506; cv=fail; b=FJBMPPJSL38DH/w/0xgF3xqy7DfHLb0tIuU1BPcnly+nQY+ABC2za6vUdIrH1nq/lEHGlEe2C17pyW7z990GBdm7kgC3bfw61SZgnfVYfAbzDCz2tCbf+gG38J255JNEEyCwLmFhmYrm2ebJUfN2b2nctTN7UP4ZA3gtu2H8rxw= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711404506; c=relaxed/simple; bh=30Twgc0IfcMPRUzGGnQTvl9S7DTRBTaBbE8+aElTs8w=; h=From:To:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=nYu+kADdOVgOKk6vI5ACOjWfLIru/EE9zn5FNxgvrgCxb6xzLqpdCCMWHLhpX0sNhXCIpNlphLyHaQyk34fTYDpfJyqdSlljFoKtZyFiAIIUUCSjCsI1qXoDMTQhaAZF3ECuFSbpELZj/lYCMqa5fP3BMqgFaQBuxK4wKuIA+sY= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none 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=IX5uw0oE; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=v4O4ycZp; arc=fail smtp.client-ip=205.220.165.32 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none 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="IX5uw0oE"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="v4O4ycZp" Received: from pps.filterd (m0333521.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 42PLG0ko019818 for ; Mon, 25 Mar 2024 22:08:24 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : subject : date : message-id : in-reply-to : references : content-transfer-encoding : content-type : mime-version; s=corp-2023-11-20; bh=xZTIQgAe+GRIGY6jWdl/3TORJaysR/+mDZeypqKJx8Y=; b=IX5uw0oEZlg8n0wpAN4kdumdRVOXvv+2ATPv3U/3VpwvRoYogXathqMJLvjPWar+rF85 xECoH1Pf0a1yh0HFopW7+VikAYfvU5notEvO63Dz3y3jjgOoYjOxCb3TywOp7k5+Ieri dz9YeueggGNTv8aivmbpw0IXwCv+4+dtSqpiCOQgEHHC0QNgUFyqcdHfUzOcvyA5+paK 3Ylj6bISrupIJvye9/orzZMKNW4qHJXGjhi1APjKpeDOatFV0c9RJGX1OIuMUBTAeUCJ 8WAFfR5soV0p7v7KWsvI5WiDzocaYnKKQwWo1WVHMMgbkbc1lBY7XXSa+pYFK8Qk/yZn yA== Received: from iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta03.appoci.oracle.com [130.35.103.27]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3x28ct32gu-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Mon, 25 Mar 2024 22:08:24 +0000 Received: from pps.filterd (iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (8.17.1.19/8.17.1.19) with ESMTP id 42PKPhAC015960 for ; Mon, 25 Mar 2024 22:08:23 GMT Received: from nam10-dm6-obe.outbound.protection.outlook.com (mail-dm6nam10lp2101.outbound.protection.outlook.com [104.47.58.101]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 3x1nh64raq-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Mon, 25 Mar 2024 22:08:22 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=YPjNWxxF4FwMNAWeZr6+l5YzZay/5XGHFYhS75YltkTMltL6wryqR85BW2xFlQuOlqBS4lKzzTeDteeFeqHWLK19vnr4O8F8YAcy9FkX5sezjv/26/pvCEiz4dYGQo1znPjbToeGI51BqVirNoLxOzvklKYPlZyBsb0Qlob6a4LS9EpB2xFldhy/J87IuS2rADKnepxEh50qqqAOEtSr/Yl9YVKNNrVKJqpegdedtRSPpokfzDpt33w5UdvlCQwVACKt4l4Wtb57w+e8PdvKySc524IMxnvHOjZ6Iudf54XJ80vx7ZYdw1ZdxbRHK4SXFhEJ8eN8TjBI3Fq0+5XIsg== 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=xZTIQgAe+GRIGY6jWdl/3TORJaysR/+mDZeypqKJx8Y=; b=ebB8C/2noZuLzPl6AIchgiyyJoM0Kqz6D04yWZZsWZlo9Ybgmy+Z3vmvvRCdhw/4mlv2Z5HTclNLPjOGCcfk7l986YWIs/RgyAgHYcUQghYSpRwKP96v/uhcPn0H7XLXa+QlI1Gs+JIzQQOkFtGRANmPnqKk32BV8d8goOhN9ZhQY+aipVlBPr5Af48OhBjKXDkIGkg9f9XpOXaZOU223NM7F2tJ0qB0H//H7ZWwn3FHREgrOqirtaZ0QOJjsngCK8E04Ryv7l0HprH2oW0rxDv/29ut8/8MUkVyKjgKvEqemNlcLaGI35oAvbKv5EgFwg8xkfi2bbQ2WTySz046ZA== 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=xZTIQgAe+GRIGY6jWdl/3TORJaysR/+mDZeypqKJx8Y=; b=v4O4ycZpn+ORXnkooPFYWcN9ijXzKZvhgnem4cokrG4xGbhUytq1Ju3cUouAio8d1QAk3l6OxkMCqbdfWID6m+udV9E/1rk+3EZY/ZnVM85eSIgvF9wKH34Iw7bJiNADg3Td+zEIT58joBSYdfvmwNBfXc+BnfGC1CoCM896lSE= Received: from BLAPR10MB5316.namprd10.prod.outlook.com (2603:10b6:208:326::6) by DS7PR10MB5005.namprd10.prod.outlook.com (2603:10b6:5:3ac::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7409.31; Mon, 25 Mar 2024 22:07:58 +0000 Received: from BLAPR10MB5316.namprd10.prod.outlook.com ([fe80::404e:f2ff:fe2c:bd7a]) by BLAPR10MB5316.namprd10.prod.outlook.com ([fe80::404e:f2ff:fe2c:bd7a%4]) with mapi id 15.20.7409.031; Mon, 25 Mar 2024 22:07:57 +0000 From: Catherine Hoang To: linux-xfs@vger.kernel.org Subject: [PATCH 6.6 CANDIDATE 12/24] xfs: remove unused fields from struct xbtree_ifakeroot Date: Mon, 25 Mar 2024 15:07:12 -0700 Message-Id: <20240325220724.42216-13-catherine.hoang@oracle.com> X-Mailer: git-send-email 2.39.2 (Apple Git-143) In-Reply-To: <20240325220724.42216-1-catherine.hoang@oracle.com> References: <20240325220724.42216-1-catherine.hoang@oracle.com> X-ClientProxiedBy: SJ0PR05CA0127.namprd05.prod.outlook.com (2603:10b6:a03:33d::12) To BLAPR10MB5316.namprd10.prod.outlook.com (2603:10b6:208:326::6) 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: BLAPR10MB5316:EE_|DS7PR10MB5005:EE_ X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: w3H8g8z6gWPstDqjmHt8Mz+n+SqKg2c+V8uN9hfqmHEq8VOBRWkgsqsmyAVvSHsJ7rn8OLDPkv1MPWXlL9BvITcRuPAuNmaggdb52UHV9q9fW+J2ffmB0k8jtGPODehls/hsZi1we9wLpvnKv7N8EBt/wsY9utrlmcoQh6zCdWceL8RW/sa2X1GCtuSaaQ4JR8zxsQU/BhtslOQhDtFqrRsrbl+p2ZSm+ZWkll3GHStdaHAv9o6dAbtNNDXUheeF/3dK2w5XMtt8VW4NHKcSvWHc3yCMiqYFVCM3f6YTqJLjO1jxT90+eZGU5GzAOQPYxtiqVOefYe/juDcOJLmJzZIToHMWWPDq7U33Or23iCXQgbVKLPystKJpFIMGVEm559aTa2lvTopo7+SxPyQSDRT9bSAhz+DujzMjd1i/GaL7a0OSHxglWV3GvNTx/rxo/1SBN+xwK/ry7DJ4v3IQW9TGMiEz8/KylA4IjJPMdj76tVFdW6kWU639xIgv+S0vqZCwd9YICbwlprb511u2w6vPd4qL4ep6obfAqaXw9AH0es7gBZLouIzfJI0EdNyxpjeMMdBUxG+TeaK61h1yeQInvM27qBhrxm7/Mek08BJtjwRNoOH2srQgthqImjwcwB0OhFpBK+hl9MJE9caKEog9FewTtSEBPMzph3JuoRI= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BLAPR10MB5316.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(376005)(1800799015)(366007);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: MqQVNIX/CnIxeBoqGgdrlJgO5N3H7r0Zroa/npGJdCnBPTJtBwAFyWQfdbj4MnBRfzkX7XmqUosvFv/alGxk+CF0RTsuLbGkYpcYHVGj46qotbsXZj0g2S9pqgj1WrGl0fvJFjaSK+l/C5N1+Dp302Kx2T/snuq/Wjh6dgXJWb5DP7BtzbYqjHqkatfaMeE26neWPwur3N16EWT5VfG5dnx/iqOq3XHQcqY9TWIJKzfroUTV18HPl1mI8pWZrce3XVfO72ina6PPT6sIe5h7/aMbSBrF4qrB8cwQpynhfAEYCo6qRDhGno1ILmktVbDfijGO4VhRl415GuSVYolJv/5KPJxa2cSBDyxHC2aKrWGf12LKlct2lv14niaW/gZ/DbkqR3QbQb+6CoYpeOxvYlZYpONH2IRNqwB9Wq7YDO8XS7LJImD0rv3hSSDtqW6oNvW3+f7UU6L9NJS5So+gQuh/oQRvNadRyIcgA2c6NIV/7A7AR5l7jbSunWqqMUMN8yjHGxWA4ZFEIUGw3VYir2dEDSZVK4NubP6dWEW3MdT36D2MEuSoHREiNAQP6w3YsiBlGN6cyfMEHqclHdopzKzxuAVrBsTVN1DryEFR6v772eD4Kp8ilvxyjs1WBh6XfVS0rtqa7QyU7CF4tvvsjEFILcNvXEnWZMTEeB9+TPcfqTUQUC5IN9SdVYo0ssCdNaPKt/bNy8lOP50tAhnwO3c4VwXKwh77Ju3J7xqbK+yf+zQayzuruR7AEsfkTpcM7VNsgTjWRC0SmSDO5mrCluSvnwPn7lOF0MRTbXZ8JEli1MB8GsWvYgaVO9Le6N4lClPdGuMcIuKrlJdja1oVMx/oeC6MucSwrp7fJe1pNzSPLEDO/XwI1aIMsIgDDTIeCYQax6JNR3k+XfzvslVvvxpk+KJR5vxkYUyUB8d27B4MXDouTYAXsIe+T35D9yycLsnGK+3tolDDzfaOh1uwJFHl0ck54DW3b8dis3Sq/lOOD7BqQTiv8MsL2UFqDRwRCL3TUCXTk1Hf56EIaEr5xkCVhogd7AbKwvVVKUJaDeEmmRETTI4OUsJSKC8b7hraqb5neKqp9yzybCsoP/grCkAIN1dYkoLJnJMYDlwsc4oON+xEOJXjasin4N4MpCCBYSf+vs17uitdENsADoKZXfN6BKlM52nuZAh7GTMB7k4elRISNAz9L41rafgsTAtAM+hRxtQMn9iC4qcZj3/hgD+5zHO40mB2OWdkLob+0zlc9quZSWkIEHZ2NwmryGmIUch9gTu4Xp1rX9kMbqpRcRsus3voMkW1Fvp2tg9ADOrdwZuAT8k3eEP5lEHLRu2O98noNEtYhPNOH60gucKC0HH/5SYgwDWfWyPhUDOChYDKWtHHJVKq8pNn2qICG5JOYV9Twp45sHliRpnWlRhVAFbNW9oX7UOYRcy5+KOFCf7yW/G8xftho6C7zQUSuU9EfI4t3JomyzlfUbEv2vikAAyuts3XTfA5j6tpcySo2+/8jsLZAhoI0yqtfKJRyLsznrJwIcY5pZHTwDCcDGEXMZzQCPAdfftGXnYum3/3+Cfojy08z5JOjxvsmck6E2KK07z7fZgHxyzUWcn8iAHQsybSdgGT1HR8vSbV8RhXMzK34cxPfFUDNI7StNlFfQEMr3xY9P1AskL0r7xphnuS1Q== X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: PfgoaQ3bNNvD2FeaPW6s/mOS2uwM7aMVCOMI33sdobj0R7dQOjJfoGcwiRnMf357ifg8JUVQ1d3RK75LYN4sqVA9DtBFUplxqLXRtz6iQ13hZOt3+jsf3R75LJq5MNNpBAod/YS2+I0DTMyJtJ193ZFFvb94HR4AfDs173+HdtNRUXQlrE+VArXNqBPMBb/2vU0CHLS1STO+bJeEcX2NqJjamo70t6lXGPEvavdsuRfl3U5nVxsH11A8HrQVaoH4bzfJlXKY5FkBB599NexFluPLfvG1HwY45Dl1In5HGa2BodI04PSpe/g9ZFuQjB3ZrLpUB0uWH8gEywpz0K1zKcHtdV4+pyCmb2kbg889+GAVZZb7CY0LCR/04+m1H8dF8nR4lnQ7dqG7rG2FwiZnMqj9gbVHrMG4ZIPruUAgVlSSEut6Gfj44/M4o1F67Rj+/nC/d/QaEMHqDzIgARcwO6eAFF+oZVn9PBaOQnnG6FMvIZWU9Oh9cMBrR5btodRu/FdBBl7DwzigchnmetvAnSy6zHlzpAxXkSnEVsAOyTlRoOiKIkXoo4JHpCJyvBz5PkmOyNRhuJOPypJKxcmhHtQtk3zCRQcBras8fi80s5g= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: d350fe9e-a1c0-4195-c765-08dc4d18076f X-MS-Exchange-CrossTenant-AuthSource: BLAPR10MB5316.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 Mar 2024 22:07:57.9664 (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: X79lN3hiB+bgGdoI30+Hfj+LkOUqnV+YN1WzSj8+fzdAZGcqQSm+oyfVQLXxrx0iBNWeEQohTXyus52a7zkQ/i6Jg9Q8EKXuzrSzrpgCUfE= X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS7PR10MB5005 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.272,Aquarius:18.0.1011,Hydra:6.0.619,FMLib:17.11.176.26 definitions=2024-03-25_22,2024-03-21_02,2023-05-22_02 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 adultscore=0 malwarescore=0 phishscore=0 mlxscore=0 mlxlogscore=999 spamscore=0 bulkscore=0 suspectscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2403210000 definitions=main-2403250138 X-Proofpoint-GUID: 2tJxvSGn0sULF1nqqrY-5dUPZOGwSBz8 X-Proofpoint-ORIG-GUID: 2tJxvSGn0sULF1nqqrY-5dUPZOGwSBz8 From: "Darrick J. Wong" commit 4c8ecd1cfdd01fb727121035014d9f654a30bdf2 upstream. Remove these unused fields since nobody uses them. They should have been removed years ago in a different cleanup series from Christoph Hellwig. Fixes: daf83964a3681 ("xfs: move the per-fork nextents fields into struct xfs_ifork") Fixes: f7e67b20ecbbc ("xfs: move the fork format fields into struct xfs_ifork") Signed-off-by: Darrick J. Wong Reviewed-by: Dave Chinner Signed-off-by: Catherine Hoang --- fs/xfs/libxfs/xfs_btree_staging.h | 6 ------ 1 file changed, 6 deletions(-) diff --git a/fs/xfs/libxfs/xfs_btree_staging.h b/fs/xfs/libxfs/xfs_btree_staging.h index f0d2976050ae..5f638f711246 100644 --- a/fs/xfs/libxfs/xfs_btree_staging.h +++ b/fs/xfs/libxfs/xfs_btree_staging.h @@ -37,12 +37,6 @@ struct xbtree_ifakeroot { /* Number of bytes available for this fork in the inode. */ unsigned int if_fork_size; - - /* Fork format. */ - unsigned int if_format; - - /* Number of records. */ - unsigned int if_extents; }; /* Cursor interactions with fake roots for inode-rooted btrees. */ From patchwork Mon Mar 25 22:07:13 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Catherine Hoang X-Patchwork-Id: 13603083 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 3CAB871739 for ; Mon, 25 Mar 2024 22:08:32 +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=1711404513; cv=fail; b=Acw0bYQoHfEcdt5W4caFsuLgfSPDbR3XUDeYy6NMkhkCgAPxaY+qKzooJj4txAWNUPOmK6hhfSa2ZwTxG+JWZ/XNEX9Cq37ivPWJZkVTI5WGCAnRgq8MbWhB/6RlW/QZPm81z8dA3dY2rs+uOuw40nPsEd4pN/UssSGFmmdKUpE= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711404513; c=relaxed/simple; bh=cstpUEXCXLgYdXpPdsjpRrU3LZyqMjsv7hPtB0XEp3E=; h=From:To:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=PDpZnQJNE7PTI9q0h6qktHW1XBts4xCmce9XtgFP4TwO+RmRRGlb57mAvEfBcgDwk9vhfURvaBbx0mUzEOQWffSUohsS7+YM7PreRV1YGvY/xxNRYAoUgm+4eWtQD3RXJbDEPGvA373JgYIwgGd6LvzgdASDbPg+UFukxVwUknk= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none 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=kKh9AxtQ; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=JJ5sMpd7; arc=fail smtp.client-ip=205.220.177.32 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none 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="kKh9AxtQ"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="JJ5sMpd7" Received: from pps.filterd (m0246631.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 42PLGEQx027540 for ; Mon, 25 Mar 2024 22:08:31 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : subject : date : message-id : in-reply-to : references : content-transfer-encoding : content-type : mime-version; s=corp-2023-11-20; bh=cePYlPqZxHd7Yw9S71e3PThDlkzeNg+RQnRl8voIzY8=; b=kKh9AxtQ9+u89GREzgquNJLCflPlbOWpcxW4KG9CmGbf668Z/q0+GgoaOeF6FcDaKiZa lkXArC7NjAcIc0Jf0b/4dZjj7LN/sBQlCx7kTlIUnBbr7H/9Is94My1nxDObZkXzhfkI 1OmjQsrU2I+MOaX9Cri9/iAkpQrHPMi6nyobqobAL+1w2WOyv1kzpvn5d2H/Mlp0zaue oDZQdl+opw5tyJdQgbSQp5a/FdAo3RyjFvKbLcuEQwUPAicann4/0QI2pgIwWfrjeFgK HGrx0dsrcm7LEC2xHCJEnXZXCwJmz5+NDtIgvTSpfOAEv6VW1iGNN/GXB+9omvPNlrAX BQ== Received: from iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta02.appoci.oracle.com [147.154.18.20]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3x1nv43s0n-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Mon, 25 Mar 2024 22:08:31 +0000 Received: from pps.filterd (iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (8.17.1.19/8.17.1.19) with ESMTP id 42PKKedn007109 for ; Mon, 25 Mar 2024 22:08:30 GMT Received: from nam12-mw2-obe.outbound.protection.outlook.com (mail-mw2nam12lp2041.outbound.protection.outlook.com [104.47.66.41]) by iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 3x1nhccu0v-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Mon, 25 Mar 2024 22:08:30 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=RKla1yCiONpOdjDi8SbLY8Tr3DZntdVHGFQsYFxo7vTL1OLJlpAs99Vb8Tb7JDhxxD/6OIyqzwpFo+I/qWd4cLjRcfvarMmTMgsrAQA41yWZ4sTrG+ICVlUTxXmS92TrBOzYanEV2uqc9dq7p4c2nk4wT7tObAeGIpk7Yj/TWalDwd+zkf5LECEokJWABrnwdnm0m8hjeyecP2vR+81VBRfA9mlbg0BSlrMqbmDS+e+oAIbMHUQB8za8CNZHGHx0DNm6YxRoGWtGdslgPW7fW59rTdfWnGgbuevi5FhM3oWGLI/NVLzUZa0DEkp4cjcVzKYhyi+/e5m8ZuCtsz/tbw== 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=cePYlPqZxHd7Yw9S71e3PThDlkzeNg+RQnRl8voIzY8=; b=Ipqya689uc/AHravldLcEi54EH4sxASF6+NdoJrJqKWNBaW3oDqrHUKMihhoBZ+VnJYDIdAbaYVbyQgsq9LA/v1/6F3NeKHnmGo2b0JXZn9okz9eDZmsMHVx1NkPJnh1yJWRRH/e5xYcTEvJfR9hMmYaT0CmwWkW/WZ7Q8sr3hO4fZsVf14JMCUsHjG9o5cTj1xQkiX01WqxBKFcoEc+N9kH4fEFUhX0+6m+qCzTno1sv/uJHno4dPpqacc8jKQRo6c5UsvZr6u5FRx1vBpAFrALjPULWkrOOXCoYvpKanLcNqHovve3FARmR9iXv5zGjHa4wCgB8QOUuOMMo+zF6A== 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=cePYlPqZxHd7Yw9S71e3PThDlkzeNg+RQnRl8voIzY8=; b=JJ5sMpd7WXL8UJUTqTY3UEWbs8HItH4Ocp+ICUZMi7yc0iEB+c+AVxpYmzmzoz1oU0pgGIB1MBDD24nwmy0lIAaQgNCbHDse5uyxENjV9BuSxqERBKcxSyQv/2+awufwVMVyLgnIluiSkeWnDXBtwgFFfjaiOz8qGEz5vd+24ug= Received: from BLAPR10MB5316.namprd10.prod.outlook.com (2603:10b6:208:326::6) by DS7PR10MB5005.namprd10.prod.outlook.com (2603:10b6:5:3ac::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7409.31; Mon, 25 Mar 2024 22:07:59 +0000 Received: from BLAPR10MB5316.namprd10.prod.outlook.com ([fe80::404e:f2ff:fe2c:bd7a]) by BLAPR10MB5316.namprd10.prod.outlook.com ([fe80::404e:f2ff:fe2c:bd7a%4]) with mapi id 15.20.7409.031; Mon, 25 Mar 2024 22:07:59 +0000 From: Catherine Hoang To: linux-xfs@vger.kernel.org Subject: [PATCH 6.6 CANDIDATE 13/24] xfs: recompute growfsrtfree transaction reservation while growing rt volume Date: Mon, 25 Mar 2024 15:07:13 -0700 Message-Id: <20240325220724.42216-14-catherine.hoang@oracle.com> X-Mailer: git-send-email 2.39.2 (Apple Git-143) In-Reply-To: <20240325220724.42216-1-catherine.hoang@oracle.com> References: <20240325220724.42216-1-catherine.hoang@oracle.com> X-ClientProxiedBy: SJ0PR05CA0128.namprd05.prod.outlook.com (2603:10b6:a03:33d::13) To BLAPR10MB5316.namprd10.prod.outlook.com (2603:10b6:208:326::6) 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: BLAPR10MB5316:EE_|DS7PR10MB5005:EE_ X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: e5waoyXT0Hr+iJx4AILp+6Uj3lUY3Ogcgka3I/ff6rXDcBtXA8EEmzViKjgsGyHuwJxBzVvs/lcID01BEl7uMO3J0aT5Up7Ahn2E+jF5929A+mYkVPGHbEykIjUlD2kfKFNfHjEIUavs74PY0+greGWFi6jQjeGcO7wf7ryX9tXa0ySvb5qBJRDkv4pULrZf4Ofm/d6REXSxYQ69dqPq9GPt7fXHvXVZhW6/7zH2WR5G/y3mWtGPp3DF7Od6hF49FRYiZmH307Lm7XbP34N6546sYTyR2ztnBTXTNqCdjMvMj8CKuRdJ9Sy4cICO7zsxvnRXq0AZDivRACqzCZHHUAHXRGqkF4O2JlGiGeFHz1bryYTWnns8QxGl6Ol5yhPBWcegXa8T9jUdyvw7ExtSJD2uAs/RNZ0EYlmLdLEg1z4dhkyz+9FJICund+hW2pD/CAvWq5Pz7f5LP5WwXxAu2inTdl9Sn6O2PcZOE5Ho8T5qUcZ03oxezRxS2ZXO7X1ICR9iEZbPIIj3sbdFRxsI88tOFzDNLeMFFpZm4xYKuWkk2fm6egvLJSwX4cnlxlcuo1oZgQXeaLi04rCOjo95f/Fhrk+Kk+2RBecYPxoxy4BUIGyoDhYVncuLKpeM3Vd6YJHa7mp1QNJ+GdLv5VKPxpM/4gTYX3pEUum11eT+2HE= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BLAPR10MB5316.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(376005)(1800799015)(366007);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: L9s5WOg1Jh+dpeaBRmRq2yQADXCeGmCYGZrfbtBn3oxiW6HNykoGjqJ34mf+D9IMDncQZRA6WPwQN/Rd+JZ/A2afABPMzCAl5WVOKNMKQf/HDXSTDk6krA94/S56T7FaJi/RwXaEx1RItWkqBFeqhhHF9fn3/JhujrGalqTMbYeYrSCoYswO7I1Rc1ElkPZ7QJrPI4ds4C41W2yr0o5XW/XNScpFB2c/FXgfxx8wtXSr0oyOC3Kg9iLKNqI1UMDS8NhmKSI6DQgOTu1QbUX3SE6afIn9XP/AuV21g9FhfUCXEGfXO/gaTwbTbnMj8BjjxeXDLNs+4ZWXm+eWRrz6CKmNXrMOUwGPaKb7HP3PGr1sKfTKzg307DTXbG0qqpX4Qy2WjF48ddlU0QmxKkloMoyVL/osKOWGiycsacoTI50iRIo/IVrlmcNAgE0Jse3zmkJoCdzZ2B0gz3f5qCIsiQU9WVn1e5BiCdMCgwV3fWGV1Nu1Qkz14nVDcmsW3cguhcgR1uONcAXIHMwJTDecXGlUfCaj2g4wqys4vh4vRzhCeawXeB4ZkNXybQlO+8GI79HWVzqUSQadezh/7l6KFB9MlLcBOQNJ+z2PMZfzh98EwficsEad9OmGvbqo5AcIT1I2ubE+ksgZG0kxobIMfuQUcYGL1XiLsEA3JwZfxC1JqOe8YGGI/4xqpoJBE2RjXTut10huFfCOpqdyUTq0sQ//nZDtjLE6+5stgDElxFMbfrq5BZ9ZtHr9dAE/AQAGdzgHP5sESo58ZPeHOnTVbQujVYd5zUdTBYcJlF1+lW/9iaXhxYMNsNNPr7AfJODSSSp+IYwDX7ahjVoZMhaGt6lF1fLqv1q2gcvsv2+EQaOFBERd61hA95A/ZBqakESeN3WwECGxqg3h+hoc2iVICEzjHg1YTBp+qGw9DvuuQbgfletc06INFYKHQBQ7b/h6ArZ+NgiIJ1okJ8CVqeC+rsOvOqMR6dCdv77r0nCisoDRcLprdZEN+BpTandgB5TiovCp3M59wxES8Dd1pZdW+w46GCGK2Geh6eJDQl+AII6dAWQhPZ1PC4s7Zbwasq/hezhQURDn2wFiqXg5PIl907m/3EkzzLAwm+2HQWoyuPC880YDzyYvjsktCbCEBPy3qH6MxrZ5Fu6WbCcjgcwvxJ+7/CainVJlipA0lMyUKbXoMn5c0bf5V+IbrCkojClgsKIwVoSftW9fBMb48T+WRT+Pa3N5sghYMUQnB+zbGpUW/E6zKsOZ3XmKm75sYsBcuPYYUKg6n8VW60z7TNmE2wuVj9nZyww/jbzx13/gI+jp+q9Oh4BeGC0UcZFONK0Hb5fwAFxw2dZlWNDwbi/ohpcjiDNyd9NzTDxTrVyEMIV2WPzXqKpXNS3WGWQAYiO/7VXWe9x2hX37NuotDtr7e85k/DKe81ffmqhc5b1Gs9vafbVBGlIFn4Dp4s/UbCCJlrv26cHJ6MmRzCL6ayE6L83US5X5ilKhyKe25o3tANnh+cFctp5efAc86jIjiDFzvgH0+4tUN8vv53r4PPSbxTx+CZaktmBqG5UKAFx9CrK4vT0vxQzQrqNEEwEbcBluc7DEAa7KHuDlJ5Di6Utja5mwRMDQtPTjZ8zcc8DBofqhnH61jqy+b0sbOdzysSkNuTzi8YGJDvxJToZCW73awg== X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: CUkg0H8AMms/qqlyvj8BU/mMrux77IPkIAza7jodsuhco7t2GBLhYUfcF6NhOn4D0Cq2/IfU2fbgaEeFlZhWsm1H+XnE3eWoXgrzModYtdaaYNDoxZCQ4DE7r+AYDwJTwYPEWYZ1mkXTQ2nitxob22wrS/IfMRXrJzN6PKTDuidVv2cHYjmwv9FaRyluxrKGKSVpvhiiBgt+hQ8yMN2+2Jt3eP/Z+MJGs4elokXd4eLehfBML4VDeHO4eltYvypS5+yF8D/AakLKIfFo8vi5+qJ2u7HKQU5e2/hxL8i4q4VTE4Z6uDlNYEE29ef5W9MlHjegw2O32jthiEKhe+kpA87ZBPXERToAtsGGUXPzTwzwvYyXroIpbPzIKPbVN+V2Qytf1XT3IWBgG3IGq5j/UDEIceGn/JjxyzDtCwLUEiRs9N9kf43big1ZCLKvq0TkxqtqmUz/puUxqLShZMLAMnd1beexNoJNlY2SZ4l1g62Y1p2FfQ0wNKPwYFsg6zOrzig7hZ8bede/anLnEVPCbPwh/J2T7Ry0d1ZwR2Y9soKysqKvLUrdqeX2MtXoA2D8s8hBrqVYLH5K6s0A+lOIQxba4A592Q6pr4ijLVSYjzc= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: f242f757-5bfc-43d0-0d5c-08dc4d180865 X-MS-Exchange-CrossTenant-AuthSource: BLAPR10MB5316.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 Mar 2024 22:07:59.6610 (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: d5CUYtUYy9ztEFVzNiEV0Zae7Z5GunFuOAZMhCpn1ahumGiz2hWmljNzY+Q2bVTy+3z83x0f3r0QZEVi19ArR91LBkPfKpDeBdwhPP7AGtk= X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS7PR10MB5005 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.272,Aquarius:18.0.1011,Hydra:6.0.619,FMLib:17.11.176.26 definitions=2024-03-25_22,2024-03-21_02,2023-05-22_02 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxlogscore=999 bulkscore=0 adultscore=0 mlxscore=0 phishscore=0 malwarescore=0 spamscore=0 suspectscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2403210000 definitions=main-2403250138 X-Proofpoint-ORIG-GUID: iqulw9oW6LtLH4V8sEMYOYw2qmZXAHqb X-Proofpoint-GUID: iqulw9oW6LtLH4V8sEMYOYw2qmZXAHqb From: "Darrick J. Wong" commit 578bd4ce7100ae34f98c6b0147fe75cfa0dadbac upstream. While playing with growfs to create a 20TB realtime section on a filesystem that didn't previously have an rt section, I noticed that growfs would occasionally shut down the log due to a transaction reservation overflow. xfs_calc_growrtfree_reservation uses the current size of the realtime summary file (m_rsumsize) to compute the transaction reservation for a growrtfree transaction. The reservations are computed at mount time, which means that m_rsumsize is zero when growfs starts "freeing" the new realtime extents into the rt volume. As a result, the transaction is undersized and fails. Fix this by recomputing the transaction reservations every time we change m_rsumsize. Signed-off-by: Darrick J. Wong Reviewed-by: Christoph Hellwig Signed-off-by: Catherine Hoang --- fs/xfs/xfs_rtalloc.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/fs/xfs/xfs_rtalloc.c b/fs/xfs/xfs_rtalloc.c index e5d6031d47bb..4bec890d93d2 100644 --- a/fs/xfs/xfs_rtalloc.c +++ b/fs/xfs/xfs_rtalloc.c @@ -1070,6 +1070,9 @@ xfs_growfs_rt( nsbp->sb_rbmblocks; nrsumblocks = XFS_B_TO_FSB(mp, nrsumsize); nmp->m_rsumsize = nrsumsize = XFS_FSB_TO_B(mp, nrsumblocks); + /* recompute growfsrt reservation from new rsumsize */ + xfs_trans_resv_calc(nmp, &nmp->m_resv); + /* * Start a transaction, get the log reservation. */ @@ -1153,6 +1156,8 @@ xfs_growfs_rt( */ mp->m_rsumlevels = nrsumlevels; mp->m_rsumsize = nrsumsize; + /* recompute growfsrt reservation from new rsumsize */ + xfs_trans_resv_calc(mp, &mp->m_resv); error = xfs_trans_commit(tp); if (error) From patchwork Mon Mar 25 22:07:14 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Catherine Hoang X-Patchwork-Id: 13603072 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 9B50271747 for ; Mon, 25 Mar 2024 22:08:23 +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=1711404505; cv=fail; b=sJaUKDpqV8U3YoNR4cCY2gXsdhlpax+aJm3pmGIfKElc9WpSJTg2/X11JMzUK0+3dxS3P5O1Uyuqm+3lk+0ndwDmQj0KsY1HMfnWWP3D+a7JfAIfuDsD5HMVKCw9wWENXqFfNcPXAq8mkR4w+tQK6Ngk70/QmdYR028Fut9O0f0= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711404505; c=relaxed/simple; bh=hZgIyjX10qsOaqHEWxFRmfK3lfRT5srw83ssH/qjqsY=; h=From:To:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=aCEN4ida5hVv1nd2Jwnnn5gpektUTd0wqvtPFXCSqcmGHSf+9zx8vAFYe3BdessvVAr6fHmxvN7o8aaW32eG8MKdNMbWxKkoiQ3asNpPt7WbovpD8PTuYokXdRyBZfZZ3Kr60kPSvVS7nXTsz5tzF/JCak80RqJ/iN6CJ5l7g9U= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none 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=X7yOu/J6; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=rsPwWuXV; arc=fail smtp.client-ip=205.220.177.32 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none 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="X7yOu/J6"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="rsPwWuXV" Received: from pps.filterd (m0246630.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 42PLG94F032565 for ; Mon, 25 Mar 2024 22:08:22 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : subject : date : message-id : in-reply-to : references : content-transfer-encoding : content-type : mime-version; s=corp-2023-11-20; bh=+25WyXrzuippma5QtHRS6LN/Fw5xJeR9GHTYiePAS88=; b=X7yOu/J6vJ/M3gVi8twlPtavB6BhaLCF9ngV9I/m1G5tl9mK70m+CJ1qpk/H5ViNJM7i KY6zqGa6kBlb36tbzpSEnhSi3k6QDhy+btdU3waiD6jq5c0SsOQFfeXVx5/qt1AcxpZT 8TAASwrIVZ2HYWhY/CLddVPS2QpvGZKUPz5M4go/LLhVtdxWwgIbsWWmi2xPBQFAwhIj WVos35KxQUu7bngVj16QL7OqraXz8N/XwPdghUzyzv/3GP3b8ZJJXTpHG759oE/lJkb2 Y2GgfGiYyWxpUin04kukRJPZo/l5pDr26R8XsoVsSHC0Grk3Ddqzjdx//WH+S9t9F7+m 7g== Received: from phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta02.appoci.oracle.com [147.154.114.232]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3x2f6h2r8c-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Mon, 25 Mar 2024 22:08:22 +0000 Received: from pps.filterd (phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (8.17.1.19/8.17.1.19) with ESMTP id 42PKNtd2024519 for ; Mon, 25 Mar 2024 22:08:21 GMT Received: from nam11-bn8-obe.outbound.protection.outlook.com (mail-bn8nam11lp2169.outbound.protection.outlook.com [104.47.58.169]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 3x1nh6ccn9-2 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Mon, 25 Mar 2024 22:08:21 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=LSayUvXN24NZwK8B28drWq7nVkJ8GFwDkkUvJdOmNXsgzgrNN51SoUE20FjPHYDrGLV72RzbU2cFp4ZKuLQzG/D6tCwuWKFbVhHG2J9afPP1fCmKbQBPmzN2V+6dhpQ2gaUCsPaino4JlKus0l2XA7qbRZeP+YIQh/FCaY/P50mWzC+bgBQ2hrwAWQkUIRyX3c1zo3XcMhxON9U+0bzPEQHork8bhbBBfGXjxI10iM4RdIlqnmjY0v927Ux1fsYBdTxDTtKo3auOJqNvmoOFT7kTFcxN9HBjP9iX9WId4RjXrQPdlB6bJ8Xznu9gUs2igpDurgK8D0Ns55qpV7Vqbg== 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=+25WyXrzuippma5QtHRS6LN/Fw5xJeR9GHTYiePAS88=; b=EhIzAm2bcmA0TR9X9h8nPx9/hvZ3ntg+OUJvEBqNOY8SJv11wC4WgM5xBsbwN38n91rX5vPXGYlpFxIUDylariAi+22hR9846l+zxT48DbGi0tW9HcrJmpbZDx0JGmabdWgohjlLdb+sp328O/gtb8r0wybwf9QF1nw2rOFOlI6dTGjUSLIcDwt/tevvhYFUWtDTal+uDSiv+J4Ju8CtCfkQVhh5LJvkOJQouGPFChwlCI6efczEBjFww6sbCKbWws1LKwmZu26rxc/1J9mJhMtFJtChe0EmVREmJ0fWsWv6DTW7cpAlFgOKfgDPwjzG4uq29Lwrp6j/6gquRZqJwQ== 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=+25WyXrzuippma5QtHRS6LN/Fw5xJeR9GHTYiePAS88=; b=rsPwWuXVmouQse4XJ0bJ0/HrzrvkTuspaaJMeUqyYgtafbG8jNa8x/Szm32bRNpbFN5UnxFM2nEhFmV3avo/MnbAASaRq4LvcvtN5sPG93dqyHMaBmmsPlI7RBtmDvVr2bE6pg/JpsBn97NjsMSuCuqOR7jJ74GtydlqJYYnYo4= Received: from BLAPR10MB5316.namprd10.prod.outlook.com (2603:10b6:208:326::6) by DS7PR10MB5005.namprd10.prod.outlook.com (2603:10b6:5:3ac::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7409.31; Mon, 25 Mar 2024 22:08:01 +0000 Received: from BLAPR10MB5316.namprd10.prod.outlook.com ([fe80::404e:f2ff:fe2c:bd7a]) by BLAPR10MB5316.namprd10.prod.outlook.com ([fe80::404e:f2ff:fe2c:bd7a%4]) with mapi id 15.20.7409.031; Mon, 25 Mar 2024 22:08:01 +0000 From: Catherine Hoang To: linux-xfs@vger.kernel.org Subject: [PATCH 6.6 CANDIDATE 14/24] xfs: fix an off-by-one error in xreap_agextent_binval Date: Mon, 25 Mar 2024 15:07:14 -0700 Message-Id: <20240325220724.42216-15-catherine.hoang@oracle.com> X-Mailer: git-send-email 2.39.2 (Apple Git-143) In-Reply-To: <20240325220724.42216-1-catherine.hoang@oracle.com> References: <20240325220724.42216-1-catherine.hoang@oracle.com> X-ClientProxiedBy: BYAPR03CA0023.namprd03.prod.outlook.com (2603:10b6:a02:a8::36) To BLAPR10MB5316.namprd10.prod.outlook.com (2603:10b6:208:326::6) 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: BLAPR10MB5316:EE_|DS7PR10MB5005:EE_ X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 0HRRTmqewiKVbOGMwSnVmmnzy6nyDOyYJozPC953T3GdeY9tHoTJhZ74/scsHm6zcxjRoI9kQ4R/OOwdR1sZyFJZ/Tz6zYPAayyWoAaomkPOAygw1QAIlM/efih5Xkh02ztiFpN19nNO/pixerJab6mzZlPRZnN9rVC9IUw1EbteRXGehY8vRKtR4eELOkiyQ49CVCZmeRg3GnQ8NzHUibUkHoJlgUBEe5MdC79AxkeHulldZJHd6GgmH/ZbZyQP4QeGsSCRbSH9KKY2FOensm2479JezJQuB/u9587G3f3a9Q03r4Ef/LHnDhVu24lP7ipzQM6VWMe1AJxRg3UtRgw0QOmpHphFuQAfcZbZzaG7FZBNGI35NzC4XnlCXse2QoXtheHxm5+K3fCd+vqEERcjCNBBTAI31oWlJLai9kccFHuplPr+s2G552IcEQ3cFuXcUCRRX1sl7C7Tm7/xWTh7trVdwOam6F3LgLvmm4DTzuarFMDVQqUdeB4iCoX78I+qKwRtgsrkGd8H7JNppv2pZLYD1C8W0U5gukICr7PsvQ+n/mza529aSJgl7hrR+2h/NkhEWq97NU5ZehXQU72bwEceY5oDKhD6Ky1lyiXP+Le9gUqSXn1C0TXPLTmbyXRrVosoOqnVrJobJZNE+HX/RAF6QGKJd0GIWVOOGIY= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BLAPR10MB5316.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(376005)(1800799015)(366007);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: UV+opYZXSepD4kSu6w6oWOLQafBK/e923Qkc6CLXYGF98X8rGQSYrcqv1LjklV1a2LXeH/yYiSh5ABpdxWvpFcDHEim52iCu9B9TFC0QuomRru8wUTtGq4A+qG87h/xb1bWKLBLhvaaNgAn6vgp/S2HbCDX4F19JLxmIAdGo/dHmOkBO7nY8OlXHEMPO7oRmv0wSZGg+v35kY+XBdNwdAmpioGryiV1vNr3wZUXksqIu8oJys8VKlohbgZyKVR6DlefhO4TPTtthfdJ7eilGFA1dYRb527YyXBd1fKFPjnDAKewkmaXLd4wxF2E8dG9peU1lasJWVj1KUR+VMrDQaZvA94P8ugP/kMuqi3gCpnPIsI0P1kBVi5ENNvSMGovimA0e72gsZKPZXfzHRRX4mL5jXot82rRdq6b5Z7G+OMRGWI03EODw/dq1g2z05M49Mqq6bANIad/lAaBa4h+T5hkL1p2h3okYYOaZPQD5gzoZi1mVNeBxyjVDb1wka7FkmE3/Cqe1oyYgWvNn4VqkpG5RD28OctWsQhcRlROn9qCCZB5TvNXF43TwIn8xIuqaN7ggoOT0E7XEYMwwwOW5VM2W4YyPDfCQlFccDLN8t/lpybEqT/rQervvwVyI0Q3N+ljRMl/N6O3cxAog/GOSezrzIMey7pMM1q5hXTxYZac7IvevMb24M86f5fdTXQeJQgfNW3VByrxnhOiiLwqXF1VKYOOXL4mT0b1pNI0y2s7ZnfYUXTH5KjqwcIsPjZ4h4uwu6ZxNp8oP92od6R3YLGlStJ8YctkSTxyDR6gtoK1mAcmM5wzqRtcbPeDYT+i7d/9JoOAezKC9XlPYDsgIf0iFL6TEnWEwTX2a7B4jhz27xAMpKLxUGT9ST3BdgV+MV3OcWb8BJoY0X9iLgGnCG9+i8m3GsdaylM4hZ/DsIJZCZgGlJbbnu+HM9nxLeqZzlFtaZi+4APTlflPaJUJfSzgaAfFn6/mvRqwWJXWPkaePpjBR6NFAFBpQ0ATyj/PN97ZoqmciEjhh80e5uox3vurCb6eNvQ3MCYIkjcUzF+jXfV953YuVgN4pJrddkG58W7GoVQm1f0c7cKA4WHxErfgQUSP//ws8CMT9xQV02xiQgZ4caLyGEoQgsrHQ6TwpuPRQUVGntwkQ7zAsn3zpfj8iTdK29MPmvju3QVsow6ubWQJTP4BKUOnDjUeOsjRJCjs+uBYKt5t0jipcHBWqnimA6R63FyRWc2AFax2jXfElUAyUdMviiQVkPUZEwRzTH/+4qRrkNLgPumWQKSeL87iSMqizKzUrpCrswjnUAE3YdbejFYQ8nSr/RnjqEkTfTvaNjoQJi7ZOeYS8FONoCCRcTnb0ccr0Er6biNSYD3sGLvzacBwfpY6k0OqCvHx2d3Kp2hkJ+ijal/TDTHqR4KKbEKDjFGzJWBe2+0cuuLV6MRvNImxm6E15GFKTj6L4A3oVsD5ovXipnzsDnHxnU1nUAUWwJ48jJ0Xf4JPqd19nUx0CrRB5XYVHfgOKpe4a5LP0+eQkcGKZkIU8DOMUbkdJlp6Z2ktYJ76j+g7jilBW5y3E/SjWRKy10zCC0mR0Q8TrsT85SCzHa0QfA6sztQ4M+lxTiex2LrJtVzeJt917FKuSt3RdwkXuADBI6gdSCwQckUUZMxlUyjCyyNybgA== X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: yFuO9/PBo95NEuqxGXIfgNzs2TiGQQ1lpVSK/TFFXDk9LDa0T8dg8kqkTq95wFYnS3TelT0AH148NQv6Ms0mbZHsAsVvDQqhfVlUW4OukgaThKRnGZy0ZIm6sIJttPEh6vRRwJ05flYFofk1cuxJG9cbi50EmDGmZYJlWkpwBDAHX2pHdA3zmJIxq+LlD4lWjF8CXJD+kTMDeQXz/aokpO9E9mPxELW40IFzy6QOTECvr9GYD91xJmjBR0yNCt5F+jPIntgP6/qQ3dPPxLAJd/GCKaooPFrg1GKUtxS2/YedOjxfDbIZn2XC3RBUDbJAYsK301HAORSHoy5qFt0OvQ2G9otMji0B9jcoJLAHlaY/S9Db7XhYl0V/nzBZZlJGzk1gVhoke6vJfWwpGewsihVUy0alEMKqwpKtzIv620j4JYX9CXa1YFVkr05u9mPBBWLnCQeRBFeRfEJIT+AHtxJ+fNyEJw/+OF9GQoPh5wE/g4+Oiupa6jKilLgPNUCLxP/BzTFk6E066WsdU3bOg3VzLOIhj11ZeakBUjcscUHpLSgmxRwu2v9C/sw7Tvod+jAgeP0lu2leEDXQIn2HK/FIhcWjkqkrfVEs5g3eRu8= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 2e8e092a-da0a-4c71-c2e2-08dc4d180961 X-MS-Exchange-CrossTenant-AuthSource: BLAPR10MB5316.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 Mar 2024 22:08:01.3118 (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: vl2e7AQp9pJv12+OTWtTOiJcjLU9P5npdQEONiTX04gLNxk8MBK+8l/uRX/2cpGkz/RNzGt4igCyqDaqazftFhaJ58YY3x7qUdj3B1bxMpI= X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS7PR10MB5005 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.272,Aquarius:18.0.1011,Hydra:6.0.619,FMLib:17.11.176.26 definitions=2024-03-25_22,2024-03-21_02,2023-05-22_02 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 phishscore=0 malwarescore=0 suspectscore=0 mlxlogscore=999 mlxscore=0 adultscore=0 spamscore=0 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2403210000 definitions=main-2403250138 X-Proofpoint-GUID: PpIx2O4I3XJ23MMcxSlNB3LTSxyRNEnD X-Proofpoint-ORIG-GUID: PpIx2O4I3XJ23MMcxSlNB3LTSxyRNEnD From: "Darrick J. Wong" commit c0e37f07d2bd3c1ee3fb5a650da7d8673557ed16 upstream. Overall, this function tries to find and invalidate all buffers for a given extent of space on the data device. The inner for loop in this function tries to find all xfs_bufs for a given daddr. The lengths of all possible cached buffers range from 1 fsblock to the largest needed to contain a 64k xattr value (~17fsb). The scan is capped to avoid looking at anything buffer going past the given extent. Unfortunately, the loop continuation test is wrong -- max_fsbs is the largest size we want to scan, not one past that. Put another way, this loop is actually 1-indexed, not 0-indexed. Therefore, the continuation test should use <=, not <. As a result, online repairs of btree blocks fails to stale any buffers for btrees that are being torn down, which causes later assertions in the buffer cache when another thread creates a different-sized buffer. This happens in xfs/709 when allocating an inode cluster buffer: ------------[ cut here ]------------ WARNING: CPU: 0 PID: 3346128 at fs/xfs/xfs_message.c:104 assfail+0x3a/0x40 [xfs] CPU: 0 PID: 3346128 Comm: fsstress Not tainted 6.7.0-rc4-djwx #rc4 RIP: 0010:assfail+0x3a/0x40 [xfs] Call Trace: _xfs_buf_obj_cmp+0x4a/0x50 xfs_buf_get_map+0x191/0xba0 xfs_trans_get_buf_map+0x136/0x280 xfs_ialloc_inode_init+0x186/0x340 xfs_ialloc_ag_alloc+0x254/0x720 xfs_dialloc+0x21f/0x870 xfs_create_tmpfile+0x1a9/0x2f0 xfs_rename+0x369/0xfd0 xfs_vn_rename+0xfa/0x170 vfs_rename+0x5fb/0xc30 do_renameat2+0x52d/0x6e0 __x64_sys_renameat2+0x4b/0x60 do_syscall_64+0x3b/0xe0 entry_SYSCALL_64_after_hwframe+0x46/0x4e A later refactoring patch in the online repair series fixed this by accident, which is why I didn't notice this until I started testing only the patches that are likely to end up in 6.8. Fixes: 1c7ce115e521 ("xfs: reap large AG metadata extents when possible") Signed-off-by: "Darrick J. Wong" Reviewed-by: Dave Chinner Signed-off-by: Chandan Babu R Signed-off-by: Catherine Hoang --- fs/xfs/scrub/reap.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fs/xfs/scrub/reap.c b/fs/xfs/scrub/reap.c index 86a62420e02c..822f5adf7f7c 100644 --- a/fs/xfs/scrub/reap.c +++ b/fs/xfs/scrub/reap.c @@ -247,7 +247,7 @@ xreap_agextent_binval( max_fsbs = min_t(xfs_agblock_t, agbno_next - bno, xfs_attr3_rmt_blocks(mp, XFS_XATTR_SIZE_MAX)); - for (fsbcount = 1; fsbcount < max_fsbs; fsbcount++) { + for (fsbcount = 1; fsbcount <= max_fsbs; fsbcount++) { struct xfs_buf *bp = NULL; xfs_daddr_t daddr; int error; From patchwork Mon Mar 25 22:07:15 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Catherine Hoang X-Patchwork-Id: 13603070 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.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 17C255D737 for ; Mon, 25 Mar 2024 22:08:23 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=205.220.165.32 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711404504; cv=fail; b=tudL0x8j3Yx0MhWbOgaj91tKSzxAVYwigFui9n3kRyj2tCaq3UELSch0socQh3F20pOXjt3Zq/sWuUSvXW9ggM50X4l99saQySwdqv8YuQHdBppFmhiysXVImCeXM5QMiWntTy2p95A8LbLOMy2RyjfW5C11QBUV9OMElbzz5wA= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711404504; c=relaxed/simple; bh=JPMCXlV8206KHdV3q3FC2lyQ1FTXFbeAbGNdMV1Ja8I=; h=From:To:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=Q2FYgaxxGi6oAP6O3RDCNX9ks8fvWJk82Y157l7PcGOdXq2W4ccBeaULhYwHNFkZ1uZyfvlAqCQ9wiP4JS2LVuYuBhJpvGv9H10GcgDQ3luh5mni+pO2a1c1H0wFw5mm5WVMhew/tMRbCItTSEpyNDk5oM3Pl4llKFrohL2zhqw= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none 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=gYm1sXQH; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=drU/SpkR; arc=fail smtp.client-ip=205.220.165.32 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none 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="gYm1sXQH"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="drU/SpkR" Received: from pps.filterd (m0333521.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 42PLFwwB019789 for ; Mon, 25 Mar 2024 22:08:22 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : subject : date : message-id : in-reply-to : references : content-transfer-encoding : content-type : mime-version; s=corp-2023-11-20; bh=RdCapkp5Ewd/yu5KRIjI89apQOsXtVBasfPPPY5MzTs=; b=gYm1sXQHO5rQzSW9Sp3gEidFFGtg5LXqSAvdFjzHLdEkc8uKFqAcGyexOQEc5wOlLRyU Ma/z4Yuhy/4/NUUAKBxCoJB/AgJnGAHXrFXPhjX8xXJaTuLvpyiANDpXmOcA/sV7HaNP bk28vMeIu+AhAdCPNWU0RIEOdpPdMfXJ/PNCB00REaSAS+um1qUHI6rjC2tW9S8zGnq5 n6bairRZy3NtEeLwBhBwUOd+fhsmK9sOjxatiQ+BnYNNwTET8vQ+gz5cT0uOKmP93dev N76QgYoz3Xypw0HXzuwcViaMWndHe0B3Wbko0yCOl85nctrjVBG5wJ0nvCxUUwrM1+WQ 6w== Received: from phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta02.appoci.oracle.com [147.154.114.232]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3x28ct32gr-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Mon, 25 Mar 2024 22:08:22 +0000 Received: from pps.filterd (phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (8.17.1.19/8.17.1.19) with ESMTP id 42PKNtd4024519 for ; Mon, 25 Mar 2024 22:08:21 GMT Received: from nam11-bn8-obe.outbound.protection.outlook.com (mail-bn8nam11lp2169.outbound.protection.outlook.com [104.47.58.169]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 3x1nh6ccn9-3 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Mon, 25 Mar 2024 22:08:21 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=IrpjZIAkTdEtDsF7cuZJ/AEfo+V+Mg3iauN2+UCt2DCaJvrsuaQk+Z4P5DhQNRU6B7nCdPCj2vwewgDeNy1XOPyIhfSHfIrp0VaFuOe9T6ScDrdzx2tJNplZmPGsXEUhLnhQVsSTHEFVYp15PCF1t8QSfxVxPmYZVQ6ypp6q6ruNBVI9fK9g8qsk/yih7Gi4tlwnUVmheAKY32y8Aw58jKVc6Tm9QSJu+dto37Ydg1b1oUCdnjR+woGDpv+6jZQVkhhOEb4nKBNrCfzTdoygikmYWXrLekDNqeGunZ7HH7LKLRMjXQ/GKH3gYjuxc+suz04KWpoUsJdFA/EpAhX9MQ== 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=RdCapkp5Ewd/yu5KRIjI89apQOsXtVBasfPPPY5MzTs=; b=jiMCWFzbDPLCpVBBya1ZBOLmXr56RX25S4eetSWAWYfulGKjMb6exn0i346s5MJQxzjP0GiRw8r1CIaKWl2b3R9WKZY6mp3AMKDSSivdtl4dnW9ZI5qipkywikOq2eeX2zBm3LtCyZDL0W/oSr+3aV61/0FEUq/WaAETQHZZDhs/CPIrHyIPefyjjMllWYDP9iK8wm/SQMwQlen8N3yR8L6xmZoDETW17jvZij/R8OkTAwN+ishAXT89HBqIoGEKYFlEYt78WLbqvvn6IdDHLdYiW/UWfsFDlasgU01FBwQ1pib/D76oEtf4Q/VAOXCCMa05n5sx+BV2zfWh1ziHhQ== 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=RdCapkp5Ewd/yu5KRIjI89apQOsXtVBasfPPPY5MzTs=; b=drU/SpkRZQhw2xvSyaL/iwUtJ5Ppyq0VoLKrqpEH3ZY8J0UlC9cn5ywcPWIdhspGIfKUnNg2Ba0vRdujlLEst23xzr0gU+X3rNA5p71qyVmfa55QjMWvjc03BhHzepx5Y78TZjEdZt84bAy9bm213nF3ZRxEquuzA1pFrEJYrUY= Received: from BLAPR10MB5316.namprd10.prod.outlook.com (2603:10b6:208:326::6) by DS7PR10MB5005.namprd10.prod.outlook.com (2603:10b6:5:3ac::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7409.31; Mon, 25 Mar 2024 22:08:03 +0000 Received: from BLAPR10MB5316.namprd10.prod.outlook.com ([fe80::404e:f2ff:fe2c:bd7a]) by BLAPR10MB5316.namprd10.prod.outlook.com ([fe80::404e:f2ff:fe2c:bd7a%4]) with mapi id 15.20.7409.031; Mon, 25 Mar 2024 22:08:03 +0000 From: Catherine Hoang To: linux-xfs@vger.kernel.org Subject: [PATCH 6.6 CANDIDATE 15/24] xfs: force all buffers to be written during btree bulk load Date: Mon, 25 Mar 2024 15:07:15 -0700 Message-Id: <20240325220724.42216-16-catherine.hoang@oracle.com> X-Mailer: git-send-email 2.39.2 (Apple Git-143) In-Reply-To: <20240325220724.42216-1-catherine.hoang@oracle.com> References: <20240325220724.42216-1-catherine.hoang@oracle.com> X-ClientProxiedBy: BYAPR03CA0035.namprd03.prod.outlook.com (2603:10b6:a02:a8::48) To BLAPR10MB5316.namprd10.prod.outlook.com (2603:10b6:208:326::6) 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: BLAPR10MB5316:EE_|DS7PR10MB5005:EE_ X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 91S33lIFUN+vDxgEbg0l33bPexSgw7r/NDbuu/TkGx1GHrS8Ff4hNJeJ9g7dris60ewUWSp9z8i2fyMpb0Piqjvr0CpgiF0oTGo82agAw/bQJYX32gerbmlTj1DiObXUmSIR6mKAslJPOKDA4vYTh4S+OQVMDqCfpJ8VkCUXCVzGsFFeyiBWInoTfG0IKs+pS6caaXr68QOK5eZ9eI2VfGsazobZFzWjy0z7JtKjPHb/VHLQXFkCnyQkUnceLegrHyVEUGQpzT70S+HKxj26tdhTs35qLW1F7f0cfUTVYzRsr39vqEuhh8euFi/aECzVoo/AHXpYoYT0JHL8up2NqX7rqxEErt28buOcSzm+uhli/ziWlqlFbs4tBcfzLbiRZB8s+6xYpp/JeMq4zcG8QQmI0/mBW34G+HdWTm1KUe3ynnNa4YItDxaZLI5aCgEr3PbEdspmPSXBMHPSS5rRMCCY8pit4IJ7exJPGXAxM1cirTCT5gMYhzAZ4ceaUXkGW8m9OjbIAn9yKxCkSyyqESoJN/dq/ZofuFWZABNFoUOA3pbjrIL7lLLB6ayAynlCinYN2aUsB3lMQLrQRciODAzt3AXyn7LYi32ZZGuzYy2Ukom/RN/R2PzbrzZw+aFlK/gtcmbJXz0WuNIsvYfBMLA2v6bTGkQIyu0THGrg0YQ= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BLAPR10MB5316.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(376005)(1800799015)(366007);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: +Ir5VRiTEEDTgo0Pfs+fs8eDkV2A9CVv0wGJwyH9wf8S11uR8R7+mY+X9DYdXSRj2EPphwp/kK8arO3sDFLrqPaIuk+RExsCIV0k1kgHO/pUe1eLUejgl1MNyAL02i+UoWHWR+alO5IhV2xur6d4zE6e7LX0iYW5Ip/SUZpu3u86ht/OE81cXjjiCjQzR4pKaPrsgY8PkZmVcs5NY2QsoDJfUfbw6iAWnX2opDuZ+BgAG9mahlxaR18Da8F6agX9ptgozfPedW4LItmKIHdsOD2UmyAL/+51zTq3y9l3ES9ZufJVbU0fStsNkQDwfoccfGtkQjl/p+GD7kePs/wd+zz/b1LmGdVTQ346zQReZdBZDF4MGc0ua16zrnX6fctFZZiTOl8qUJvXoi32tkTePuLR3x3aRUci1OEnbAxvrFlo/6lRoK2f6e7KICK5yDaDX8zEcgIbyLCKyBt21vPbEZUnnXPk9dE2hO3fZ5fLi8BdOLJfL2Nnj42Z8j+9AwqVz0cFTJMnDuuTp0gqmX4VOQBvjo52eBb0zzj9kW25M4m2UgNKTKzDyocVRL+i47Ie3oIgfo0aS5fPZxZcUrwBfwwbPVaULtAuoGTJ8Q6w1l2Ev6XTFJeTKY5yia1WsYJLQaBm5Z/VUk17vqEwfG4pEuH1shuQ67fTJHEOs0sRz0tJJkLZ+SspeB++pKMdP08ILw499K3U4V6UR7fXc9s+WI5k1O91lvdnaISxXERvYiRAgNT0r0FWKVfBmmGxiMVYzXk0Iv4yBJGmxPJ/wCT1JwI0fxyIOmA4aR81JieNqH+Uoutf0Eu9cPBbsshARDgjWXD3ljAm6w+WsWFwALBWpasQoTCqlKP8rhG8LAMW2MOX2IXZtp0z8iSiS8v+/kz588t8a2QqqlwKue1JMccvRMlPDROSuYNULQdkXPBi+7Bu3gwWffg7Z3q8MLoraD2eV0Ii8rEVGrYP3bFlNiM3CfFCLWdAfKm0w9BWbD0iGqTh3w4HyRezM8JPB6nSENvo9CsqIw5iYhqp/qzufHx5HRUZF6OIJJZHTn8UhmMy/uUbRaPPLZuoKApsHFMHFYxdcffj+5V0X/G2qThYqn8sig+HbvD8cEC2u8WpjpoVq0RvzAmIEFqrf3X+lNIXng2PI/kuIM61OE0YSjOjZDzJDxpbU4AKxUYdJom9die3qzyf/jxmjjClHfLLDlf/qd1TLZtAWCs66jX3gbKv2B0CtgRDEJf2xHk4sw6jK5oHdc/OAXuAcRpVhe7IwnvACU9GIQ37YphpUG8mL5qM+KRIlkx6bZ5Owf+j5TllxYyLfSD5PA5aZQ4k+nDYENOxJjD68IhlwvGwNpyzefJ24SwgxbGxwVH769R/p/0QqFFvmctfvDi8xpT8QQj09wq32iupRUnmJ6ZFYI91rpgC3ni/v0RzlEMO4To2Ax36G4FYqwVfPD4ii0cRsabwY1sEqUTfUVbVCasX9ho6BKFJ9NvowgkMd2Kn33o4BF6KqNLQlirpxhqUOkdhalDAcn7MmWsaTUD9isNnf+h7oypcrxyPYGbuNL3k/GzBeHqUKGcl1L86olsni0aAna0vfKfH7M1O28MdCGIIGfYbbkpHOQ7FyVcXtzDQiSdFRpBHBP68b/26Kx22Fq2XdVCe8A6/GDIYQdt1zfDrY9Q8hjSyyB6PIA== X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: +xohphjo0BY7Jl3MZrwvJOiaduR6yNlcCV3KRZ84X3Eya22uprMQE7+0hNDpvBlm74iMziC42JI20TfopVsmLm0RiuaGBuGmBqhpnCYCRK+dpA4Q2/CPdIg4NMEqbNXUNv1/7NMTMH8gH+JAv8GPTf8L6tfnL3pbsTtNA5l6hWkPosuY4+MbTwTz5BNqK1XRip9QnxXtMXcb+C2s6qMO21gwrEp8WUAbKOyG9+u6EyKtYuq+a7imRUUJuHBUCF5D0wUQLqGzs7mc6bVSli5aJV2cy5pyg3tZOrSDTJquVbk57VKHjghRZ3HA7gPI2116M7j88e+W2Y7mI8R/w81uw7Il1p4KGILnq1jkeEqqqQOUCaFCQzrACB+qmvFIibb6qqWUtvOReOdXzM5udvpZIItSgSlokiFnTBs09JyaDei0TvgUQNBKMqgJRzihb4JkZcwWj9yJ4TbQt14rIfFLwj8D9BNHx/fNfr8SesA7pqL5XYKu115LOA01Ld2EFqptlPc6FT+180xWSH/UPXftTVOtHSSnd44yVhnyvnJwnw+CY8ExlnfdoJp1KVfDo3h8P8Cjtq+G/2P/02/iYwo2hL/EJ6sAYPBfD1+RokNO8CE= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 6eefca3a-bb57-4ad1-8af0-08dc4d180a81 X-MS-Exchange-CrossTenant-AuthSource: BLAPR10MB5316.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 Mar 2024 22:08:03.1846 (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: 8TDncN9bCG/ix6G+oUlxfVEQDutYZTAQwJ1PL/7u01FbSsJHN+XdffAdVJdDkZN+P80DTggWSolouC0boB+sGhI5aAbk/3MDeNGEf7HWpFg= X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS7PR10MB5005 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.272,Aquarius:18.0.1011,Hydra:6.0.619,FMLib:17.11.176.26 definitions=2024-03-25_22,2024-03-21_02,2023-05-22_02 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 phishscore=0 malwarescore=0 suspectscore=0 mlxlogscore=999 mlxscore=0 adultscore=0 spamscore=0 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2403210000 definitions=main-2403250138 X-Proofpoint-GUID: SBo5XQR_67stZS-DPtRDZ8DGhhL1p77p X-Proofpoint-ORIG-GUID: SBo5XQR_67stZS-DPtRDZ8DGhhL1p77p From: "Darrick J. Wong" commit 13ae04d8d45227c2ba51e188daf9fc13d08a1b12 upstream. While stress-testing online repair of btrees, I noticed periodic assertion failures from the buffer cache about buffers with incorrect DELWRI_Q state. Looking further, I observed this race between the AIL trying to write out a btree block and repair zapping a btree block after the fact: AIL: Repair0: pin buffer X delwri_queue: set DELWRI_Q add to delwri list stale buf X: clear DELWRI_Q does not clear b_list free space X commit delwri_submit # oops Worse yet, I discovered that running the same repair over and over in a tight loop can result in a second race that cause data integrity problems with the repair: AIL: Repair0: Repair1: pin buffer X delwri_queue: set DELWRI_Q add to delwri list stale buf X: clear DELWRI_Q does not clear b_list free space X commit find free space X get buffer rewrite buffer delwri_queue: set DELWRI_Q already on a list, do not add commit BAD: committed tree root before all blocks written delwri_submit # too late now I traced this to my own misunderstanding of how the delwri lists work, particularly with regards to the AIL's buffer list. If a buffer is logged and committed, the buffer can end up on that AIL buffer list. If btree repairs are run twice in rapid succession, it's possible that the first repair will invalidate the buffer and free it before the next time the AIL wakes up. Marking the buffer stale clears DELWRI_Q from the buffer state without removing the buffer from its delwri list. The buffer doesn't know which list it's on, so it cannot know which lock to take to protect the list for a removal. If the second repair allocates the same block, it will then recycle the buffer to start writing the new btree block. Meanwhile, if the AIL wakes up and walks the buffer list, it will ignore the buffer because it can't lock it, and go back to sleep. When the second repair calls delwri_queue to put the buffer on the list of buffers to write before committing the new btree, it will set DELWRI_Q again, but since the buffer hasn't been removed from the AIL's buffer list, it won't add it to the bulkload buffer's list. This is incorrect, because the bulkload caller relies on delwri_submit to ensure that all the buffers have been sent to disk /before/ committing the new btree root pointer. This ordering requirement is required for data consistency. Worse, the AIL won't clear DELWRI_Q from the buffer when it does finally drop it, so the next thread to walk through the btree will trip over a debug assertion on that flag. To fix this, create a new function that waits for the buffer to be removed from any other delwri lists before adding the buffer to the caller's delwri list. By waiting for the buffer to clear both the delwri list and any potential delwri wait list, we can be sure that repair will initiate writes of all buffers and report all write errors back to userspace instead of committing the new structure. Signed-off-by: Darrick J. Wong Reviewed-by: Christoph Hellwig Signed-off-by: Catherine Hoang --- fs/xfs/libxfs/xfs_btree_staging.c | 4 +-- fs/xfs/xfs_buf.c | 44 ++++++++++++++++++++++++++++--- fs/xfs/xfs_buf.h | 1 + 3 files changed, 42 insertions(+), 7 deletions(-) diff --git a/fs/xfs/libxfs/xfs_btree_staging.c b/fs/xfs/libxfs/xfs_btree_staging.c index dd75e208b543..29e3f8ccb185 100644 --- a/fs/xfs/libxfs/xfs_btree_staging.c +++ b/fs/xfs/libxfs/xfs_btree_staging.c @@ -342,9 +342,7 @@ xfs_btree_bload_drop_buf( if (*bpp == NULL) return; - if (!xfs_buf_delwri_queue(*bpp, buffers_list)) - ASSERT(0); - + xfs_buf_delwri_queue_here(*bpp, buffers_list); xfs_buf_relse(*bpp); *bpp = NULL; } diff --git a/fs/xfs/xfs_buf.c b/fs/xfs/xfs_buf.c index c1ece4a08ff4..20c1d146af1d 100644 --- a/fs/xfs/xfs_buf.c +++ b/fs/xfs/xfs_buf.c @@ -2049,6 +2049,14 @@ xfs_alloc_buftarg( return NULL; } +static inline void +xfs_buf_list_del( + struct xfs_buf *bp) +{ + list_del_init(&bp->b_list); + wake_up_var(&bp->b_list); +} + /* * Cancel a delayed write list. * @@ -2066,7 +2074,7 @@ xfs_buf_delwri_cancel( xfs_buf_lock(bp); bp->b_flags &= ~_XBF_DELWRI_Q; - list_del_init(&bp->b_list); + xfs_buf_list_del(bp); xfs_buf_relse(bp); } } @@ -2119,6 +2127,34 @@ xfs_buf_delwri_queue( return true; } +/* + * Queue a buffer to this delwri list as part of a data integrity operation. + * If the buffer is on any other delwri list, we'll wait for that to clear + * so that the caller can submit the buffer for IO and wait for the result. + * Callers must ensure the buffer is not already on the list. + */ +void +xfs_buf_delwri_queue_here( + struct xfs_buf *bp, + struct list_head *buffer_list) +{ + /* + * We need this buffer to end up on the /caller's/ delwri list, not any + * old list. This can happen if the buffer is marked stale (which + * clears DELWRI_Q) after the AIL queues the buffer to its list but + * before the AIL has a chance to submit the list. + */ + while (!list_empty(&bp->b_list)) { + xfs_buf_unlock(bp); + wait_var_event(&bp->b_list, list_empty(&bp->b_list)); + xfs_buf_lock(bp); + } + + ASSERT(!(bp->b_flags & _XBF_DELWRI_Q)); + + xfs_buf_delwri_queue(bp, buffer_list); +} + /* * Compare function is more complex than it needs to be because * the return value is only 32 bits and we are doing comparisons @@ -2181,7 +2217,7 @@ xfs_buf_delwri_submit_buffers( * reference and remove it from the list here. */ if (!(bp->b_flags & _XBF_DELWRI_Q)) { - list_del_init(&bp->b_list); + xfs_buf_list_del(bp); xfs_buf_relse(bp); continue; } @@ -2201,7 +2237,7 @@ xfs_buf_delwri_submit_buffers( list_move_tail(&bp->b_list, wait_list); } else { bp->b_flags |= XBF_ASYNC; - list_del_init(&bp->b_list); + xfs_buf_list_del(bp); } __xfs_buf_submit(bp, false); } @@ -2255,7 +2291,7 @@ xfs_buf_delwri_submit( while (!list_empty(&wait_list)) { bp = list_first_entry(&wait_list, struct xfs_buf, b_list); - list_del_init(&bp->b_list); + xfs_buf_list_del(bp); /* * Wait on the locked buffer, check for errors and unlock and diff --git a/fs/xfs/xfs_buf.h b/fs/xfs/xfs_buf.h index df8f47953bb4..5896b58c5f4d 100644 --- a/fs/xfs/xfs_buf.h +++ b/fs/xfs/xfs_buf.h @@ -318,6 +318,7 @@ extern void xfs_buf_stale(struct xfs_buf *bp); /* Delayed Write Buffer Routines */ extern void xfs_buf_delwri_cancel(struct list_head *); extern bool xfs_buf_delwri_queue(struct xfs_buf *, struct list_head *); +void xfs_buf_delwri_queue_here(struct xfs_buf *bp, struct list_head *bl); extern int xfs_buf_delwri_submit(struct list_head *); extern int xfs_buf_delwri_submit_nowait(struct list_head *); extern int xfs_buf_delwri_pushbuf(struct xfs_buf *, struct list_head *); From patchwork Mon Mar 25 22:07:16 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Catherine Hoang X-Patchwork-Id: 13603075 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 4837771732 for ; Mon, 25 Mar 2024 22:08:24 +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=1711404506; cv=fail; b=qy111hEbqFJZqaSZAI2F/IBkphU9HhNVwqj+/+1+mVGpJmhdzE8wba3cW5577mA1/eyUxRQwhb/r8LIPPs32gPz2t6u1TpB07tu6TX4km1ChKqx18gjmP1NYDK04sASYpmmTS9bnQUUHMScttk7ZPKkpECOMixJSdEQsj8OxE8A= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711404506; c=relaxed/simple; bh=oHSrdpfkoEh1ngNtKeNJqpeL4o4knMTXQ2MOuKl/F0w=; h=From:To:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=rrCBOw2rSCtg+5nY9bMK0qlJ4Wt4vrpIB7Xt5iMl/a1DEFz5JYWW76JgcU1FTUvZJ01TvIqP40KPyiLqhQm5ez+h36kRpi2Fr5IZOUYXaOq85y7kcJM+Jsgzk/8JIM9wpRNkFwg+oOqVbomHZUt9S/y2LP1AOgCwkH0BPThI7Ok= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none 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=dBzruGDf; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=Mder2l9/; arc=fail smtp.client-ip=205.220.177.32 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none 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="dBzruGDf"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="Mder2l9/" Received: from pps.filterd (m0246630.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 42PLFvRk032449 for ; Mon, 25 Mar 2024 22:08:23 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : subject : date : message-id : in-reply-to : references : content-transfer-encoding : content-type : mime-version; s=corp-2023-11-20; bh=KNM2q5sUeeytz1bQol0whl0X3tbcUn84s3I8u8mhcek=; b=dBzruGDfEw4YTdQGudz4mtecQ61jmynpL7aWWO/vy/HtAXjIJW9SP2mHZ/LIAfeDxqqg rkzmk8y5wH3Vz8F9occ68xFomoQZtyRTW6urM1xpdag1TEZWB3cYVHqQYwyGREmyV8fC +n4tpi2lfZr1YF9zZB2DU6YnuivlHc15ToamEq5io0gGiaydTw81ViLR5JHS/88c/GVp JeUiM30gK20XK9LsKkTy6SxzK+MVOmu26fY0KHdHUhyphi1bjrkZYlxpRvtCJG6xW2Yk 8KNgzSaXFER51E/85Ex3dJRXM6qyS539PAnU8xn+YMQKdGt0RbxiEPjTJMeJsfa/ROXX Fg== Received: from phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta02.appoci.oracle.com [147.154.114.232]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3x2f6h2r8g-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Mon, 25 Mar 2024 22:08:23 +0000 Received: from pps.filterd (phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (8.17.1.19/8.17.1.19) with ESMTP id 42PKNtd5024519 for ; Mon, 25 Mar 2024 22:08:22 GMT Received: from nam11-bn8-obe.outbound.protection.outlook.com (mail-bn8nam11lp2169.outbound.protection.outlook.com [104.47.58.169]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 3x1nh6ccn9-4 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Mon, 25 Mar 2024 22:08:22 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Iihn5jFWMAplaHr9TXjyZql/KmFbL2fhapDr1ASvnNB/CuA7zFYA3BRxL8aSwEaEIR3pF/VHlsw/3n1MCIuY+LRVeck9xwGMwuO8r9JgaSINw9EbCAB8l4ixTH7/GRNCSEL9PAKNGi7hA3LqWCskWDUX+zMDuS0q4tJ8lWQmCc4C8vGTfILTN3Wv28LjODjJvDUXU0pwKC5O2C5iqfiQHkh+hLC+U4UfqXcZw/EQ5T2ZkVwG91Aj3/xAWjCrI/YQVjhBshz514cgrpHI86/5dKTD0qDhHXgX2Yu7beGa6QoNe0ztRJArX1vTW0ciOpp2pXi3nFTOxTDEDXXzeroPKQ== 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=KNM2q5sUeeytz1bQol0whl0X3tbcUn84s3I8u8mhcek=; b=iaRRFuKFP4p6K3YRA9qwaDlQlYC3DOqPH1nIXD/bKwNHSq6VfJ/dEWSm3rhQyi+LBLqNRXRJ8TKOgLnUkY/og6paRbYUQnrs4Z2vXIKRhJEx2e2wMVfhBzm1fQPEJhLGCjCk0xnzYJkDl7MnbJoxZS6giRJaobBrHXaFpuE2flKm8ykJzIUF1+LjW3gxc7OAoMyroiG/iuvn4tVxoCF0dWHGpgxcqURWtLAvv43szR1WZ7NAQdRO3XcbvpwwaJg1nusUUAY12KxxzJ/J394F9msFPCfnDnGxDt0adKEo3D8nfZPItTeqfjg16Jjw8EuTLoUhawLbmrXkQwwHpV4YhA== 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=KNM2q5sUeeytz1bQol0whl0X3tbcUn84s3I8u8mhcek=; b=Mder2l9/htyVABL5ZNdZcKeegfiSaGPzSbKR11yhlrPdMMnbwJmNkHQPQpvFlZf0LsK1CynomefTiQiSj388YD2UDe1FDr3HaiSUkJcURPp+PFGxzNzZSlIDj9yh/ZF3H7lgQfEZBq8/3l8YJnwS3FdwZnCSmAY5bzlWOHjBAGI= Received: from BLAPR10MB5316.namprd10.prod.outlook.com (2603:10b6:208:326::6) by DS7PR10MB5005.namprd10.prod.outlook.com (2603:10b6:5:3ac::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7409.31; Mon, 25 Mar 2024 22:08:04 +0000 Received: from BLAPR10MB5316.namprd10.prod.outlook.com ([fe80::404e:f2ff:fe2c:bd7a]) by BLAPR10MB5316.namprd10.prod.outlook.com ([fe80::404e:f2ff:fe2c:bd7a%4]) with mapi id 15.20.7409.031; Mon, 25 Mar 2024 22:08:04 +0000 From: Catherine Hoang To: linux-xfs@vger.kernel.org Subject: [PATCH 6.6 CANDIDATE 16/24] xfs: add missing nrext64 inode flag check to scrub Date: Mon, 25 Mar 2024 15:07:16 -0700 Message-Id: <20240325220724.42216-17-catherine.hoang@oracle.com> X-Mailer: git-send-email 2.39.2 (Apple Git-143) In-Reply-To: <20240325220724.42216-1-catherine.hoang@oracle.com> References: <20240325220724.42216-1-catherine.hoang@oracle.com> X-ClientProxiedBy: BYAPR03CA0005.namprd03.prod.outlook.com (2603:10b6:a02:a8::18) To BLAPR10MB5316.namprd10.prod.outlook.com (2603:10b6:208:326::6) 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: BLAPR10MB5316:EE_|DS7PR10MB5005:EE_ X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 68aInk76v5Xz/yJfECaQZn9mhM6vCobwo5SfZ0f3ABs6+2AMExzLGIX8cf/ornCEc9beU/kCDJennL0gvV5rwnJfm1lnbMRHN2/Vleb/P5+Yi34K7nuUcdKJhze5gDAi8h+22tVjiCwbf/N+93CCJ4rC5/A4L1fRzZGmKTuJFZzk4WviVuyK/Z50KVcRLJo5ij7IO15nF/8MdThIljhS21Y7K/aWVOl8qWajZ6Nry2EL49L0jAefaWtjLVO/HI/fw2wIIA1w+MTpUjt42lLsh2alGqchM9Ye+2uSI1AnuKt5HeyFOLIx0ghuSPuzpsPIHrdqaGURJ/qqgK2SPEN6ovS0k5kSWEqnSlOkN34dVJZWSWWOCJcKWF5LSdIEv3UgCg1U5HxZkpwLogqHQrYz3oYnPhZlAHeNfWBZl2jnLvR7FxEczj6K6SzXY1g3OgknapV7fvG5BUzdiu7aMw+JUGrBgCnFHcZqzhAtZ7djJJmUGxUjx8J3RncWzsRptRUzu3DPr5e9qPVH18ygyFEjs/+0wLJTvOCjyOoe57oOhduFI8JPJv+MJVEipFUBSsxtgHqmdMYD7QUKZOOJAaWdHveGe5xYZToi/+8pfG562AcUwsyYIFTJiUWDMyIBvOzT3glymlLNu5Y+eA2VoTt8MPxyRWGf+++AKAOQZ1zQJWw= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BLAPR10MB5316.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(376005)(1800799015)(366007);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: X9hl8rHUBGWoJzXcMTvTyKqFRQtWLVilQn91YzhEWeDFFVfQ74jFj++iHUoTsFb2gaUCn0vFBGHF+lI6ZjfXt9vLvNMjX94cmwGkFIIOd1vfAgY/wXOoyEGeWfBYIeaaTTX8TcRvvxARJpZkT4MdYcFMtG+SFJxYXlr4S7NNf52lg9CxeNApgKKjj8wB5qcTfyfpSJMOQB3myd621iuty9Us2X17EE25Vq8vZcrp7/dxeSj1nyYTezMDFvdBYphPrMFmxxTiSGoPIHvHvnEXKvMtR0jemzsYCWiKLdTm/t3GlmQZm3an7/NOGiXDnJ3vq8RlaRFvLIlpNBfkgtL6utTrLiNHzQjzky4LJiZPxtRoasU2T21ZWbuLmCadPEvZZuazf7stj3AZ3EfkpcNQq/RT7evj26ppYBrPyRU8B3UEdakgngnoKlG++q7vm/bI10D9MF3VbPkkZKZqccrk0NHJPGkACnZYVhYcZ7/Y8I1dv+9+vA1rwiwD3LdFCshyo9bx0eTVuZyH6k82KbdnaaqiBbURZ3YhumYC4xTE//gjyqsfwfow8Gf8eWIwLcyRXErSq/KPo+5fpZ3wTb6XE8mm0ctZbSECjecvCw8afjg0hv00KfbKyZI0/2VLIJFAGPiEH9g/usGDRfTZ4tecnOQYBBrikFIxYlPkk2/zIRZ1IYIyzkHv93j0hcdD5qwqpOyd+T21o4iuJV+qsbPaquXc7ew3NCQPgLB48JWeqETUqRSNFJeDnq7ATbmOtKcNmUUMQJ9U4sknxT8yMYG7u2goLuOCmDC+eKG+hA1RkbRZByrsRD2ahprVcDdJLKPKNnZljHPXe3HeNnTev/dVKiVn1814PJI38mjIYEgaZ2WiHbIom7bcSBjrxfK2TtsyfP6ll+gnvFphgoKdmKDvTd98OmhMYpH06JPbS1/YMkYavbN+y7/0xaQvl8c0b3+v18DoYvrvh5NBDJBbYdFtw4tjwH922vf66fx0jhDveRixLcK0ultB4/jOsPSE3M1Yckc9v62wF8N2bhU6axJ4uQqHVK28Ao9s2K6qwHIGgQCKND8kXK2r/9/zHrctEJHBrZM0Igk+ZVF78Ht0Y/7bS3nooDhrGj1DsaV2y8pZ1TZ3tZwxRU4KW3WMBybw/bcKz+ijn0SpeNLB/fJgjtOQsFMHZ5d0h54Zhohzze3jhPY32zPi8INyL3SozkghRj7MZgg7GmAYTeTCVKI0DAhYCSnmX7nBYfwregNHnjAIcc6bcoRGl0mOjYZp58BV4N02c7fG1pFey79a8wUdm9hrf75uhcBy+SZVyZMsUliPxo+z6diqs1itAikyqWQOEiQNgZR1NQfoma6KllamjrYRJlZ6lavTsZu0WLDJdwdmCI/vz1voM7sf9zMwlZNC60n36fNlPwqEGVhsciQnEAmwlRpCOL6nvs+248UlxSc3ryUtwhnSCpCLLuowb7oTFGsRwKihb7B2053m6JcgtE4k07J6BndAAROWPhXjuNcfumDeby8/OqgjH0+XWwONQWtg6MMwP0cr3GFiyblt/4cituefnhhfdvFS700tBhAAi/7tLYzRRne4KkQ3OlYUElAt7mxkmfv/t6+NtCG2Dn0nNXJLn0IDIMzct8Cq3ogAZXPIWz6mDuj0y3gdmRyEphkyBl4GV/YfK84Xr+Nl3iqPxQ== X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: i1S+cF+d71UOTdxpsewJeoGNonrINWQ8AsPEIMTlwnHjoXF7JMd3dgowKqibRKau4U13/7ovqAb3F213ynOzVNWwXx6BBzGZIc0ILk4K/9pZrL9AKe/nDYzc2XZ0c+q0fWXmTMsWLJpPZHgpAFXcv0VvUMFnsZNGuWcJJX/+7yFx6zB78IjIJqRRfLNunN0q4/ahaY7MBa/nFb3iYVPVL5d+SpwSB7jSGaIVNJ32Rv2uY6X6+9hgd4L95tLcJADuFl+YQhxY8Ov2dbCNK0sTJk5/ihGnCKdtEDGor1TcQEP8jfIJVsY/TycmL/WCZdeLVqSz0k4UiorUINVoMLqJ/sYtkOV3kkdEhdmyu/VhUxEAv9EzfWZ3q+G+dYjiukSOfoB/3CLF6Gk+W3hPxE6ew8o/tVT+QGdachDiLo7tCu0bQbqIaqx6tpj01oNhZ4xSeRlNrp7DUBsfJYQ8Xv75JMrg6s7RRC2Ii0pe6SDaRFb9sIF5SuJDeCjcbBwM9nwnqKZ3f+mm9/kLJHH0h21kUAAzuRuPTNn90UFN5NAyvi97+B3CixL6CwjDqBxef0304wICAhm3FAurmv5vFZLZlaYytje+1/ItjkHkGPy2QbE= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 1a33193c-2f1e-4900-46d9-08dc4d180b80 X-MS-Exchange-CrossTenant-AuthSource: BLAPR10MB5316.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 Mar 2024 22:08:04.8233 (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: OmgwMADPtkU0q+gfKT/Jqyi92ssHVRnWcyUxZJucUGVY4uHOu/QYyai0pqjl5twJK+6a/M18c9NJc0vYYuKV6J2zcQizuITns1FRZHXaYIg= X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS7PR10MB5005 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.272,Aquarius:18.0.1011,Hydra:6.0.619,FMLib:17.11.176.26 definitions=2024-03-25_22,2024-03-21_02,2023-05-22_02 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 phishscore=0 malwarescore=0 suspectscore=0 mlxlogscore=999 mlxscore=0 adultscore=0 spamscore=0 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2403210000 definitions=main-2403250138 X-Proofpoint-GUID: kDPZKJBv0TYPgCo3FnJVKs1Up457hwQG X-Proofpoint-ORIG-GUID: kDPZKJBv0TYPgCo3FnJVKs1Up457hwQG From: "Darrick J. Wong" commit 576d30ecb620ae3bc156dfb2a4e91143e7f3256d upstream. Add this missing check that the superblock nrext64 flag is set if the inode flag is set. Fixes: 9b7d16e34bbeb ("xfs: Introduce XFS_DIFLAG2_NREXT64 and associated helpers") Signed-off-by: Darrick J. Wong Reviewed-by: Christoph Hellwig Signed-off-by: Catherine Hoang --- fs/xfs/scrub/inode.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/fs/xfs/scrub/inode.c b/fs/xfs/scrub/inode.c index 74b1ebb40a4c..d03de74fd76f 100644 --- a/fs/xfs/scrub/inode.c +++ b/fs/xfs/scrub/inode.c @@ -337,6 +337,10 @@ xchk_inode_flags2( if (xfs_dinode_has_bigtime(dip) && !xfs_has_bigtime(mp)) goto bad; + /* no large extent counts without the filesystem feature */ + if ((flags2 & XFS_DIFLAG2_NREXT64) && !xfs_has_large_extent_counts(mp)) + goto bad; + return; bad: xchk_ino_set_corrupt(sc, ino); From patchwork Mon Mar 25 22:07:17 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Catherine Hoang X-Patchwork-Id: 13603073 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.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 E88F271748 for ; Mon, 25 Mar 2024 22:08:23 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=205.220.165.32 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711404505; cv=fail; b=tA89W4HdUzVSQTQCiX3Z7I3mw9+FlF6JvucN2UtKxlfyWU5jwpmUYtuWrDxw969FHxh0eZefqYPp0z4kLWIgaqNf08zH4cxCf6nKhaswvfLLFFs/45Z2FV6/3rqJT89qpuwyqQrmazYtbbvA169O6jQWd2d2Z4zAH9u/vRwB3AM= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711404505; c=relaxed/simple; bh=pBwuuBzYyeVhx4sUi1veE4RJuereL7PI11ExiH1C4NU=; h=From:To:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=ihtHaMCf64775X37LUDXsywYzCc7dKAAhjJyijRkDrzdCPIQPZ3YJWAsLjCaJuRlUA9w6tBYrJbywESYsIpxncW+ExGY5MyIZ0qpuKnSjPDJxWe816yfWMlO4MvI2OfUMWJ+5BzCkFP6tIoMlrK+JueAvt0+A+W75fcpL+StIn0= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none 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=Dg6d7D/r; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=YkqmTXD2; arc=fail smtp.client-ip=205.220.165.32 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none 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="Dg6d7D/r"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="YkqmTXD2" Received: from pps.filterd (m0246629.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 42PLFv6v027167 for ; Mon, 25 Mar 2024 22:08:23 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : subject : date : message-id : in-reply-to : references : content-transfer-encoding : content-type : mime-version; s=corp-2023-11-20; bh=fdP7Mh8b3yzecDMP/bpYuTG39mjzD1faKDskKQrtWzc=; b=Dg6d7D/r6q3iuInjJHyb+dS3vlWc0gxKv2WchT881R5qj8MhOOm0Tymus3AQwuMOKBdI P54ubKwQat5TEqVjXp2pRYZKYvic7+ATUinNjpX8uN+ZWPypURAlM2VMty54CqTqhDny HFEYzonI9Y5/KQ4gNXYwC+464Lsw0t3hlPRVHwIR+n+67xh4PzQNv/GMJAFDBUAAxyZP Kn+bXI38mBJwn2vz1J8bZPLI5apSivkvs0modQ4I9IBMV03gUL6uAqQk2kQLBzq7fzXE Q3KI0eGYSFxBm3UXEv//+zIqUYK+RynyBLaJmUAuyHrCPfSIc/AycKX9Sp5DzNJXRiE5 lw== Received: from phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta02.appoci.oracle.com [147.154.114.232]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3x1pybkqjm-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Mon, 25 Mar 2024 22:08:23 +0000 Received: from pps.filterd (phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (8.17.1.19/8.17.1.19) with ESMTP id 42PKNtd6024519 for ; Mon, 25 Mar 2024 22:08:22 GMT Received: from nam11-bn8-obe.outbound.protection.outlook.com (mail-bn8nam11lp2169.outbound.protection.outlook.com [104.47.58.169]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 3x1nh6ccn9-5 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Mon, 25 Mar 2024 22:08:22 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=N9DeKGhHx05gYP1onIUdstfa1Yo8jOEn17NCOddfEPd8yke4j/5kTjIzh2dA8OplNVshZqrqKf0AlYPjwz6+kE8CRfdcgiJOPe+gyYTy3ntWUgUsD3mdzzqzSWJ3ghqgE/AKgUs9YSFa6Lgq9AXzN9RWEB6OGb31z0vmWoARfl7ow2VMhEQ3V5pqYTvQifXZX/RMAM7aivc0aEZwjQ42BvhkgU7XlCV6Z3iWvHYcAup9CD1IsACBOrNQa31t81jsSxgIfChZB2As1Q0SdHcKd3jOolAwMOstkqS0UpILPE1FzqjJwRA/qXhElBlhJPkVOPxSBdvoKqeRO4lLP3UE0Q== 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=fdP7Mh8b3yzecDMP/bpYuTG39mjzD1faKDskKQrtWzc=; b=N8uve1GS31J8mE88erJRi1DaTG0TpfSLlhKz1lQH2Pn/1zh+FtbhYsq5o66jQR94K7X7WHvMOvxmzuKXeWOg9L0fcjBRqHkWoSMwgk/GpJYWxWYqv8CaCNZMtGw0JopPxMC9crLLXoogE5xzF3bE+eWmeDxZiEByRFz9kZhP6PS0IwHdykCxqpRJIh9qgTFE1NX4k66FO8K1jxaxcPas+zLkB7wkS48MyPcL1BiFc8muQNCgnXqlOLVXu1J/hl+umKyjcgayqKah4SKGVChPgM75vEF8LFZtvbAkg+5CVBh3iOy5xqjp5iiat12oM7cUomdcsErZ6TywND5Od5YvWw== 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=fdP7Mh8b3yzecDMP/bpYuTG39mjzD1faKDskKQrtWzc=; b=YkqmTXD2EazB5CeFUhKEZqGh9eBe11XY5fO2xsaPVjeh6TjGyaWPvZ9RhDyNPtW4s1r7iITGCcmGLWFpsFLUdiFKE219ok/8gr7/6l42AyFRSZ9BQxzxiD4a0ZEKLDYgbY2sA3Bio9QS9C3UOU00jpGxh542sT0MS4myTaqvpaQ= Received: from BLAPR10MB5316.namprd10.prod.outlook.com (2603:10b6:208:326::6) by DS7PR10MB5005.namprd10.prod.outlook.com (2603:10b6:5:3ac::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7409.31; Mon, 25 Mar 2024 22:08:06 +0000 Received: from BLAPR10MB5316.namprd10.prod.outlook.com ([fe80::404e:f2ff:fe2c:bd7a]) by BLAPR10MB5316.namprd10.prod.outlook.com ([fe80::404e:f2ff:fe2c:bd7a%4]) with mapi id 15.20.7409.031; Mon, 25 Mar 2024 22:08:06 +0000 From: Catherine Hoang To: linux-xfs@vger.kernel.org Subject: [PATCH 6.6 CANDIDATE 17/24] xfs: initialise di_crc in xfs_log_dinode Date: Mon, 25 Mar 2024 15:07:17 -0700 Message-Id: <20240325220724.42216-18-catherine.hoang@oracle.com> X-Mailer: git-send-email 2.39.2 (Apple Git-143) In-Reply-To: <20240325220724.42216-1-catherine.hoang@oracle.com> References: <20240325220724.42216-1-catherine.hoang@oracle.com> X-ClientProxiedBy: BYAPR03CA0012.namprd03.prod.outlook.com (2603:10b6:a02:a8::25) To BLAPR10MB5316.namprd10.prod.outlook.com (2603:10b6:208:326::6) 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: BLAPR10MB5316:EE_|DS7PR10MB5005:EE_ X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: o5tHNOlk+YcoHI323/BT7e3SEYuf/n/bQz8mE+jmVmp97i2+lKTm91Y/0LELZhnvmG3sDr+f2W1a92K/unbYmrKD6Sn3iC1Aj4mPSxXhYiRHZ5Cmm6pITcqHup0GlFYimgOysd+UzHzmicne8VKb0R7yz3QQutIu+1SONFTW4d24iC1jhwTcwV/FWEqTygiGgIv8DViqM/iBBs3ZHRHYN3yXYUhHuPqOucQaAJrvThNH1VQBxs5VAxAU+dZ14fJVUd5a07vkqemgbSGDLkyVbItYoKREIIow82AkGK0SzaEALnPZDWtZw+81cx+LCBTPdbTxNrB+gEooVXPuII1bxxi9DC+8A1p6Brc//kdtYre0vYt6+VHAodLVps1lndyEW7CcNCjjtltBBF8SgDiF1D5PiQ27JwnPJ6Cak3OAnL9jrL6CnV1Mi6D97KfUlU4H3b3fTZiWPRuXkHdUKxWeUVV31bp69xCcm4lsUxU9k88nj/98f90XzpN+w6kgOxM2VDT8cgewCk6ZhAiriDBTFYzI/T1y68X9TC8TyEXk4CZmx2PIYGUIJB68EFXhzladlc837NXvFoF+5syDkzL2rWfox2YV9gio2pH08pypL0mNgR1g4mEyxyU1RiiVX2twC2VbgZqQPPP4scceXhxEgLqcDOo26AsmwcaH0N9lfhE= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BLAPR10MB5316.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(376005)(1800799015)(366007);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: 4SVln1IAonwudP+SwzZTFKj/wQymfliPIlv62GHTxF6Lf1KnwUFMogOu5vuK5pNB9zebXlNRuMlFOvLqusBeqHxR+8HLCO1NSvnJS3NRO1n0oF8X3zpkZrMGlieoRXaZhpbOFS5WggkEJhaNW87SMHqzOW71n9aU4QjjfQx9IlCPEg1AzAcUodj9KEKsPPTgAOSt/6X9D1pJiUIbYDNAG3b3ewfSSGxw0TitKMvTK1L6C1hc0BU8bNgj3/IsI6rHn9w3jjkYv6GQXbiSDCAuIWuZiLb/PimwbVvN+5GNasSF6pz42TwCI9aUbJLmt5KaotgQ0lgToaUVV/XypWm+3EY6owWPJjFoVjUirTOXTfD4TstJ5TXCCx5dBceFnuXxkMS/FPvChC5oSCnXzZBIJKJvgo1CEZHaDZ9uhNgtjXT7CAzrjqkOWW6CJtBu/chCrtYP8JDM8Lj+Y45xPnKATzLCUTFZz/6bWWB+nq2i71rqyhaFE9gGMtont1fnL93j3HkiiVc5Z6/DT2M+lMejkgtWoyysWPI24jdSQDe4W6kf9cd6D4R0Ahk+ONoUqmE9C+IQW3J9JLrVq2eXeqe9Y5VkXNqjWhcrFD8iZDWkrt3YajSoym4iIJkgFDjhSgbY/YDZ8EX/NSrT4zUrp1P7ezQyDmSVykWHM9WcG5Ftme7/zT3baZBdF0S+PCVD2JQ/7lYmiMwKP+xzRpVm6ddwV7ITWHJZvOEvrzkxAefnitdAd9XpltprrcBTuaeAwg4ZJkDUC/KwhPZ02A3SWT0iPCYjjQxg8Z2S5GO1lkoa/4fJHG5yAnoUU2y+e4DXMMWFAzxZB40sc0/UWQwcItM6QChffAfG1W5PWBDzZgmgYfcgLRf4EAOUiochmrhwPLaEn4OE+Po5HKwqkzz2Iga+uSdAhqoozTYbhPVHC3iSBv9qXY6VQKSHbJ7jW3YOzU6aMC4UKybJz8mLMIkD5gQll/oETvQkQhc9kxSBNHhMb15Cm2g/PcO3knT0pC0BI1b5E6OfJm2rs70kHdEkvVhStQdwbkKqCQ4Fw6UX2UxQafBFoXZ9JDhYD2p17/LqmAXONSIYYr7NT7C3DlHx0xtRRbSGeSi4/xaf0e9Gd4H3qMsKPFG9ja9doXe42/pf26QOGSGacyA2rzz/deYasVWIsnGTupuIwtsz7HaEW566AypbgkRCjWJEhn7V5HH8Crozw0VftF1nNTUG5tIkWTbrqm3E7LAUVF/abczgdwnVk0d/Im3Z2qXHYdi1ZX4zTcr17+kGU2jEMW4hhvyyU0oh/W6+6r2VtZnenAdokquvs5neKZuobaiQplB/HKkqPPmQy8Id4nEuAMcuolQOCxgcjPEei05nofuK1dBm8GNiySqnewNHmnm3vo60iY53yeq20MCKSdfY2dxZcKQ3PeUZqVZshjvCcdEaor+pwIK2z19dxkzRtG/SU8v0i7cNCPgR7A+RmPXV5wC8XDjWOgYiB9c4j512Y8Dy1fPaToZr8qxGZEcLeAyusurXMf0281vhcDadLsyTIGDloQ34kIEm1g3SFaTKB1pHt8V3EQU8HLEqgcxqReTontZ1oFrNtczNQz63zpiohyyMHdCr8gbUYW/VLf3IX9BQGezu216CHgaSeMQeYm3cBtsqDENpgDzoE7fxFO0iD/HW/kKtDDx5Hw== X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: UQYkGsun7CsZc7YcexnMpSgZ1DRmCjHz2lwTRq/e6MysfI4xTwX9WSvDE3u/am+mcO7dKLoQZ18noACvDZ2s3v7DDAGT07ciPH4M4AyWA/Tr2oI6MF/pmiEVT2gTBkJ6fT0lmd1WibJ4hrlMr9XL2eUAVCuD2ydGtTaJ9u9O2c2DTrQEccWLLQwb7UduE7XajSn/5jH8UTv5RBi6vgHx2f90wy5jvTi0bvK8zYDFapivn+6likVReX0SJr73jR4uKMcJ05abX3sqr8h3H3HU7FslV3iGeDMHeFZQJWf+5HdeGvaCZfupe13JKaK2ZHkz3SaQyu3SMb3ok7h8/0xPsrW1HZkBmW/kNM1T+KY+KrqaV4amDyP/c9PrF7Du5RyeVIISepGW0eDs1p47SVOtPGJsOLlqHUlAz76/J8FvjRgVX/xCj0Kcilw/2eyKgBsEgswHvZKMC43L4B/ROXTKJaG7ssn1EgRdfb6gCTNpQAv2n04blxkk3YgHxnfVrFzcKM+Z0DDgl0BXO+NgOGIXadUV+V9BVICsKQRbueXKPhz+24k48js93WShme4vPL6EmpF8W5FRtpJyj7oUiyuMmLtr84SKbW9D98obXlgTp9Q= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: e15d9951-c973-4626-ea82-08dc4d180c87 X-MS-Exchange-CrossTenant-AuthSource: BLAPR10MB5316.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 Mar 2024 22:08:06.6103 (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: hB/w8VoH/wZsW43NzL2nXwu4iV/QXMh5ee3z+IjPSkyNxqymOpA5c4CNW400T4Br/wHHjjKG59TCfgxYFhdqFEqGlkyKq6X/fdNTKMwUmB8= X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS7PR10MB5005 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.272,Aquarius:18.0.1011,Hydra:6.0.619,FMLib:17.11.176.26 definitions=2024-03-25_22,2024-03-21_02,2023-05-22_02 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 phishscore=0 malwarescore=0 suspectscore=0 mlxlogscore=999 mlxscore=0 adultscore=0 spamscore=0 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2403210000 definitions=main-2403250138 X-Proofpoint-GUID: Tzb7B5XeGpjPjsiTxVG58wfefTV76BNE X-Proofpoint-ORIG-GUID: Tzb7B5XeGpjPjsiTxVG58wfefTV76BNE From: Dave Chinner commit 0573676fdde7ce3829ee6a42a8e5a56355234712 upstream. Alexander Potapenko report that KMSAN was issuing these warnings: kmalloc-ed xlog buffer of size 512 : ffff88802fc26200 kmalloc-ed xlog buffer of size 368 : ffff88802fc24a00 kmalloc-ed xlog buffer of size 648 : ffff88802b631000 kmalloc-ed xlog buffer of size 648 : ffff88802b632800 kmalloc-ed xlog buffer of size 648 : ffff88802b631c00 xlog_write_iovec: copying 12 bytes from ffff888017ddbbd8 to ffff88802c300400 xlog_write_iovec: copying 28 bytes from ffff888017ddbbe4 to ffff88802c30040c xlog_write_iovec: copying 68 bytes from ffff88802fc26274 to ffff88802c300428 xlog_write_iovec: copying 188 bytes from ffff88802fc262bc to ffff88802c30046c ===================================================== BUG: KMSAN: uninit-value in xlog_write_iovec fs/xfs/xfs_log.c:2227 BUG: KMSAN: uninit-value in xlog_write_full fs/xfs/xfs_log.c:2263 BUG: KMSAN: uninit-value in xlog_write+0x1fac/0x2600 fs/xfs/xfs_log.c:2532 xlog_write_iovec fs/xfs/xfs_log.c:2227 xlog_write_full fs/xfs/xfs_log.c:2263 xlog_write+0x1fac/0x2600 fs/xfs/xfs_log.c:2532 xlog_cil_write_chain fs/xfs/xfs_log_cil.c:918 xlog_cil_push_work+0x30f2/0x44e0 fs/xfs/xfs_log_cil.c:1263 process_one_work kernel/workqueue.c:2630 process_scheduled_works+0x1188/0x1e30 kernel/workqueue.c:2703 worker_thread+0xee5/0x14f0 kernel/workqueue.c:2784 kthread+0x391/0x500 kernel/kthread.c:388 ret_from_fork+0x66/0x80 arch/x86/kernel/process.c:147 ret_from_fork_asm+0x11/0x20 arch/x86/entry/entry_64.S:242 Uninit was created at: slab_post_alloc_hook+0x101/0xac0 mm/slab.h:768 slab_alloc_node mm/slub.c:3482 __kmem_cache_alloc_node+0x612/0xae0 mm/slub.c:3521 __do_kmalloc_node mm/slab_common.c:1006 __kmalloc+0x11a/0x410 mm/slab_common.c:1020 kmalloc ./include/linux/slab.h:604 xlog_kvmalloc fs/xfs/xfs_log_priv.h:704 xlog_cil_alloc_shadow_bufs fs/xfs/xfs_log_cil.c:343 xlog_cil_commit+0x487/0x4dc0 fs/xfs/xfs_log_cil.c:1574 __xfs_trans_commit+0x8df/0x1930 fs/xfs/xfs_trans.c:1017 xfs_trans_commit+0x30/0x40 fs/xfs/xfs_trans.c:1061 xfs_create+0x15af/0x2150 fs/xfs/xfs_inode.c:1076 xfs_generic_create+0x4cd/0x1550 fs/xfs/xfs_iops.c:199 xfs_vn_create+0x4a/0x60 fs/xfs/xfs_iops.c:275 lookup_open fs/namei.c:3477 open_last_lookups fs/namei.c:3546 path_openat+0x29ac/0x6180 fs/namei.c:3776 do_filp_open+0x24d/0x680 fs/namei.c:3809 do_sys_openat2+0x1bc/0x330 fs/open.c:1440 do_sys_open fs/open.c:1455 __do_sys_openat fs/open.c:1471 __se_sys_openat fs/open.c:1466 __x64_sys_openat+0x253/0x330 fs/open.c:1466 do_syscall_x64 arch/x86/entry/common.c:51 do_syscall_64+0x4f/0x140 arch/x86/entry/common.c:82 entry_SYSCALL_64_after_hwframe+0x63/0x6b arch/x86/entry/entry_64.S:120 Bytes 112-115 of 188 are uninitialized Memory access of size 188 starts at ffff88802fc262bc This is caused by the struct xfs_log_dinode not having the di_crc field initialised. Log recovery never uses this field (it is only present these days for on-disk format compatibility reasons) and so it's value is never checked so nothing in XFS has caught this. Further, none of the uninitialised memory access warning tools have caught this (despite catching other uninit memory accesses in the struct xfs_log_dinode back in 2017!) until recently. Alexander annotated the XFS code to get the dump of the actual bytes that were detected as uninitialised, and from that report it took me about 30s to realise what the issue was. The issue was introduced back in 2016 and every inode that is logged fails to initialise this field. This is no actual bad behaviour caused by this issue - I find it hard to even classify it as a bug... Reported-and-tested-by: Alexander Potapenko Fixes: f8d55aa0523a ("xfs: introduce inode log format object") Signed-off-by: Dave Chinner Reviewed-by: "Darrick J. Wong" Signed-off-by: Chandan Babu R Signed-off-by: Catherine Hoang --- fs/xfs/xfs_inode_item.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/fs/xfs/xfs_inode_item.c b/fs/xfs/xfs_inode_item.c index 127b2410eb20..155a8b312875 100644 --- a/fs/xfs/xfs_inode_item.c +++ b/fs/xfs/xfs_inode_item.c @@ -556,6 +556,9 @@ xfs_inode_to_log_dinode( memset(to->di_pad2, 0, sizeof(to->di_pad2)); uuid_copy(&to->di_uuid, &ip->i_mount->m_sb.sb_meta_uuid); to->di_v3_pad = 0; + + /* dummy value for initialisation */ + to->di_crc = 0; } else { to->di_version = 2; to->di_flushiter = ip->i_flushiter; From patchwork Mon Mar 25 22:07:18 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Catherine Hoang X-Patchwork-Id: 13603079 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.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 4838773176 for ; Mon, 25 Mar 2024 22:08:26 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=205.220.165.32 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711404508; cv=fail; b=QvoonFcoknSUL2Q+xQQ7KMxOGg4vUvhXaMgGhT3JMRZE1fmAtSz9fFS2d1ykNM5wujpMlpntt6V1El/tUPuMCJREcycLJfUtv4wLiAW9yfADGE5hJC4bjbrkwWTdlCGtlWm2x628EMF6rtNFOG+RFnK0WJo4obbFKJmNvU4A++I= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711404508; c=relaxed/simple; bh=dBvFsPU9LZOa7JSMC8tXX2PgUZl/NYk3JBDOEIv4uzI=; h=From:To:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=X/sqZ4Nc85+OzUPhCspVbFo40Sf3AzOCUNXW4pJ6o9Vmh8qnMH5Y5CsMzsuLXINZ0GzsX6I1Av4MRLR8N0cKPGUTljs9AboiI6o+lal1AJaHHeYJ9qLdnZJibC+NtJip5YAAJQXbYy54CikqH0C4Binuzd550jRt8ldtzgdPZ/w= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none 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=NhR/ttUy; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=OGlkuHf8; arc=fail smtp.client-ip=205.220.165.32 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none 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="NhR/ttUy"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="OGlkuHf8" Received: from pps.filterd (m0333521.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 42PLG1DG019826 for ; Mon, 25 Mar 2024 22:08:25 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : subject : date : message-id : in-reply-to : references : content-transfer-encoding : content-type : mime-version; s=corp-2023-11-20; bh=yqIcAbglghBJ+pfX5YTKyp4+TeWsViNtfnORR6iyoTo=; b=NhR/ttUyIm+lc71AxOWtbGP9yUgWWkHVTEa7xmSKJ0dQfn1EZSOoD1g8yzOTBOS7hKWx 18n/2RuQRbdRTVP6CvP8G0FvqOuvIYpaKVZzGGKjNwYujk+joQKxiFwj7MgbeZm3s+Q2 Y/LO3Hz+wpNoLcLvZlfy/EnXCncfA4ooSqX1lzMASTVOAuHP0kfYBhaKTI2pdMSQ7Ood 7F+B1wY5nTVrrecaCIJRlEV/uO0tYw+phfbsXFOnq1UmYvSYKgWiIOiKSjbl4lRMtaMZ 92R/Jya86nTXNzRdhtUM3YAmuDRpnjkAfN/4+Nx4MCgRK1mnFrf356676x35Oi4YdcBY +w== Received: from iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta03.appoci.oracle.com [130.35.103.27]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3x28ct32gw-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Mon, 25 Mar 2024 22:08:25 +0000 Received: from pps.filterd (iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (8.17.1.19/8.17.1.19) with ESMTP id 42PKPhAG015960 for ; Mon, 25 Mar 2024 22:08:23 GMT Received: from nam10-dm6-obe.outbound.protection.outlook.com (mail-dm6nam10lp2101.outbound.protection.outlook.com [104.47.58.101]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 3x1nh64raq-2 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Mon, 25 Mar 2024 22:08:23 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=hQF9hyHU7ufCVYXr4e0fFCd+85AIbOkHMBuf6mjBI+/81CsZYC08jzaYiUxlbe6GRL0N6lBiBx3aMXjbcoRa5i4lRJCkJznlCmka7c6xePUgtsY9e57JysGZynAteGZ5MPP0zvC93EXnf619UF72MJESCBKUYrEKDT1l7DQJKH8su2Lh1gpjdwfppvCo9tUGGGEaoeKbuxP+lOkh/e7MhiZGnIYaDXSMYy/NyxgC/iJOay7efSCHeQODXso77FSGuptmPAh0cOc+YK0fW0p8fihsmiudPQZakkY/m3DTZFCnT1f3uTXpq9KUlSqm8w5My8HcnZ88gOaC2R0Js11iOw== 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=yqIcAbglghBJ+pfX5YTKyp4+TeWsViNtfnORR6iyoTo=; b=UXpaFsp0dCM/9FWclrD5ntB9F545ZG7kbSzKkbqoCUAoHFjbGfWpMu4yP4koL0ynmXNK5CJZkv8378pyGSVoiLMEsIxoyt6CntI035KPior6FcfnzCwOHkIqkuNR7uAKyQZWM6uD09htRrhklisS9zUPK1SyeLiqgygxvglqS89sos5kYxdHNM+rQhd4lh7YFUI13yBzNOBbNtBq+LlkovZPRAT3Xsk7ZdS39os3bFnXepdjMPb/afVcyepyR6jRYV2/cn5nHcgDFxLgplgkM6Xq6ePU/sPwL8vsBSw7Yyr/hfOxVKCkdfTB93ptjwxAKt6XoRMhSmTnNBd04LCH6w== 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=yqIcAbglghBJ+pfX5YTKyp4+TeWsViNtfnORR6iyoTo=; b=OGlkuHf8iILk8Wdn4QST3V5hlO3wE+ZNxWuFZxAZtBR+O0WpNtltm1yxjnQVNNk3CiVEkl3NamSXreQyPhfMif3dXAWzsryDmnglcyCz4hBchppzhgT8WjUsIV7RjhqWVIsLsEtqAuTA2mTrAF2HmgS50S03A2UnBE8IrXy8r1M= Received: from BLAPR10MB5316.namprd10.prod.outlook.com (2603:10b6:208:326::6) by DS7PR10MB5005.namprd10.prod.outlook.com (2603:10b6:5:3ac::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7409.31; Mon, 25 Mar 2024 22:08:08 +0000 Received: from BLAPR10MB5316.namprd10.prod.outlook.com ([fe80::404e:f2ff:fe2c:bd7a]) by BLAPR10MB5316.namprd10.prod.outlook.com ([fe80::404e:f2ff:fe2c:bd7a%4]) with mapi id 15.20.7409.031; Mon, 25 Mar 2024 22:08:08 +0000 From: Catherine Hoang To: linux-xfs@vger.kernel.org Subject: [PATCH 6.6 CANDIDATE 18/24] xfs: short circuit xfs_growfs_data_private() if delta is zero Date: Mon, 25 Mar 2024 15:07:18 -0700 Message-Id: <20240325220724.42216-19-catherine.hoang@oracle.com> X-Mailer: git-send-email 2.39.2 (Apple Git-143) In-Reply-To: <20240325220724.42216-1-catherine.hoang@oracle.com> References: <20240325220724.42216-1-catherine.hoang@oracle.com> X-ClientProxiedBy: BYAPR03CA0025.namprd03.prod.outlook.com (2603:10b6:a02:a8::38) To BLAPR10MB5316.namprd10.prod.outlook.com (2603:10b6:208:326::6) 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: BLAPR10MB5316:EE_|DS7PR10MB5005:EE_ X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: Osx2mGE1jgHL/cJJSIlels2ItJrJ/SraneF1RrhcsZc4NDEQ8SFZeHuKna06GjGkNlmC5JlERURG1zcj6DS5JZ0qpCWwfIJYRU2XCa3y+4IcjUEHfdhbKkBGD4XytMod1RBCQ4+jpSBxlCw1GTSlAe5TNriPYMKsVC4IqPTFA7r2gKEFFJjjOQ89ZzfNXIy9Yolu5lQCNifFiLxyoYXSUjp1QXZCAW5dn9/3VfQJQJj38pxRZYkU13jCydDE3cbOtlh00ZRdsLxxCFsu//Z1T3Ce63C3PZ3qNb19m00+yoE+T7IHgznEdvI8MW7HIxuZShN+FFuzauE51NWGHJ7T22/vpbeNzWvFXZ96RL8Zwx7BugQLk2hqhu93LnI4v6K3zPnoQtjs2NIsgDnAKeZRspLJhjMhPEJ6gD7/zvgQce5nwgQ+9RDcEBZczwC+BV87ANdBNSYsezSS9y0gSZqqBzWIl47tU3uMh/Jvh6OjQx2ZSUp6k1T6Rfj51sIOc+OKcyF78iX0m3YT+aaclb72QaiY1Ogf4fUowuesHQp6flga/36irKj//IqagMWCTBMWjfSONmxWNfJUt61lO/153k24ctuVhagxzSkHRgeiCxuutbtMK80JQiEXwISXJ0DNGgVtZ7eaOc2jKACPDZFEPMBgKJFmCMEflFLyY+ZshIQ= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BLAPR10MB5316.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(376005)(1800799015)(366007);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: ZuCHx88SrgJtFuU229me1/RqicctRVGNTx0LU8MhUs3MWuPnrfjoM3k1g0x1mBIWRoubC7Ib8QIeuoUiwJ8eFSHl4iiRHblj016WR8enahkwzlgMk2t+oY6RiVJPSf3aFLnlCrOMPstXbjAsjsLXG/IHnHU1j51jyoIN23uICPc/Y3fHFqyIrP0BiepYHkIGRpq4PVCqDmtrFjW2C0RIJy9JZsO/tbfVPLYE7oqzqsx3QHLO+RW5RonUHQyqY0iIVr+kHdwboChCmYmYA1EbRChbxem69WAtoJSwlQUMEOpaBa8cp0eygplJIYb5XGoTAdtFUkLP6doP/FvLwcu/M1AqaX/SlimQWagB3TgSMz4tmGuxgsvABOQxLE7goOT/K5bRubVJ2DMEv1zGzC/nmjBD3T2YhJin7/ySXRZaqNNvhRMe+gRwacys2KV+srmw2n743lHYbGXVCq8D+ctosIReYoFWry3HFooe6QslIq+ardyJpTpg0fiARVPnTtDxo4n2MqSyLtLQpfxXFRFwDzkiNZ6cixumG3CyDu0HTjPtievydKRQ0NngBAn+sOA8Btb3AIcZxGv0mxEVg60YuRgYxF/RzTZ18FcadlXd/5jclFAFEarCC69kaImLxkD/f86VH67ohWr63krNoLIiF55R72Ux4lj1rdVFuAxK1uvFKnZgjRYa2hPTii7O3UM/ECBv8x5TM4w5HANNhsMq++GxeKQYyfohZIBAFxtG9+whF43WL4IcXEEdamsKu1UGuVAqerUPqk4360M+wQCiBdzL8iGuVuKiPys3fPRgjrBtpbD/d1yjYM99G2/5cYg6Vi4TzgiM7MtaNQQ8Et+LDQ06xTNZqTHoE8GpsNJ5P/8ewParWNzWzjzsjEKKXXXeLbGePxqSK2OUc6DUeu/VxKbXhXUqvAyxS/83zC4kYJ4xgJUVpQ9UNn1uNBhykuc29h/ps47YxAMwKYRIcQ7aMrwWrhZ+U7Tved68alL5AmyptFbamY/aiZdtyJ/mwc0rSMIEX6cKq/GxdgYpN/CJUtQbby837JZXCNcD6QLMHCaenzfzjGcrXZ9vuOZj2ATgPBVSNeTccmkgntrjUFuVQn05E5W02DbrXs5Nl1+aTKwcjFxwmFlpx2yn8TsX4WAgwONfXO7CQnGMS5lgk+bUDNyURPx1zMqDkEHSfJhIeA56MmkUI+wgi7zufmCWWD9rJ3+dWzzkh++sWhOpYgah13wD1hYoaVMOXe7u/uTAjYNptZtfg45EdiyDZc/DxXL6mr0vUXZdKFogS+jDYuMAElKWwDi2GsWBreKg3uRddZ7M6sz1U6h81IDtG7w/k7S/LJ++Ds+nf2ckcuYuBH66fw/o5zWYZ/LRI9CKJX2t+4+vbmyVTk6c55cPBPlXlmQ4UnVUorCUKdKjqsDjm8fGwgL4bnidRyXnOkUAWNtwYgWaoiFg7Qx1uQuWHdJGa/5q+AIdWRJ10fRB6OMd/DHi3xDhBDRAnSAM9/KlyJWEakI45SV8IriRe0jg5kpHGQzk+aoLaV9TUpPtI58eAavTaFap4vjEHaHNhE9D7YFKwIW3WT6K6LAVvq3ib3N3034I+M9/M3T8zPhH20QsW/419gNVdb2BRG3WGxxFtFHvmRHAMibD/9WbOYiXncUHsuQVI5z4zASZeWzoLq7Cgnv4Ag== X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: VOgY/M5S9/F/ja0UY+r/vHfbdPOSZkFnmXTujdIBadG0LGZZzoCp9caiiLS4qdbZv9cJj94X3K/iAGhTsGT7QjAatAwJ35JclqH9se34ODW5mVcUj/ODyK/f8nz2jluHcYaX+roN+g1SOEtCp6rQu6tZZx4y0d+rtQmxO4zCsP7NBlR8ySov52q0C6veGa4knGR6RsCCPGJm5vbF1Uax/arvGRuQVFkW8Urmh53q/ZoZ5kM1RKubZTkU8y22gix3Ib5/Fow++FYUFai6oe58pUCAH/FKpnRCqnST6mY0EVhxuKT+WmsFbHcJUzwsHSS4wzfBozr3wn8i7KfVsOj8xXXN+QagqxmyeyT+HyLzKuejV1dNzg2r80HlthhhJbrVm+H788LiDWOroxfBOtqLuDEdHhHUCnmfHjBYlHKJxlRdyIcbGDNs3dDNKgn+rIXiRT8DgbDhvI254VNK/K5F4bv13v6PGSOyyXjgwcK3EOtxZFiiBZRN6+y43QuNsSEFuLNmMBB2xEJzB1P/9yLc8nyB89GiBpg5dUpvsWWZNWlR8vIznY3ZpHVUZ35EJn/tW6GSg/l7nvGrOUq0p3i/djBMNB4itHZHqnyatZs3UAc= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: f9abe7f0-dd6f-4f81-ac20-08dc4d180de1 X-MS-Exchange-CrossTenant-AuthSource: BLAPR10MB5316.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 Mar 2024 22:08:08.8957 (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: qyoONRhuEcZjCyhYJ2sYECcYcTE7uTlGroLjbvxAMEU3dBloYUUBRivMnoL4/qIi2sANVudIICJwvIGNhQYvVgHeYxfJzP/v0N7sUPJqiOQ= X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS7PR10MB5005 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.272,Aquarius:18.0.1011,Hydra:6.0.619,FMLib:17.11.176.26 definitions=2024-03-25_22,2024-03-21_02,2023-05-22_02 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 adultscore=0 malwarescore=0 phishscore=0 mlxscore=0 mlxlogscore=999 spamscore=0 bulkscore=0 suspectscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2403210000 definitions=main-2403250138 X-Proofpoint-GUID: T8_Mazg1sutv6I3NxYKtPE-9cWAcvJD4 X-Proofpoint-ORIG-GUID: T8_Mazg1sutv6I3NxYKtPE-9cWAcvJD4 From: Eric Sandeen commit 84712492e6dab803bf595fb8494d11098b74a652 upstream. Although xfs_growfs_data() doesn't call xfs_growfs_data_private() if in->newblocks == mp->m_sb.sb_dblocks, xfs_growfs_data_private() further massages the new block count so that we don't i.e. try to create a too-small new AG. This may lead to a delta of "0" in xfs_growfs_data_private(), so we end up in the shrink case and emit the EXPERIMENTAL warning even if we're not changing anything at all. Fix this by returning straightaway if the block delta is zero. (nb: in older kernels, the result of entering the shrink case with delta == 0 may actually let an -ENOSPC escape to userspace, which is confusing for users.) Fixes: fb2fc1720185 ("xfs: support shrinking unused space in the last AG") Signed-off-by: Eric Sandeen Reviewed-by: "Darrick J. Wong" Signed-off-by: Chandan Babu R Signed-off-by: Catherine Hoang --- fs/xfs/xfs_fsops.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/fs/xfs/xfs_fsops.c b/fs/xfs/xfs_fsops.c index 7cb75cb6b8e9..80811d16dde0 100644 --- a/fs/xfs/xfs_fsops.c +++ b/fs/xfs/xfs_fsops.c @@ -134,6 +134,10 @@ xfs_growfs_data_private( if (delta < 0 && nagcount < 2) return -EINVAL; + /* No work to do */ + if (delta == 0) + return 0; + oagcount = mp->m_sb.sb_agcount; /* allocate the new per-ag structures */ if (nagcount > oagcount) { From patchwork Mon Mar 25 22:07:19 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Catherine Hoang X-Patchwork-Id: 13603076 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.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 391CD6F520 for ; Mon, 25 Mar 2024 22:08:26 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=205.220.165.32 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711404507; cv=fail; b=hpF+NiVXy9HHoAG3utKWcXpdoJMhdz/YkGNMuy5Wxkpiw7EGrh9m6l8v6BaYNp+5MyMdH79pOASmbDIUE6ki2OyWKPm+xaxgx3vbyikeovNxAsCpNCsZQIxShItFfGSql4ou5o6dvhGDbJcYAT0bMTJDee9HDDI0YI6jO8wnrdQ= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711404507; c=relaxed/simple; bh=sewNhM0X2+NYmoxs9f9VMKDbDYDarP86N2hUvWM6gx0=; h=From:To:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=WXJYMFjoj8QG6ksfPoBkxTwhw01xmzK5es+Slb/uoCY3HgN2YRlH7Wt2oAmSfSZy0c2+pkMXzZMrDNZUw0gqsWJq8IMxXaBIAGh6gGtLQKCc/OxH/DXwqchz37id29yaiEJmgJshktzyipOYUBviX5v/1700roOEaIu1/Z2goN8= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none 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=o0Z+JfHk; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=aFDG7mSC; arc=fail smtp.client-ip=205.220.165.32 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none 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="o0Z+JfHk"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="aFDG7mSC" Received: from pps.filterd (m0246629.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 42PLFshG027120 for ; Mon, 25 Mar 2024 22:08:25 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : subject : date : message-id : in-reply-to : references : content-transfer-encoding : content-type : mime-version; s=corp-2023-11-20; bh=V1bPPXQzSFosBx9zsf6lrRJwEcLM45nlzVo7k2Nh8wU=; b=o0Z+JfHkxTSqn2ERWiAiDbu9Tm7sNz6hdovHsjzvAvLS8mAGjWv0sSxG9mVl2syUG6hE 38xGSh9RyvNIbowFUMd57eskelB/OySuxm3uaTogHqHuTorK75fkggNUNA6CCeCl9r7w 0NVO5aiVA6ANO2KGDarDyh7TSUE1Heo0hzInzThzjPJrWCM20YFL42kyE1ikX+7LjGqJ y6kDDf7Kfx2SpKSJxp0/4R6C04NQ0kR8pIa9QnSJOgj3Z3N1OEhG9ETiB5dmyap/8/3r IRptW25G4rumGjKyGrIIO+wRfkW6F+fiMAchkMG9NqRMSJP/8DOGVAs91yed8jUPejCg BQ== Received: from iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta03.appoci.oracle.com [130.35.103.27]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3x1pybkqjs-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Mon, 25 Mar 2024 22:08:25 +0000 Received: from pps.filterd (iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (8.17.1.19/8.17.1.19) with ESMTP id 42PKPhAI015960 for ; Mon, 25 Mar 2024 22:08:24 GMT Received: from nam10-dm6-obe.outbound.protection.outlook.com (mail-dm6nam10lp2101.outbound.protection.outlook.com [104.47.58.101]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 3x1nh64raq-3 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Mon, 25 Mar 2024 22:08:24 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=LkUaevZKGKXV10i6jTq1FTu97/eBqhg8GOxuq8gc+huHDe4MYU2YaFfepvw+wyQPcTvpbJfU4Bp5WI66n1Nm+L80TWwNxFvEpLWJkaNcER1Cefy7GI9OMEWXEy8OwJNnM7PcLfxQPSeNv0wh7TgP3lIkoLIVZsydbeaxtctgH2NFK9CHkAvc9uDgNszuVjgoxjW9tdAQus/f02GCdxutwpH1c3NTUroMDkCgxtLHBOgviACfX3ma3eFl+GrLbU6bA7h3hCrBmI4j31uJKRZdDaPnvIpHYFXTrjpf87BHvEFwTdOT8rAxfmkGfCJqm+EJE+Y/U+L7+0aN5q3oD9aKBA== 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=V1bPPXQzSFosBx9zsf6lrRJwEcLM45nlzVo7k2Nh8wU=; b=oMpDSGsc1FauKgnEyt/1UpHHZWfGATHx/QlumgH0nqoPjDNoxcyWpJU+x2SqZwOBOiJP5DvEelMXBVEXcic1GLAkPE8DPq7P3+P5WUrFxXX2RxAIlRXOzvSG3cAUYWo0Db0WP11uZFfhMwYgG+NcdjBg6zuDZAKEF7SgzU+NxvDK78Fxr2BJ7Ay4CJ2988pPSwpRcKjy89WP53X/QtwEPSZGQkEWoOcv3eS4R4ekFq/4Y3k8IO1ke9ZMx3tuFQjNKWNUAUGY4MMSpclWHJ2Fk052oQX6RQm/S5krb1ToQkam5dcGrav8rhOneyfYIzUH/CYsQ/TPqC3QkLJC3SmbdQ== 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=V1bPPXQzSFosBx9zsf6lrRJwEcLM45nlzVo7k2Nh8wU=; b=aFDG7mSCqjkQzPL6jOwSESI/QVb8uOYuyr/LQ8cejv2SmLpvqARI9zdl2XujpT31broTcNuXF/qqgWgkz0vXKevy+rU+1+7rdiJedfqBU/5qEKcY5BW2AioV/vfcm2z5CtcVGLyj4Oy5jftpZSSUogacS+Ymrsu3dtG9Jc1fQ8Q= Received: from BLAPR10MB5316.namprd10.prod.outlook.com (2603:10b6:208:326::6) by DS7PR10MB5005.namprd10.prod.outlook.com (2603:10b6:5:3ac::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7409.31; Mon, 25 Mar 2024 22:08:10 +0000 Received: from BLAPR10MB5316.namprd10.prod.outlook.com ([fe80::404e:f2ff:fe2c:bd7a]) by BLAPR10MB5316.namprd10.prod.outlook.com ([fe80::404e:f2ff:fe2c:bd7a%4]) with mapi id 15.20.7409.031; Mon, 25 Mar 2024 22:08:10 +0000 From: Catherine Hoang To: linux-xfs@vger.kernel.org Subject: [PATCH 6.6 CANDIDATE 19/24] xfs: add lock protection when remove perag from radix tree Date: Mon, 25 Mar 2024 15:07:19 -0700 Message-Id: <20240325220724.42216-20-catherine.hoang@oracle.com> X-Mailer: git-send-email 2.39.2 (Apple Git-143) In-Reply-To: <20240325220724.42216-1-catherine.hoang@oracle.com> References: <20240325220724.42216-1-catherine.hoang@oracle.com> X-ClientProxiedBy: BYAPR03CA0036.namprd03.prod.outlook.com (2603:10b6:a02:a8::49) To BLAPR10MB5316.namprd10.prod.outlook.com (2603:10b6:208:326::6) 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: BLAPR10MB5316:EE_|DS7PR10MB5005:EE_ X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 7/T70E78QEw+455va2HrRIfGDmz2fF7c08ZhsNCNOk35z6pDrXnOQlg7dNLrGI0OISfjVEqcDHnhNi27YvceAtnBNiGiD4DKHFjxsf/lP7dZySoR2n19zk87yxIteS28arDghPsFk0C0DzfNlUlcfMfNIIH6Cw39NNxBZRUSt7onWCKkEo5P3jrpzRBfOt4wUAS5BXy2DvVwRcf/sSjgTaYUWmAceiKzu5l/XUuUaEFO+khetdCiAkqJTjzWDcJYxMCpJ3kGNZz5ipgsGi1XKvD2cB7mbGMYQsgLeagxPlZQnrHqeh5Kck2dbYFzBTrdsOn7WHUwFI4Rw6/gn3GbkP2ITBZALrdAyU4y3VlUZ/L5r53QxdPJ/ot5psATs5fdRPHlwTuY28uOfe9brBh6drBXsB1wTXHeA7ZoW9PfVRv+CsMljm+A+vWlE+xfV+oCzIxsxGtwphNXSGaRFStNkKEVADxIjzIgVynvxx3sYsV1BjaGcWXlXMSdRNAF68za2KiV5IxokxPbeMmj+Jn42LrGEIaEjaLR3rcA7Eu5grN8HuUZWmbSi2PQLQlyroJKvdaK7V6O67eOD1nYJ9ftkfqhF2AhNKF1K0en5ajEZrc6mBHjcgFvJfNPD1qqizVYhHrIgAK0LtzuHbFXhmr/mR5e+Di07aMfaP7f/Mz2RWo= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BLAPR10MB5316.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(376005)(1800799015)(366007);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: u157h16TkosSuVENNVf7G1xCYXkoRQjFLjWi8LhipKcmTCZ9D68EciJT83ggu05J/PDGpxUflPE9hQ5P14H2mVzCVNAYq2HCLmi8HYOLimUBAZOIsNBanpmbLxnGp6s56XG1pS1rUcENQD7LYA6uyZpFcFQ9r0og+p2tli9PoiwOV8/ycXfTvQC3Q4hZ5QJzOkEZQRLBSpNazR0L+viMNy9ynLTwF7FFTe8xXUqQLNbfuz4NCDzlK8hycKuSIzpGMIhJJaJUfdcqrp3JoiWEoqQFCw6j771fSbxyBFRRponigfJQvcU/2pS+22/95K+4jzDNkcwldQ3PDaE38UsxEtzBPNKbsx6zbZ/NtII5mV+afHJTBNIFO3Tj/udj1D+aHD4GvSP1AJfql00ga2CcB8WBNxzGOFv/6ErVAmY1BRJW4N57wPCwOd1foh6J39uRrZ8bJTA1ARja05SsrLKNEeruSPJMpW824fhF3E2ygfdFr0YtEadLfKm/xokQhb+NFy2Arn+m/Hr386svo9rUhrROoWsC5HxgTsszNsknwnUOoCVO0VC+bLzuC1Y5QyXYSZJvNzD0iIkn9WK3iKwHnLPWnm/W4cmcpqJocb7lis7ha2DmVvJyf2T4UgOksBVmetZOVMzlxqt5934VZkZWzihReUwcRyVS/6j5ll9RHSlUQXJVDJMydqD/Cem8YRg68DnqftyZerIJPIlA1WhnvHgenbBxX0823TQDqTS6dAtLDBo+8lnFo8t48mlxb2aMgzGrPBfy7RfxRw+G7TEm9dSBCE0SKxXyckW77IBX2+iFvB+r4aDpb/WzA+WjQ6DqxqS/0rWa6r4QRVFmEzD9THjkE8ECymZeHEm46oz2obv6PVI15nHlBzYisieoEYxUaGMJuZcBAWMz7w25gBV9lyCaMIbTuIDtdlYgqTyNMzVek/4/xfoyr9SqxzzFB9IJAgENn0NjZL70dRsUKSPU9bav0P3fr9arhle17/dfkJEyXv+gx8vluyb6MzSbHkolkg4FRcneOALpQLmY9+gfQA6OEc+ARlJCOTFvpiSpxyOJua+EDzlwJXPO8g3XeuMG7X5JthpOWHrN+fbvMW2VeR1G1VAPM9S3sgWbOp/vg9ykr6N02OwUNWU5Un6Ow3vgKvQIhDu4P8Ts4pR8+kkA0V3j5iZ0Oo+XxFTjF/BUwT2sEOM+48cGEJspiHonbNreVGLFG6fcxD5Es2juEAH3KTIJ4KTzvdOoFZMAuP97gYJ9wmgkgX0Vu2BzFtzGeKqEzL0GzusaI9q0kxoeqWX+qskkNd9SHWq0H9Sla1rSXLhVwx5g4PwmcPRLd+WOPVs2pJQrvPL8QNuf5W5ApNAaZL6PSuDME1c4O1TsTP7x8KTjJI/MJY9OcOP4pTmHKJt+Tbhqjm/k/4RIrz8fSwQdC95e+rneMWFShX/yiELTNUqS1BV34iCqPu2UWbIY5G/7waMOfrKO+UioUyZPDle4yjiIDQyC2eU0WqKPyEHIyxp1qv0zZ57TJUWaDjUQK3Rmv9d9cop/TuKfQ9K354Xf0gS9a96b33IkspYx3lcLL2M0mZ3gSA+dykyewmjpCuGSD2qCWmoYL2BL5mhpk4t5pBthj8dRjEJsFS4kDnLPnJPEd+RFyuUD7tVya2MviGP1wMEDvaTiRymu0n6Jj3cDzA== X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: AsycFwbpVUVO91l9HfZVbgdGoNhUStYniw7jdiwcsQD1KlrSP5+ryiMTBgKONdrd183iPhtuOglbYY9C2BlNGOqJyIjUy7K+JHb3Yy51qdeaDv/yxDKuXdBUiz5LsggIfTn6YTaMABbLXghE5XXZtwqq+6wek3kBTclSddHIyS85BxBJr/5FGC3ItnhmXJ+h+8FbynWjTsxZ+NajkkGaqNR2+2x3Ani4QsSEzgTkwObu4no8iTwkMUmPibiGAZUaGOX09RSMPC0C/fdnd2Y+/WMF89d0dsX/xIk/hYSaR7oYxUXC3R6CJTXv7xPvXLlebMtlsfPc2CJFq9e9iyF+XSvVtUT6dfKSxAb0XdAyjfzYvUFv07I3s4HynQZSg/jw9kdbcr0yKI2e/c3GNblIFsQj/CEZjeQJ0mCHHr1r9Fs92qIAotnt3TczwIHwmzxGwPPJryz0xvQhU6Nqxet5w5Zvsg3mR2a0yPLzxEgfXGpqkMGYuAhqJ+p5yusd8i6UkmXnAQE4n1rI+B6CcGs9rWgTKFuT+2fsznkHdrRi5hX4LjehylAfYS9I0KI3Dg7OQHUUIBNh6cV8c/me2BugnKxbz8aw3cNdYFYaPRZGV+4= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 68dabd47-685a-4334-b2d9-08dc4d180f0b X-MS-Exchange-CrossTenant-AuthSource: BLAPR10MB5316.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 Mar 2024 22:08:10.8366 (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: qRyxN3q+j2HwDzFhj0uScFA1POvXpS+P3+SO7f5DaY0jOR2/Bl9cO/OQQmYvwD27nS9gfQpciCbSQnRlO0k7ba6e0chkmbpR2Yle28zxU3U= X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS7PR10MB5005 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.272,Aquarius:18.0.1011,Hydra:6.0.619,FMLib:17.11.176.26 definitions=2024-03-25_22,2024-03-21_02,2023-05-22_02 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 adultscore=0 malwarescore=0 phishscore=0 mlxscore=0 mlxlogscore=999 spamscore=0 bulkscore=0 suspectscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2403210000 definitions=main-2403250138 X-Proofpoint-GUID: PhkU1uh2TQmjv7BGaznkxeIIc8-VsBel X-Proofpoint-ORIG-GUID: PhkU1uh2TQmjv7BGaznkxeIIc8-VsBel From: Long Li commit 07afd3173d0c6d24a47441839a835955ec6cf0d4 upstream. Take mp->m_perag_lock for deletions from the perag radix tree in xfs_initialize_perag to prevent racing with tagging operations. Lookups are fine - they are RCU protected so already deal with the tree changing shape underneath the lookup - but tagging operations require the tree to be stable while the tags are propagated back up to the root. Right now there's nothing stopping radix tree tagging from operating while a growfs operation is progress and adding/removing new entries into the radix tree. Hence we can have traversals that require a stable tree occurring at the same time we are removing unused entries from the radix tree which causes the shape of the tree to change. Likely this hasn't caused a problem in the past because we are only doing append addition and removal so the active AG part of the tree is not changing shape, but that doesn't mean it is safe. Just making the radix tree modifications serialise against each other is obviously correct. Signed-off-by: Long Li Reviewed-by: Christoph Hellwig Reviewed-by: "Darrick J. Wong" Signed-off-by: Chandan Babu R Signed-off-by: Catherine Hoang --- fs/xfs/libxfs/xfs_ag.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/fs/xfs/libxfs/xfs_ag.c b/fs/xfs/libxfs/xfs_ag.c index f9f4d694640d..cc10a3ca052f 100644 --- a/fs/xfs/libxfs/xfs_ag.c +++ b/fs/xfs/libxfs/xfs_ag.c @@ -424,13 +424,17 @@ xfs_initialize_perag( out_remove_pag: xfs_defer_drain_free(&pag->pag_intents_drain); + spin_lock(&mp->m_perag_lock); radix_tree_delete(&mp->m_perag_tree, index); + spin_unlock(&mp->m_perag_lock); out_free_pag: kmem_free(pag); out_unwind_new_pags: /* unwind any prior newly initialized pags */ for (index = first_initialised; index < agcount; index++) { + spin_lock(&mp->m_perag_lock); pag = radix_tree_delete(&mp->m_perag_tree, index); + spin_unlock(&mp->m_perag_lock); if (!pag) break; xfs_buf_hash_destroy(pag); From patchwork Mon Mar 25 22:07:20 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Catherine Hoang X-Patchwork-Id: 13603077 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.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 9444971748 for ; Mon, 25 Mar 2024 22:08:26 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=205.220.165.32 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711404508; cv=fail; b=EJA2I4relTrxuo5KavN9pFKbj7i0kt5tcQuWBRw9Fzgw6dBNRMYWWOsVQ/eJgYbtxvjQUz9Xedzh1j3AbdtGIrxyQ4mm/C3bIKKQWueauxGDNcfw9mNzkQLVXrbNTTmRL5GEhjBfS3tQ6Kh2Nm9TOrjp68+iajtg32jPqXOGaK0= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711404508; c=relaxed/simple; bh=TnSKkGkYzdVuhPbrr8TS3GSJu8bN39SYEQjUIVMfZu0=; h=From:To:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=DdrXK/Z/wSdOZ8iEb+5AdJei34Dqy2t+5m1UEpWZhCsKUGdy9MG4veapC0p0/cDZwBvGJtpm2AmHxE2xiGky8JrxaC5UobSgHYRM9KS0dpOAzCEvG1pYUNeJ6OfPOsJjPCRAWhpUfeZvdoa+Yz3j5PL8utRQuVWyxY2MsPL+rF0= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none 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=VnFakN/N; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=DUEvUQ/+; arc=fail smtp.client-ip=205.220.165.32 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none 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="VnFakN/N"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="DUEvUQ/+" Received: from pps.filterd (m0246629.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 42PLG2Ll027543 for ; Mon, 25 Mar 2024 22:08:26 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : subject : date : message-id : in-reply-to : references : content-transfer-encoding : content-type : mime-version; s=corp-2023-11-20; bh=md4VGxJD6HoZewCEIVeUoVes16L+0rEZhte2Ulqn/HU=; b=VnFakN/NCLoQ702wjdQ9BkK5XBXwqprgrWqhMgwOTtgA0doV4zXVvxLZzBMeku0jLKpM B8P/Wz2OsXw8DXFaaYzK3l+vVY+hpQcGyc+3SM5epcBuxmO2yqQRt6/UiifmEd4bLsNL IV/oos9Dd3YP9JIj9QJr5ogTgJaBgOKhaJGgoBwbqPLvgf8+ww3iyoTns/Pv1/lUioSW 4+fDqJQCib1xR5jNliSRPKPLZMeZLmcbuMZXn7IxqiIvrqfU5yKWUv76IVSXCA5Djn5I xKNcMoQJbfuXvQ/wSjXRBzLbVo193l8lZqKFPmbHsR5TLNwdVu9XKL9J789OMbE5n0V7 JA== Received: from iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta03.appoci.oracle.com [130.35.103.27]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3x1pybkqjv-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Mon, 25 Mar 2024 22:08:25 +0000 Received: from pps.filterd (iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (8.17.1.19/8.17.1.19) with ESMTP id 42PKPhAJ015960 for ; Mon, 25 Mar 2024 22:08:24 GMT Received: from nam10-dm6-obe.outbound.protection.outlook.com (mail-dm6nam10lp2101.outbound.protection.outlook.com [104.47.58.101]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 3x1nh64raq-4 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Mon, 25 Mar 2024 22:08:24 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=SsGUMook+tfFo4/qXeFOOju+TaCGNLEVhSgobE0SMJtkaTAy6DsQdwwCt1CtbA5VDpfl5zHEl7w970kMWKdGm7azXW+3QCMD/a4s5k2Ruu+DPVMqFYZ7NaWSDQIflgt2DyItYTZmj85l90xNGu14atginvUSdAFR0xSFnIlOM4y4j88ykzc3dJZYVjsDOstLafLnhggzWs4wgUF7CRYnBe+9SJmQxNxLzAcBL9QVWUW5NE4BPNFVNWh9AJM3iZbTp1QDp6hw8pRTQPyPvueT8GTTpzq8HJw+weKFEvbr+RmivYxTryFysD7JUlk6DM2dWx9hxQ+i38io5OkdIxoMvA== 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=md4VGxJD6HoZewCEIVeUoVes16L+0rEZhte2Ulqn/HU=; b=Z8ZIawxmra/7nV7AZoX6X+EV9GBt1ug5sdmpv12KInShNgIH/CToWDKCJp7sLza2kridrYTBK4s6RkuormvxBC2dtE1p8DOp6gZ8Nvju+9MShZZK5RTvKB07zX8ICV+M4qwTdGzp5M88YyCsOO0qbaNdJncZWlRDJ1eDvc3mMeY/A/tbWui81rnuFT6WnficYsRhOKRx49P5fG2bln71xDgnE3QofNBe+cM3bcZPQcxb9ENyrgm0xGdEz1vTTCGgXOYG/pdmLHfIeN+VobU2BRTzmSoVAASkq1184yP7cwIRT+3A7bUMc1go5Q+8/fTfNcdbIsrAZTjhUkPfM6aMCw== 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=md4VGxJD6HoZewCEIVeUoVes16L+0rEZhte2Ulqn/HU=; b=DUEvUQ/+abND2doKF1py0ZYFUmUcu7IZvkBHuJntAKzhS+qjuFMq8iTEwdmfUYdXKhvBMZXWKTVzLrJ4kIXtdc/93yYXgfZqMKIbwJQ9VKRbO86855d09eNFpNwSzBGvS08kXrcQ3isNkL+A5dug4j2vy7m5WvTe/xYNEF1LQJI= Received: from BLAPR10MB5316.namprd10.prod.outlook.com (2603:10b6:208:326::6) by DS7PR10MB5005.namprd10.prod.outlook.com (2603:10b6:5:3ac::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7409.31; Mon, 25 Mar 2024 22:08:12 +0000 Received: from BLAPR10MB5316.namprd10.prod.outlook.com ([fe80::404e:f2ff:fe2c:bd7a]) by BLAPR10MB5316.namprd10.prod.outlook.com ([fe80::404e:f2ff:fe2c:bd7a%4]) with mapi id 15.20.7409.031; Mon, 25 Mar 2024 22:08:12 +0000 From: Catherine Hoang To: linux-xfs@vger.kernel.org Subject: [PATCH 6.6 CANDIDATE 20/24] xfs: fix perag leak when growfs fails Date: Mon, 25 Mar 2024 15:07:20 -0700 Message-Id: <20240325220724.42216-21-catherine.hoang@oracle.com> X-Mailer: git-send-email 2.39.2 (Apple Git-143) In-Reply-To: <20240325220724.42216-1-catherine.hoang@oracle.com> References: <20240325220724.42216-1-catherine.hoang@oracle.com> X-ClientProxiedBy: BYAPR03CA0027.namprd03.prod.outlook.com (2603:10b6:a02:a8::40) To BLAPR10MB5316.namprd10.prod.outlook.com (2603:10b6:208:326::6) 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: BLAPR10MB5316:EE_|DS7PR10MB5005:EE_ X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: mmusLRjOXs12SwVQbNcyBZMm5ht5h4sNHrVMWlb9vXnb/oh2327UF24c3pjIJSu6kUtjyYrdEKms4c+LrgGX/tiaZEpnvNUVfaBBwa9N9Y0FAfgjWp8XY8oQxQMShZfOuR9pgI/IXGnlCB/hn78l4YSzUfmTxupD6TW82mXc+gr+J9JzpF0dzU04DJeu5t+w18R6EZ69ebApP/5CnqUJVgtG2c3/rl2JtEdTnyPQu6VFH0mIEZsJQC7dsFErx+5lmP0NgnB+5cq+ARtvJfpIFElCRaRJ0APhvxqVtzt+PWPoHsygqacTb/6khf6AbNkrdAhxEx99rstSa91cD5WY9FaIOHaVTbKRIxBVHNekQKkQindbuyUKlNxCj0IpLx3GkslKYHzhqnukYI+8yn+aDrN2iawb3dtD7y0tglSZ5k+vVqHcTc95ojF9tJHWYsFJ0z6Lyz5aL1Pxx/M1N0XC/epi1j6r9WKUPmSx7/gOw9b9kIm9EgNcR8MhdCKUDKMn0KcmaEkHU7UHcfyPgjlKK9ScNdCHd7JJc9U8LCffb1+IZ2BtIwykEuOUSXYPRErrHFk/1F7rhIyqASS15nAKGMxT7R15R+fTVzjoz46q3mjgny/xaPypsVekJn9TxOgRz+flYQUy04Gv1PppXjrDHg7jSQj+2YPTVRSKdhrSdwE= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BLAPR10MB5316.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(376005)(1800799015)(366007);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: ITSylR9D62nkuxZ5aHMPNrU+FxaFaIW1flJex65ROFYNcc+Q5RIxH6iRPPZm6gDyUnd/FsbLWfDktYS7Dz9BUYV8BtQqAehaIxDykJuHFwGoNpYZQqG/CYd4t2foDodec7epZgxgTXY2iaSQDm30USnn62/sd4BIa82furPgkVjQVB55jRJDOuzuVq6nuCBCmfOQziLuCC1lVp3jgP9xnZe/Ydf0QYgxgASWg2oTHwK86o+HtRAlzdOR20mElhsGjB5hNod9B5g7sYMXWm/RONou4DAU4EaHjxSsMnGZr241kGDSbleZkjGjnSfqtAKzDnSd3bSjbf5WpGioFG3QLpiyqidgklf1cdE5rm8PolQi5ySh79b+jWnsG2HZ4Iw/5jCy1ogeow+jTGFTLH+kqIw7ABxpQo2ZiUmhOYDGnXn0vvQCvCmfgYXKG227hcL9/dNs5hxgPV9D5muKGDbJbXptc/yFDA8cjhZBqUVrpny4NhfCZf16vey0LBxfTblWBNAeoAU8hS5LzJZYWBbmLfrKoeLKgcsyNSQrxgKBCWW2Qdfs/hctnsNU4wJSNB/BdzOHojLXdnCvheX72H5z0DRv+S+MNXIdG8IatPF9q5rUEPFpsQ5H5mvDJEuEphNfhGsYtEqOeTwsCKkJBqYTYy/bnDIDmsqV8ToByKrB2pX+FAwJ+I9FIbGy5l07KBHKtieXF7p5Nt7Zfiw2L39QIgkL/5Ojuqzx0iv/Td99AExvplg5N//asogcH3ghZeOnl3qIXLcmF+z16F2tSYfhCGh3dJ1hgr4rEQJe0uqp3lfIz/fHmW4YNjZgjvNW8VQFvy11i29J3J8s6krqlE+LXKcrWbiUbNXm5u7PJbV0M7m7DW7ezE0jakbxpgJlZOSG7SMrcVcB1ByHLbi3bJ6EcjR1vnNfkyWt3vFqatUXjA/KrHs4WLOsYbiBoCkcFByGWYv3QxrOXEcWA3VX+SdkFBaV2Rezh/szLjybGif7v4W2/Q8kNJ8jYepVmewGImfz1Z4n5eD8thPa9I6K3OUncz1dAXqdGRuIENeYP06MF17Qd3n1YmYlgibsgBxlav1+4Jq+dDkrTSLscuVeNzrXzjvujK3tUTz9XtnduwJflt89O8ahs/gck6C89+IB9tv/JLiZnwAWmYDiBYQjUCuyGoXE1ZI6Rq2lRXz3Z+LFJzg1B+nA+RgkcdmH5TParRIIeNauG62BGrI2rv3zP9CYAk2FWhvBj/GYV+Jb3SXxKkY3IFImhXR9kCdK/+jEVNsiHbua8YY4naXaHWv1Sxv2v9Oq7+9mGRY1EQpRw8qKhBdVWoQJiYZJ8NasEpex75pgjRT6gJP/0B72plMxoHUbnKuOONkv+EyIdMWDrwah/yYurBD3Um4eQsSMrXXlKW7Y/qgWUqLI92DxFY4kLEIuT4rQ0lqrEGYFzLqubtubbULmXUc8NPgkbQyEqX9NrTbjszdMfkiv5txGG1XFHXn+EsA5jyytMYlYNs0co5aHFYUWW2IAFh4yCf0bnl6zi+0XYg3Md7Wrf3cqMVlTshd4wLBU+XjxxGIsNc+B2BEUIO2bmkyDqMMlltbUwrEnAXcDhT/uSfl13alpHnvdT3ALiGyr5Bp3CYe+oxY4df+0JCuUMW36XmuPqlc7LIBzlcaXOAMFUYhv3pYw+d87WMqOng== X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: 8ZFrWu3trY6N41Ek+780X9Q2K0sa3qNov7IrROATXImIIDgig+LIsDgzjLGCpO7Tc+dm5vr1JIigCA12IUKUzbOS13PELTQOpKHfRQ9n/OZ7ZMvRxmjkp0L5yXn6bJV4GgNyRpFgb+XMuWN537l75cvVlZ1cZuiUzs0cTwgNjZEXF8KIaIUbtWxg3JI6P70QcMVnzshviPsI9ywGmjE/Fne1I7TQfKUn3m0Nz7aAtTPzSe4HJqhq0Iy6FZ3t3XMDGwPkgW/P8HdgG3dDP2QIH/3sCkwwYEHL23tWmawrUQaA8F70E1jGZk9oCblHIugIiDA9WEwLXYAGCoBiyzp4z2t+1ibVdLFFJS+EZv15J1YriRd7yfB3XLSII1xG+xEK5is3B2S9OX5AopVK6YYPX1qTCxtGtMCKNdjLJQs5QM3tfyW9IH72tL+PIQ4TBAE61ECPC7b5wII0EEBhUobmIKLrIiLm3q00fFSJdXoilmab7gtrpApgYVqi8mRPor4RRTHjogVhVG2WOgumR/f3iY8PZohok0ZUtoaOFkqpUUmO1o/i9peysxVm9EhaDu6vKdRcJGKeJl1kcHYq0fIvIapSKzTNavQ7YrQXfiCKkkI= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 27ae23a9-1e91-4d36-90ff-08dc4d181013 X-MS-Exchange-CrossTenant-AuthSource: BLAPR10MB5316.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 Mar 2024 22:08:12.5489 (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: jgoAR1LflrW8z524vq/Jelx0AHxBxPiCTjivMSUPvMR+n5oBdk0kGfrPt8ecwlkw8r2ZN8lEly0f+QDLnk3OZVGEo4YTOYZfO2zP64cFqJk= X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS7PR10MB5005 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.272,Aquarius:18.0.1011,Hydra:6.0.619,FMLib:17.11.176.26 definitions=2024-03-25_22,2024-03-21_02,2023-05-22_02 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 adultscore=0 malwarescore=0 phishscore=0 mlxscore=0 mlxlogscore=999 spamscore=0 bulkscore=0 suspectscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2403210000 definitions=main-2403250138 X-Proofpoint-GUID: pNBAdgJMOPwhcUR5lFNx5cBZXQ1Os9wY X-Proofpoint-ORIG-GUID: pNBAdgJMOPwhcUR5lFNx5cBZXQ1Os9wY From: Long Li commit 7823921887750b39d02e6b44faafdd1cc617c651 upstream. During growfs, if new ag in memory has been initialized, however sb_agcount has not been updated, if an error occurs at this time it will cause perag leaks as follows, these new AGs will not been freed during umount , because of these new AGs are not visible(that is included in mp->m_sb.sb_agcount). unreferenced object 0xffff88810be40200 (size 512): comm "xfs_growfs", pid 857, jiffies 4294909093 hex dump (first 32 bytes): 00 c0 c1 05 81 88 ff ff 04 00 00 00 00 00 00 00 ................ 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ backtrace (crc 381741e2): [] __kmalloc+0x386/0x4f0 [] kmem_alloc+0xb5/0x2f0 [] xfs_initialize_perag+0xc5/0x810 [] xfs_growfs_data+0x9bc/0xbc0 [] xfs_file_ioctl+0x5fe/0x14d0 [] __x64_sys_ioctl+0x144/0x1c0 [] do_syscall_64+0x3f/0xe0 [] entry_SYSCALL_64_after_hwframe+0x62/0x6a unreferenced object 0xffff88810be40800 (size 512): comm "xfs_growfs", pid 857, jiffies 4294909093 hex dump (first 32 bytes): 20 00 00 00 00 00 00 00 57 ef be dc 00 00 00 00 .......W....... 10 08 e4 0b 81 88 ff ff 10 08 e4 0b 81 88 ff ff ................ backtrace (crc bde50e2d): [] __kmalloc_node+0x3da/0x540 [] kvmalloc_node+0x99/0x160 [] bucket_table_alloc.isra.0+0x5f/0x400 [] rhashtable_init+0x405/0x760 [] xfs_initialize_perag+0x3a3/0x810 [] xfs_growfs_data+0x9bc/0xbc0 [] xfs_file_ioctl+0x5fe/0x14d0 [] __x64_sys_ioctl+0x144/0x1c0 [] do_syscall_64+0x3f/0xe0 [] entry_SYSCALL_64_after_hwframe+0x62/0x6a Factor out xfs_free_unused_perag_range() from xfs_initialize_perag(), used for freeing unused perag within a specified range in error handling, included in the error path of the growfs failure. Fixes: 1c1c6ebcf528 ("xfs: Replace per-ag array with a radix tree") Signed-off-by: Long Li Reviewed-by: "Darrick J. Wong" Signed-off-by: Chandan Babu R Signed-off-by: Catherine Hoang --- fs/xfs/libxfs/xfs_ag.c | 36 ++++++++++++++++++++++++++---------- fs/xfs/libxfs/xfs_ag.h | 2 ++ fs/xfs/xfs_fsops.c | 5 ++++- 3 files changed, 32 insertions(+), 11 deletions(-) diff --git a/fs/xfs/libxfs/xfs_ag.c b/fs/xfs/libxfs/xfs_ag.c index cc10a3ca052f..18d9bb2ebe8e 100644 --- a/fs/xfs/libxfs/xfs_ag.c +++ b/fs/xfs/libxfs/xfs_ag.c @@ -332,6 +332,31 @@ xfs_agino_range( return __xfs_agino_range(mp, xfs_ag_block_count(mp, agno), first, last); } +/* + * Free perag within the specified AG range, it is only used to free unused + * perags under the error handling path. + */ +void +xfs_free_unused_perag_range( + struct xfs_mount *mp, + xfs_agnumber_t agstart, + xfs_agnumber_t agend) +{ + struct xfs_perag *pag; + xfs_agnumber_t index; + + for (index = agstart; index < agend; index++) { + spin_lock(&mp->m_perag_lock); + pag = radix_tree_delete(&mp->m_perag_tree, index); + spin_unlock(&mp->m_perag_lock); + if (!pag) + break; + xfs_buf_hash_destroy(pag); + xfs_defer_drain_free(&pag->pag_intents_drain); + kmem_free(pag); + } +} + int xfs_initialize_perag( struct xfs_mount *mp, @@ -431,16 +456,7 @@ xfs_initialize_perag( kmem_free(pag); out_unwind_new_pags: /* unwind any prior newly initialized pags */ - for (index = first_initialised; index < agcount; index++) { - spin_lock(&mp->m_perag_lock); - pag = radix_tree_delete(&mp->m_perag_tree, index); - spin_unlock(&mp->m_perag_lock); - if (!pag) - break; - xfs_buf_hash_destroy(pag); - xfs_defer_drain_free(&pag->pag_intents_drain); - kmem_free(pag); - } + xfs_free_unused_perag_range(mp, first_initialised, agcount); return error; } diff --git a/fs/xfs/libxfs/xfs_ag.h b/fs/xfs/libxfs/xfs_ag.h index 2e0aef87d633..40d7b6427afb 100644 --- a/fs/xfs/libxfs/xfs_ag.h +++ b/fs/xfs/libxfs/xfs_ag.h @@ -133,6 +133,8 @@ __XFS_AG_OPSTATE(prefers_metadata, PREFERS_METADATA) __XFS_AG_OPSTATE(allows_inodes, ALLOWS_INODES) __XFS_AG_OPSTATE(agfl_needs_reset, AGFL_NEEDS_RESET) +void xfs_free_unused_perag_range(struct xfs_mount *mp, xfs_agnumber_t agstart, + xfs_agnumber_t agend); int xfs_initialize_perag(struct xfs_mount *mp, xfs_agnumber_t agcount, xfs_rfsblock_t dcount, xfs_agnumber_t *maxagi); int xfs_initialize_perag_data(struct xfs_mount *mp, xfs_agnumber_t agno); diff --git a/fs/xfs/xfs_fsops.c b/fs/xfs/xfs_fsops.c index 80811d16dde0..c3f0e3cae87e 100644 --- a/fs/xfs/xfs_fsops.c +++ b/fs/xfs/xfs_fsops.c @@ -157,7 +157,7 @@ xfs_growfs_data_private( error = xfs_trans_alloc(mp, &M_RES(mp)->tr_growdata, -delta, 0, 0, &tp); if (error) - return error; + goto out_free_unused_perag; last_pag = xfs_perag_get(mp, oagcount - 1); if (delta > 0) { @@ -231,6 +231,9 @@ xfs_growfs_data_private( out_trans_cancel: xfs_trans_cancel(tp); +out_free_unused_perag: + if (nagcount > oagcount) + xfs_free_unused_perag_range(mp, oagcount, nagcount); return error; } From patchwork Mon Mar 25 22:07:21 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Catherine Hoang X-Patchwork-Id: 13603078 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.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 CBD8D7316D for ; Mon, 25 Mar 2024 22:08:26 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=205.220.165.32 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711404508; cv=fail; b=YlgaIxbxK3FhFZ+FquOSb635KNnGE1fUTxeEppGjiJ8OFcIe4db2GxBPz07ZuLGNfKL3ruSi0OYq9UqDNYIxwEpbmPNCNp199G8mMmBOYyCyNCgXRcXLd3vb54QjtkbxgHfDHR6mU04dqBZYVjPU6w4J2mJaOt9ODJaLqQaR+Eo= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711404508; c=relaxed/simple; bh=PYJINc2+/MvwvLqM7Od7vGWzTPyotzPQkxoL8Bk8lEA=; h=From:To:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=DnvA8QoG3Bt+qgpU7dLu29Wq4/U69eOpO95uDCuUC3rLO7GdCS98Sam7lnU2Y13XbhlCpASGctcu587S9ScN4q3De5xGAQ6cj2dOZYMPb9RBExeN5lW1uh2HkqlSBnJ0VsM8QZs+gW/KwJe8samgAD7R0lrzxvfnvD/sNLm0OMA= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none 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=NmOEHQwG; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=cD+g4Yuw; arc=fail smtp.client-ip=205.220.165.32 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none 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="NmOEHQwG"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="cD+g4Yuw" Received: from pps.filterd (m0246629.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 42PLG6CD027956 for ; Mon, 25 Mar 2024 22:08:26 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : subject : date : message-id : in-reply-to : references : content-transfer-encoding : content-type : mime-version; s=corp-2023-11-20; bh=/9Skm2eLBDr68rjbHueLe4CImRL5YV2di35tW+qa4pQ=; b=NmOEHQwGI/fYo1JtFXXTlFEsoN7AtZaH6wqiuIFVBDL+MiUgcQh/g30RSOI5dLBw4zzr +C7xmW3MZDXs3hIh3LY9OHDejyN2vn055lmzNCXd+Hf7WBLZ+YZrf1BR80C8ngv3jt2G WxmeeSzEjQ7rcPh64BcucERs8eUrV19UrLlEc11qXaSBhxzC0+WO+5s2L3Zn1JlGu3vv 3A41whU5UblLN9uIp/zhQ3zReM62JJsyIECK88N93KZx1xKD9fRCrrEdrTzlOH+vjdp2 PIkAfkzjHw8wQgtSk1lP9w9ixU8+Jcx1LwbB7VZlDWza+tQuzDCv97q1+M41hvJGs9p2 AA== Received: from iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta03.appoci.oracle.com [130.35.103.27]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3x1pybkqjw-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Mon, 25 Mar 2024 22:08:26 +0000 Received: from pps.filterd (iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (8.17.1.19/8.17.1.19) with ESMTP id 42PKPhAK015960 for ; Mon, 25 Mar 2024 22:08:24 GMT Received: from nam10-dm6-obe.outbound.protection.outlook.com (mail-dm6nam10lp2101.outbound.protection.outlook.com [104.47.58.101]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 3x1nh64raq-5 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Mon, 25 Mar 2024 22:08:24 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=fyksbNT8D8ZhE5++9zAp/lQ8sKyDlMolHaU36CqTnKeFpoRIRKN+xpedW9RwoayT2aV3lrjKOt3wJc+4xjSwFnkk8o2RbftthaGQi5l9foyuASJAcncQolEMmreABKEYqt2NjWqGlfFzmtCcaHgyJudbV26kI+wQ5IJTVPBnp1CjrCCxXh2EaheCoOeoFtn2NI4U8XZNh/Hogoa5fkhFnT/0POkvMGZXX0UCygCgi9TMuVmeFM01M23+CxAFpKUxQO9K+FcX+iTs85QKycf+/QD42Wod+GuxogBSbynUnx+7QW03KVePLl79jSwwDnVv/8XxEHtv2ovT2MCEdyOPSg== 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=/9Skm2eLBDr68rjbHueLe4CImRL5YV2di35tW+qa4pQ=; b=MHCynKBzbxgJCu4D40j4LMM9S1WVTceRy24GdtOS1kYA/PNNHXwZGXD7YYAw2r5shAN19nxYDj3Lx4VerkLL7/nz2Pe9OsueIaV/A1r/2XCMnAYFmBq7FPO5ddHZjsRRlSTNls6f4sqq5pwN0mkY6cYMDkQ0EuiEmQjmI1e9zlklsggPobohsRUjsfwDGd5pLYfv20sOfwVjc0DWdKkDvD/awcRIHRi1v+TzHDBnT2S5iQ1DjPluwlqxrDh63ZT9rXuzJ0HuRkJZBgySBz39/PLmcMsImGGh4+U9pQ79aJwfu+fLtX2dbJc5UtLPSGkSUjtTiBfvWzrdyCoVkrKn0g== 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=/9Skm2eLBDr68rjbHueLe4CImRL5YV2di35tW+qa4pQ=; b=cD+g4YuwnBjJwSJcuiCApaWOKs5LOzgdATfJy4m7qqBAwjdx3VmkChIEUZfKMVGB9Z684b67dGZmsUzpr1CoY4Zu7pYseco+p9j5RfoFS2OJdc073q6DGbIsovY/khUH09jEpQ8h6yBbSi3lii6yTilM+qQYHVtYXrsBj+r75jE= Received: from BLAPR10MB5316.namprd10.prod.outlook.com (2603:10b6:208:326::6) by DS7PR10MB5005.namprd10.prod.outlook.com (2603:10b6:5:3ac::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7409.31; Mon, 25 Mar 2024 22:08:14 +0000 Received: from BLAPR10MB5316.namprd10.prod.outlook.com ([fe80::404e:f2ff:fe2c:bd7a]) by BLAPR10MB5316.namprd10.prod.outlook.com ([fe80::404e:f2ff:fe2c:bd7a%4]) with mapi id 15.20.7409.031; Mon, 25 Mar 2024 22:08:14 +0000 From: Catherine Hoang To: linux-xfs@vger.kernel.org Subject: [PATCH 6.6 CANDIDATE 21/24] xfs: ensure logflagsp is initialized in xfs_bmap_del_extent_real Date: Mon, 25 Mar 2024 15:07:21 -0700 Message-Id: <20240325220724.42216-22-catherine.hoang@oracle.com> X-Mailer: git-send-email 2.39.2 (Apple Git-143) In-Reply-To: <20240325220724.42216-1-catherine.hoang@oracle.com> References: <20240325220724.42216-1-catherine.hoang@oracle.com> X-ClientProxiedBy: BYAPR03CA0017.namprd03.prod.outlook.com (2603:10b6:a02:a8::30) To BLAPR10MB5316.namprd10.prod.outlook.com (2603:10b6:208:326::6) 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: BLAPR10MB5316:EE_|DS7PR10MB5005:EE_ X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: tBwg1f/Z+Rfa3S8d3C8bbgkBxNNAZtMDj4+tjTf2jsRPwOGyQrHP6z8DuajV7fVk4KfWeNvk5FEvcl3zS/iyXjgnpmdOTr2AHeMIj63CLKknJHY1+Rea56k6UWLXiX/oBevLhzHX4XGrsgQbrC5SakUn2f34wQ4PcKUZtChnGRBRWiKB0aOFtuYB/UAt0wCRrFIi/rCkHNWwC7dnwIs3IVB+wX5zEwU1SDvwg182MIRKh9JsBk0gYgIGqAizQ57da8oVMTtBV9DN9QCFPWg8wlLa4NpMzRZ3/g28PNCooykD0V6Vr2qiE8+jAB4IlS4Cjr6PuFI9JLi2LgPon4VArNyTE4CZfGkgIdmQhErAKiULPsQd0CkgYnoV7T6isM6HcFh47749voVWabXgL5W0hfqXsRmPJDBGIx3bX6bepY1S/YbUpomD1YaNn9D80SjSfpQySlDkcJ28mLDO7EjAFd3CpfCG2OvrBO5Qj/hBjBlo1CQK6GWIBfJ0yTZ24aZKn5JpHlaMom5EeZYW6+6m6dmOFQkPCXJojPci+HHN286FF03bQHCqakU2ijYC9dSVX7pSpFXeLlbXu4JC4xkAIhLZFjZv+OEy4BChBKVT+bFVD8tgtThtfm1LAbzJ+cRA8sLOGRC2DcjlkrmjF2FBKth3CaFQRR0zuVXVhmtJixc= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BLAPR10MB5316.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(376005)(1800799015)(366007);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: b8VFHQva1UxR1Bbbns+OTExaBWucWmvHmOIz6lOxs24J/3b7c0APvlqonx4VdOqsjF/waQjAlwihxpPOeaNH7CjYh+6VPHDNytEcEp49Ebh0rdDoNVW5tMt08z3s1zGExskDFWUTzJ1rD7nfiddGrMJcaDvww5mDWd+VfxbG0oKx7XoEsASJWQwDSHeu1QgUVHohjMzl5Edt3c5Mjx9l4cCyh0jXx9kWddhafOnG/hN/LmIT2eXA+udIcIN613whXd1bEkc8DyeO+vk7hiX4l2ME/zcMkCnW0XGk9r6+mokyH2TnG6m8daSAxLNVz01Z2WeH0VzRzS7MWc9Nrloz1ta1kd38BVjebcyQbzEEQidTWlF35uMyw6D0oyT1PIvkemiv6jLMan2V6sbX8jfhxxti9Bx4CGZJ+FRuKoKxz8f4UOqmS2RyGY1FmTqT88qGsfBbkuCY83roCUK6RIIRmxpn7cUUdxm60Z9QlMnjL2yf+cnJxequdR9d+b1I43GpIm2masPo6So+d7mjeXp3GNDnNR57YUDM+joigZUx7DGhYTnVOL3DIzqYEytJ8DRU7tHGcsoPY/MNwpPRoN5SPnKrGFHfvLGDF1VU9JINTBSn54td/Ca135DIVMmger6odaLrpI4q/Wzp/0JoOgxN4cBo3/3Rd0g77XyYuGk+LxaBAsM1ljBl736xqQaB/HuOZH8StEsQzNfWbpBJTFGm459jT680RD9Wnrz35y/og6aMeL28612yEfxHQoF2Kx/p4iqNq1EJzcHUVs2x5HdfCYlNVcg6TrFad9kb1bn8ZshNzAkCl7bjvluSKaRWUzVn2EyyOBpjPFwtcpjt9Ag8vuxCEW3HoAbi1tp2+zKDdWdc1X4ec5PYkcstEanpv0OuOiEw/+duhzOVDgiqSWNqucSUaq7N2mNF2LgSeFv2ZUqQYlaQDYHHpLIqcL6BVux2MI29jTbvpIH76vQRTPZ7/riI+tKE7SUju/PIV/mf7M4vCCmfT78rVEkhhzUaG+gD99CTrzKQQ5Qow/lso+rVI9Uz+KEo8cVGjZv8LLkv/IwSICjHRqzocDbyRXe4XFv13mfI55fV2Q2u2oEx3z+z8m+qG/iUJR8fiHvsuqV/EHXVRq5DMFWoT7wX8DdB5l8nyiMJ2V2Bu3ylWvOBJBKIenbO+vwgLmxGbX9yxdcQD/WjcyC3iCkF5WXB2DPWTuWOaanzK6WHuUxBdr+036bSdKSVLbHcpePjjsr8QQw3oZU3ibWxI32yLaHat9Nr6hUyr+4P8+cxdRUv8uxMtXSdEjLxD5z5eOD1IWH+5K/CsKU7k6NrkhmV+Cc96IWq5LpK9I5q4bgo4+SjFEX17KOw1QKHjdJ/FB/XQ3Diwg5nujTCntyHGtRVJkmveV06n0+Pa5hlZ9u9uWCRc5lu6se1TWJrHz1Xs0ySSco1YuGxouIM1P2faOOCT6FYvd4NexiwA4ryELVIaESLkwqHkN8E4IWqunXeZ7OwItkzr/5CaX+RDXzL5rocRiPpRqLVbMJok8H+BwMUrXnajvoaRLPq2ZlfIXcfWaTprcbX6qT4tDbzM85ZkRLq9QPQdtPR2oLhPoK3NikbmG5InjTxxfU6M2ibByQRPK+C7mwy/FWjVWABOD00NX3NlqC+aMsqcPCkME4dZTIIX7GPeR50XMLAgw== X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: MA2/Ey6WBgAuFRtNUZOJxIKnyMgJ68JC8xLDdUq9tfn/YvdN+lI8809dikRwxBqVfoJd9DAu9XxXtBCSXVUEnNewsiToGHBpzAMIEHSmsGm0QcmP+aqhxE0MIJvDbdBG780t888lmggtXeu5fJ06GWG/t2KaTPE95TToMes62lYB+qALyAacE79nBSRVWCooUtQ4cKzwD1mr4K5xnrNiiGXyHXYaZW0pld7jzDn0iuYN6i4o6Lxoop8bj3w2FPZVNGliSirkibO1dZFVfhi3E1MoBWplVmnhKJZcrvWdlZkcNnyKunFsBJmGBa+tbOdaFJIUrZ2LhHYbJ6jG2NVm1VsosmLI0AEa/YngMjvMpV14XqBeI6TNGXf75hQTcJ0n1kcSGORS5rSg8BMYYiE7/g1f255l30Fukb/CpxLJqjLA+Vl0zY5uH/G7E56nrywiKRv5mTSuFEcdvmivWhAuMcRVlsb9Di+nNUvgiEXgl+TgJiF/F4Myr5q+553KYxhgr42TB++af2BV4IHJihiaWhMGtBGRsf+LlTs5EDZwUJgXr+qRGwviCtI9EVI0pPm+WgdZnS2luxUZDBUwrajjU0vfSre7/tIy4kmaX7q9ies= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 72907e9b-4c61-4091-7f2f-08dc4d181107 X-MS-Exchange-CrossTenant-AuthSource: BLAPR10MB5316.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 Mar 2024 22:08:14.1212 (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: C6k1WfuiM2K1WAqzvNBP4/zg6aUvf8p/EwIIbVeGgcrgVxsMRhQl6THY96CN8HYrTZhnRH55EcBeJnDMxuU5XzhuNvYtE9QYett20m9ULxs= X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS7PR10MB5005 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.272,Aquarius:18.0.1011,Hydra:6.0.619,FMLib:17.11.176.26 definitions=2024-03-25_22,2024-03-21_02,2023-05-22_02 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 adultscore=0 malwarescore=0 phishscore=0 mlxscore=0 mlxlogscore=999 spamscore=0 bulkscore=0 suspectscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2403210000 definitions=main-2403250138 X-Proofpoint-GUID: OuEmI4whtUHQCL-sSj8bH4dxv629RvDQ X-Proofpoint-ORIG-GUID: OuEmI4whtUHQCL-sSj8bH4dxv629RvDQ From: Jiachen Zhang commit e6af9c98cbf0164a619d95572136bfb54d482dd6 upstream. In the case of returning -ENOSPC, ensure logflagsp is initialized by 0. Otherwise the caller __xfs_bunmapi will set uninitialized illegal tmp_logflags value into xfs log, which might cause unpredictable error in the log recovery procedure. Also, remove the flags variable and set the *logflagsp directly, so that the code should be more robust in the long run. Fixes: 1b24b633aafe ("xfs: move some more code into xfs_bmap_del_extent_real") Signed-off-by: Jiachen Zhang Reviewed-by: Christoph Hellwig Reviewed-by: "Darrick J. Wong" Signed-off-by: Chandan Babu R Signed-off-by: Catherine Hoang --- fs/xfs/libxfs/xfs_bmap.c | 73 +++++++++++++++++----------------------- 1 file changed, 31 insertions(+), 42 deletions(-) diff --git a/fs/xfs/libxfs/xfs_bmap.c b/fs/xfs/libxfs/xfs_bmap.c index a47da8d3d1bc..48f0d0698ec4 100644 --- a/fs/xfs/libxfs/xfs_bmap.c +++ b/fs/xfs/libxfs/xfs_bmap.c @@ -5014,7 +5014,6 @@ xfs_bmap_del_extent_real( xfs_fileoff_t del_endoff; /* first offset past del */ int do_fx; /* free extent at end of routine */ int error; /* error return value */ - int flags = 0;/* inode logging flags */ struct xfs_bmbt_irec got; /* current extent entry */ xfs_fileoff_t got_endoff; /* first offset past got */ int i; /* temp state */ @@ -5027,6 +5026,8 @@ xfs_bmap_del_extent_real( uint32_t state = xfs_bmap_fork_to_state(whichfork); struct xfs_bmbt_irec old; + *logflagsp = 0; + mp = ip->i_mount; XFS_STATS_INC(mp, xs_del_exlist); @@ -5039,7 +5040,6 @@ xfs_bmap_del_extent_real( ASSERT(got_endoff >= del_endoff); ASSERT(!isnullstartblock(got.br_startblock)); qfield = 0; - error = 0; /* * If it's the case where the directory code is running with no block @@ -5055,13 +5055,13 @@ xfs_bmap_del_extent_real( del->br_startoff > got.br_startoff && del_endoff < got_endoff) return -ENOSPC; - flags = XFS_ILOG_CORE; + *logflagsp = XFS_ILOG_CORE; if (whichfork == XFS_DATA_FORK && XFS_IS_REALTIME_INODE(ip)) { if (!(bflags & XFS_BMAPI_REMAP)) { error = xfs_rtfree_blocks(tp, del->br_startblock, del->br_blockcount); if (error) - goto done; + return error; } do_fx = 0; @@ -5076,11 +5076,9 @@ xfs_bmap_del_extent_real( if (cur) { error = xfs_bmbt_lookup_eq(cur, &got, &i); if (error) - goto done; - if (XFS_IS_CORRUPT(mp, i != 1)) { - error = -EFSCORRUPTED; - goto done; - } + return error; + if (XFS_IS_CORRUPT(mp, i != 1)) + return -EFSCORRUPTED; } if (got.br_startoff == del->br_startoff) @@ -5097,17 +5095,15 @@ xfs_bmap_del_extent_real( xfs_iext_prev(ifp, icur); ifp->if_nextents--; - flags |= XFS_ILOG_CORE; + *logflagsp |= XFS_ILOG_CORE; if (!cur) { - flags |= xfs_ilog_fext(whichfork); + *logflagsp |= xfs_ilog_fext(whichfork); break; } if ((error = xfs_btree_delete(cur, &i))) - goto done; - if (XFS_IS_CORRUPT(mp, i != 1)) { - error = -EFSCORRUPTED; - goto done; - } + return error; + if (XFS_IS_CORRUPT(mp, i != 1)) + return -EFSCORRUPTED; break; case BMAP_LEFT_FILLING: /* @@ -5118,12 +5114,12 @@ xfs_bmap_del_extent_real( got.br_blockcount -= del->br_blockcount; xfs_iext_update_extent(ip, state, icur, &got); if (!cur) { - flags |= xfs_ilog_fext(whichfork); + *logflagsp |= xfs_ilog_fext(whichfork); break; } error = xfs_bmbt_update(cur, &got); if (error) - goto done; + return error; break; case BMAP_RIGHT_FILLING: /* @@ -5132,12 +5128,12 @@ xfs_bmap_del_extent_real( got.br_blockcount -= del->br_blockcount; xfs_iext_update_extent(ip, state, icur, &got); if (!cur) { - flags |= xfs_ilog_fext(whichfork); + *logflagsp |= xfs_ilog_fext(whichfork); break; } error = xfs_bmbt_update(cur, &got); if (error) - goto done; + return error; break; case 0: /* @@ -5154,18 +5150,18 @@ xfs_bmap_del_extent_real( new.br_state = got.br_state; new.br_startblock = del_endblock; - flags |= XFS_ILOG_CORE; + *logflagsp |= XFS_ILOG_CORE; if (cur) { error = xfs_bmbt_update(cur, &got); if (error) - goto done; + return error; error = xfs_btree_increment(cur, 0, &i); if (error) - goto done; + return error; cur->bc_rec.b = new; error = xfs_btree_insert(cur, &i); if (error && error != -ENOSPC) - goto done; + return error; /* * If get no-space back from btree insert, it tried a * split, and we have a zero block reservation. Fix up @@ -5178,33 +5174,28 @@ xfs_bmap_del_extent_real( */ error = xfs_bmbt_lookup_eq(cur, &got, &i); if (error) - goto done; - if (XFS_IS_CORRUPT(mp, i != 1)) { - error = -EFSCORRUPTED; - goto done; - } + return error; + if (XFS_IS_CORRUPT(mp, i != 1)) + return -EFSCORRUPTED; /* * Update the btree record back * to the original value. */ error = xfs_bmbt_update(cur, &old); if (error) - goto done; + return error; /* * Reset the extent record back * to the original value. */ xfs_iext_update_extent(ip, state, icur, &old); - flags = 0; - error = -ENOSPC; - goto done; - } - if (XFS_IS_CORRUPT(mp, i != 1)) { - error = -EFSCORRUPTED; - goto done; + *logflagsp = 0; + return -ENOSPC; } + if (XFS_IS_CORRUPT(mp, i != 1)) + return -EFSCORRUPTED; } else - flags |= xfs_ilog_fext(whichfork); + *logflagsp |= xfs_ilog_fext(whichfork); ifp->if_nextents++; xfs_iext_next(ifp, icur); @@ -5228,7 +5219,7 @@ xfs_bmap_del_extent_real( ((bflags & XFS_BMAPI_NODISCARD) || del->br_state == XFS_EXT_UNWRITTEN)); if (error) - goto done; + return error; } } @@ -5243,9 +5234,7 @@ xfs_bmap_del_extent_real( if (qfield && !(bflags & XFS_BMAPI_REMAP)) xfs_trans_mod_dquot_byino(tp, ip, qfield, (long)-nblks); -done: - *logflagsp = flags; - return error; + return 0; } /* From patchwork Mon Mar 25 22:07:22 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Catherine Hoang X-Patchwork-Id: 13603082 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.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 483C67317C for ; Mon, 25 Mar 2024 22:08:27 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=205.220.165.32 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711404509; cv=fail; b=dfr/mdt7E5tfA1J4pNenbP4unv1sJKSaHn5NOrHY2Mmn6GiX52vsyMAEUBxiFEY5TjmD/F8sjIzm8smZurr4N4cuM2XObsC0ooNo+fm6ekvXjEGpNGOfzIMihg2Yq6sg6+AG3Y6BElSCUp3JW7ZFYA2sV2V9mG3zS10n1oUTCgU= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711404509; c=relaxed/simple; bh=6Xbbpl0CWqri/deCN1IRxkycOUv2kgFLzkS/S/LFC6s=; h=From:To:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=YVS5DoidsiGTH8wwcd4rRlIK8+9PJTnrbAzqDiKTjV5jvYZ96mT+34p9iGSSA3ke/WtcWhklqbQ9q0MHSNrF4RPEGOlWsFafQ2D5WbdhO50EVZZFAjU9X6drlhq+jenLCzXj/mQRH3r/KvVxbilMEuhFH2V45PVOJbB7Sn9MlAk= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none 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=hgX4JlqB; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=wv3RvtjK; arc=fail smtp.client-ip=205.220.165.32 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none 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="hgX4JlqB"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="wv3RvtjK" Received: from pps.filterd (m0246627.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 42PLG1Sk002291 for ; Mon, 25 Mar 2024 22:08:26 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : subject : date : message-id : in-reply-to : references : content-transfer-encoding : content-type : mime-version; s=corp-2023-11-20; bh=WDZUJ9QHMLstBHKV4NMappBPTbxlKjXH4yEpwFRacWg=; b=hgX4JlqBaYI9K6AmTMOvBDTHMJLgFj5f9JWrrzx7Jc+yPRuivlrctlnc+p+zEnK9vpr2 QjwS7H+2JXfgJC+PYV0ATz3DnXjxtC1b4jU9KdUdjaBWDNKgyil3+XyRsWYclRSIlMfo oNuByU39DhXeQ6ZOzt8hvmhQ706lNOlRMYtwi77LLNCP8h64kpdwPu1jxrTWz1sO42So 2O89e2xC0YVstEaWi/WeqdPdeGEprXWK4RWvBtI9/EyVCDVL8oDGbO46xSxy15Ax5y7k dVh2kdyixLMosDnIVZ4xuMw+h9o8NsCuz+Ea4dfM25pJ7xhQwJmNhQqYxy73Bhnu9hUl bQ== Received: from iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta03.appoci.oracle.com [130.35.103.27]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3x1np2btj3-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Mon, 25 Mar 2024 22:08:26 +0000 Received: from pps.filterd (iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (8.17.1.19/8.17.1.19) with ESMTP id 42PKPhAL015960 for ; Mon, 25 Mar 2024 22:08:25 GMT Received: from nam10-dm6-obe.outbound.protection.outlook.com (mail-dm6nam10lp2101.outbound.protection.outlook.com [104.47.58.101]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 3x1nh64raq-6 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Mon, 25 Mar 2024 22:08:25 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=VV2tYB/nq901W+h5bccCooFaX2olWCDnpcvaLgI2bSvVepx6jTVaMlqPbMo+3M8X23f+ahdRaIoBv4rm8xKZq4nSKlR6fs1P4GZoJzbfIfimF6cfsTbxOgvyePU5XrYklCig4f0Yi+7NHXsLM7eS/ntHnsNDf+tHRfbBW7yegoaZ+dRQbf7WIWcJmTqhduXmxDEKsd0QD024bCB2om8XM6mhqvLBSdTm1XtM/biAlnFvNG4WVMSS6oHDAiBiC86jRsynxDLvxgRoHaUDVlYbbwm3ka+MhEyldYdsLBQFTeag4L20xoPhOVKHqItjn5vJMwCpsCOMsxhVC/o0SAIefw== 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=WDZUJ9QHMLstBHKV4NMappBPTbxlKjXH4yEpwFRacWg=; b=n7KJEpIovV6wmTfyVBrdmEvVuPEUahIPrmuhu7WRxM2mTl6r2+Kuex3vbagpQBWYdLKMydl/9CrB1R1MJGn0zZzr25Q8yGPrbhIW9tPgfZO2fYj5XSKjmJYpi+pCcLO18eZQTODdJOvnmIX3Kuj+OdvSR+yApTZREcI/l7ZZnVqLR+eyR8cuWfnHjrBxy3t2t+gZOn2oEi1Df9xBrQyODrOdeyjsjlN26NKUESZOeb4TGrAY8ug/atJKfgTK5o3XoZJR6tw3AuGSWRi+v7WunpawtmR0Lsfna1dyEv9RVtiO42G907Tf3+IwkFQ2oCBj5xCfKd/LLkO+5E8L7Y3B0w== 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=WDZUJ9QHMLstBHKV4NMappBPTbxlKjXH4yEpwFRacWg=; b=wv3RvtjKCEcAMPmO8laaowhQiQb4rvTLAvc58I0+VlucjAt1b3IfyUkuMjekgzamnk3t2k85liEd8KF5A43pCLVbHnBI2tyfA2IXeGDVuoDvdFrQnGrW4dDMjG75bkrYiJAocib/koSKKxzM4adYJrhAzu9f1FKB00nGyGw4hd4= Received: from BLAPR10MB5316.namprd10.prod.outlook.com (2603:10b6:208:326::6) by DS7PR10MB5005.namprd10.prod.outlook.com (2603:10b6:5:3ac::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7409.31; Mon, 25 Mar 2024 22:08:15 +0000 Received: from BLAPR10MB5316.namprd10.prod.outlook.com ([fe80::404e:f2ff:fe2c:bd7a]) by BLAPR10MB5316.namprd10.prod.outlook.com ([fe80::404e:f2ff:fe2c:bd7a%4]) with mapi id 15.20.7409.031; Mon, 25 Mar 2024 22:08:15 +0000 From: Catherine Hoang To: linux-xfs@vger.kernel.org Subject: [PATCH 6.6 CANDIDATE 22/24] xfs: update dir3 leaf block metadata after swap Date: Mon, 25 Mar 2024 15:07:22 -0700 Message-Id: <20240325220724.42216-23-catherine.hoang@oracle.com> X-Mailer: git-send-email 2.39.2 (Apple Git-143) In-Reply-To: <20240325220724.42216-1-catherine.hoang@oracle.com> References: <20240325220724.42216-1-catherine.hoang@oracle.com> X-ClientProxiedBy: BYAPR03CA0018.namprd03.prod.outlook.com (2603:10b6:a02:a8::31) To BLAPR10MB5316.namprd10.prod.outlook.com (2603:10b6:208:326::6) 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: BLAPR10MB5316:EE_|DS7PR10MB5005:EE_ X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: LWWLH51CaslmMn8PVe5/tuEN927xh78KO5Cl2DQLeinVKpVHWxgUVnwq0NqMbCjb61wECiZqDB3u9RvDt8KvDR0fcixfcvxtD4uKBhgENeugbBpQw2FEB11j8EPUItkKCQLzlp1TM0D59bpERT9Is2npjJntmhK8/oz/HAD6alEshVMY4NymquYuWeoAKfHf06yVnyw6yc9SkJoa4GfXpesWYqKY5M0ajV3jCd+klBh7sUgHGOtg5Zs0HKLbMdavSum2G/Sc0MwPG/bgxkJmGf2bQfKeYHp2MhPHx/Af9T+zj2xcGkO62D/edyTvTD4vBYU2Q8a/xVpylI9yGFTuSpx4DK+IOmub2jBIFCNbc+/8fQ5vexnZPNrfoajydmHj8c0QKASLOUeR+ZphsYIlr7BYgrIUXIzfbJuziMrKdQuZ9PHup6dHeJTMZjKZEJu2WSMK6d1rtvrYQN7INz/RHbTkNbF0QWXQs7Yu1s0rdeBr158W5E3AyogPHPG1OwcKmKl6k51tVndpvX/EnrudRoY9J1+UqjBTNdO3uLiYr4xjSKUtQva4kDHA1R3v50j1DXBflPtzKCns8wRR6pmOZbeIPfOw4mh2EtvkeYdpREnKVZDr5WLoyc6VLNUX/P90RtTN+D8dEfwCxzzUwlQTX11pLg5sp+3ExGsFlsvukmY= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BLAPR10MB5316.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(376005)(1800799015)(366007);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: 1+WVM0mQkszpjsRp++O6S26+mZ3QF1cedWudVvcE+CtEgipXNbIhRx6K9iiqy/9IsHS6gEvuYI+fiewy91ZCPeltSlEdut2e2icj+uNydxeJJz/qYs3V6blgP5Ew0v8MlTSDSuVcCqneH0lUZTOI1Zh0OGOu6b1D+9Ltuo7GnREqAFqzssZ6reELT46+uh/QDWKPtAUEm44ocknLF96wuvU8Hxp3TrrZSyWNC0K3z6CBUHfe+AOZNCLy8SEhgs/pVWAvBzf+ZokFqZpPI4psOZ0OQJpGDL7gfcuZ2r8vJniD6AA6EqJT9801UEHGdkPEEna2VWWcwcH/QgCBYHH5tEiyPf1LlRrPSdE58+PSAarcXMuPc6RvJCtsdSjdP7j6Atnc2WZ4+CgqNSY89ugarSPnL00uI5Ba98q4EOJbdiKMGRFfWXJUa17XvABXdMhpdQpp7iMLZDMCtG7SzBdCs7b0CWklyb/UP4nweX6ATK5Qok0fcayLViqSg6KDxIKhCqp2g5eeaCLlImyvJ6B3VQFNp79qgYVh7n+w6B/6S9+CqdP+J60E4e+8KcPF5PevDg+MGQ9Hxbi6f8kXVMmgbWW8tqc52HFG/14LXMM4NNs+oMD0ra23YNgaS9cZheGRuN5BMR2V0TnvJUMPVx49b7nYHTf0IhPeFnSNWD9+5Ow7VSTYXW3MOegUJk1KG7Pc7S5x6qhMy4KfqFM61TJs6n1kvg/Z+NHUam6tJN8YZ7wDsSrGspIFL+rxG/9lTTjhZF4dj7cDTEG4zUrILg5UuPGy094UUy+5iae6GZ+OYOgS22NJ/AKDMzxngK13+ijU84Ah+e1K/mBWvJPX+T8Cah0YNqxwdYNdLz2hGvZju2Dk1mrLAZPUC7j8SpBy1Fj7WhoBoJ30wy7g7ZbvVmj2G6IxRKnjjBNVV7rHZGo7Szhv+PZUgQU1O2UbdOyXhd6H2QSDoF8PjGAi52/don3tnJ7dhYKDXPY0+VaJ/Nu0Jr4F+wOVf+V6lju+fBrZWjxhm6b/oWfee5IQmN0tBgV2XHwjifGtCucmHQahzIWnqYPV7M+2cYbQPLrWY1NXXqeQw+tLMLYL3FIAyayDjLK8kE3uc4AGQgmXNSiV/egmpg8nmbyjfEhg8mb7d+o539ywOOSlS9ffDd2XsKEKOjyoMleLKALlr8jZXqCHox2NSbd0q8X22L4xJujo2Ds+sPvDSaGZUzxM54XUxEbdXQHWCBysngpf8FCzn160CtNKeREFbuvhkXAGjy3+RQg1XISRvvR9oJRj2WRnj8LRyQT49aLmLTneChQ71w2TfenTaQMyMrX1RLm0NLJ2Zwcg5Vs2LKVFqvNMUVs4uHpLfvkdxBjabCj1ENirnmiNOmGYFRct/zijLWiDkmxlp6y/zniqkhjcj2mF/Uw05zWS2yNQoXtxd6pAgmKBGYalztmWRW0z838CKTN7zeAUAzy1LrF2ojGUW9AJ5zDCOKbx4YEEX3/Ki4QsmDKBhTfDrj8SVYaCMvKLuotxxI/tGHeVv0q1uNyOwQv+qplMRo6yBBX9eaPszo1mksZ+gZCeTZCV5NAzg8N/8vSZ48O3/hUSrzymkJBceZxGRJkklfVucM25yf8hnDqE0/V04N/z0AY7gcmgwpSj0gkt36xZeElhN1wOaL2bBFLV5XXGqSPN0QZ82g== X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: 1PkWf+rm248BwmrqwBZA2REhVoFqJt9rj+Kqx4u5r9osEiAKMcBpDKrzspSgMsiFj/K55ImqqgiJ30ECKZs1OBnywHFtis4aziZUj6+cJsPlMnaJdPxwYr2c53Y42HgNeKs21CiNURjn31nZ/jt5NFGxlgPkINzeQlxUZL5bFO6s3NWsIsHD8V48VyVuPQzM8UiPpMbSMALjLEENdMndZE7qvagaY2EEkzMyrKmxBumrLp8uDCAdgBiV94m+npUdp0Uh10A+3KzJeTN3uiOoxJx3yAf/8KkjVSUbew1YD6j8AedHr/Yb5QfhfXkMrzmmdQRvXj6izYc53SwTxVvDG2+KRvVQs+2EuWNQM1DS4ILWISgqh2xZT2SkWNV4ifiTYUFXzzm678Lupd5cOpGdct2Isjz5BtqVv79d3Uypyd70rs9hF2HxmWjD4HMineu0R6jqGlDwJrI1YOKE5R4IkcQKbJ1yKRMMuxPVMwZqcxZxN6AXMXPSeZA5+DVoxMyJTcYX45o9/1djfj+9vL+SNj7+vd/A8t9VvrK3OHIk+dZFcnZhuDyTJnuiRBnXIDiq8wXtZHdhJX5C4CQMaXM/1kkyq0WAXQmZ9RGrVA10LKY= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: c0c7472b-b040-4269-bd6d-08dc4d1811f5 X-MS-Exchange-CrossTenant-AuthSource: BLAPR10MB5316.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 Mar 2024 22:08:15.6833 (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: pkU40wD4qz/g28RKjOnK5Sw3jdHLNcMDksGALRtMHUvD3GWjsR7ZyvIaOA3ih9r4W6rpNYSWuw/iC759O4k9yb1Y0KoLhFZ4zCZjWBaqR2w= X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS7PR10MB5005 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.272,Aquarius:18.0.1011,Hydra:6.0.619,FMLib:17.11.176.26 definitions=2024-03-25_22,2024-03-21_02,2023-05-22_02 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 adultscore=0 malwarescore=0 phishscore=0 mlxscore=0 mlxlogscore=999 spamscore=0 bulkscore=0 suspectscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2403210000 definitions=main-2403250138 X-Proofpoint-GUID: 3DXcYVlOMtF6dVn1BVmew2sVUJkioBy- X-Proofpoint-ORIG-GUID: 3DXcYVlOMtF6dVn1BVmew2sVUJkioBy- From: Zhang Tianci commit 5759aa4f956034b289b0ae2c99daddfc775442e1 upstream. xfs_da3_swap_lastblock() copy the last block content to the dead block, but do not update the metadata in it. We need update some metadata for some kinds of type block, such as dir3 leafn block records its blkno, we shall update it to the dead block blkno. Otherwise, before write the xfs_buf to disk, the verify_write() will fail in blk_hdr->blkno != xfs_buf->b_bn, then xfs will be shutdown. We will get this warning: XFS (dm-0): Metadata corruption detected at xfs_dir3_leaf_verify+0xa8/0xe0 [xfs], xfs_dir3_leafn block 0x178 XFS (dm-0): Unmount and run xfs_repair XFS (dm-0): First 128 bytes of corrupted metadata buffer: 00000000e80f1917: 00 80 00 0b 00 80 00 07 3d ff 00 00 00 00 00 00 ........=....... 000000009604c005: 00 00 00 00 00 00 01 a0 00 00 00 00 00 00 00 00 ................ 000000006b6fb2bf: e4 44 e3 97 b5 64 44 41 8b 84 60 0e 50 43 d9 bf .D...dDA..`.PC.. 00000000678978a2: 00 00 00 00 00 00 00 83 01 73 00 93 00 00 00 00 .........s...... 00000000b28b247c: 99 29 1d 38 00 00 00 00 99 29 1d 40 00 00 00 00 .).8.....).@.... 000000002b2a662c: 99 29 1d 48 00 00 00 00 99 49 11 00 00 00 00 00 .).H.....I...... 00000000ea2ffbb8: 99 49 11 08 00 00 45 25 99 49 11 10 00 00 48 fe .I....E%.I....H. 0000000069e86440: 99 49 11 18 00 00 4c 6b 99 49 11 20 00 00 4d 97 .I....Lk.I. ..M. XFS (dm-0): xfs_do_force_shutdown(0x8) called from line 1423 of file fs/xfs/xfs_buf.c. Return address = 00000000c0ff63c1 XFS (dm-0): Corruption of in-memory data detected. Shutting down filesystem XFS (dm-0): Please umount the filesystem and rectify the problem(s) >From the log above, we know xfs_buf->b_no is 0x178, but the block's hdr record its blkno is 0x1a0. Fixes: 24df33b45ecf ("xfs: add CRC checking to dir2 leaf blocks") Signed-off-by: Zhang Tianci Suggested-by: Dave Chinner Reviewed-by: "Darrick J. Wong" Signed-off-by: Chandan Babu R Signed-off-by: Catherine Hoang --- fs/xfs/libxfs/xfs_da_btree.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/fs/xfs/libxfs/xfs_da_btree.c b/fs/xfs/libxfs/xfs_da_btree.c index e576560b46e9..282c7cf032f4 100644 --- a/fs/xfs/libxfs/xfs_da_btree.c +++ b/fs/xfs/libxfs/xfs_da_btree.c @@ -2316,10 +2316,17 @@ xfs_da3_swap_lastblock( return error; /* * Copy the last block into the dead buffer and log it. + * On CRC-enabled file systems, also update the stamped in blkno. */ memcpy(dead_buf->b_addr, last_buf->b_addr, args->geo->blksize); + if (xfs_has_crc(mp)) { + struct xfs_da3_blkinfo *da3 = dead_buf->b_addr; + + da3->blkno = cpu_to_be64(xfs_buf_daddr(dead_buf)); + } xfs_trans_log_buf(tp, dead_buf, 0, args->geo->blksize - 1); dead_info = dead_buf->b_addr; + /* * Get values from the moved block. */ From patchwork Mon Mar 25 22:07:23 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Catherine Hoang X-Patchwork-Id: 13603080 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.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 B63C971732 for ; Mon, 25 Mar 2024 22:08:27 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=205.220.165.32 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711404509; cv=fail; b=HIsVDZY2ptNy8Jg95FFMAzdCxrqfaX9ppSQhRdkQhodq59WuMxYXJp9Za66V79Xez5eRZEbxvGPltbUzLXdBdOxtC6vWvot21VAczQqPdZ+US+/a6VtzPw7529C64EG3pSum9+b8J/BdYIRq9WvEVk69ZuAh/n0/bti5UuVhqt8= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711404509; c=relaxed/simple; bh=bVgMwrV4fQoZ6HvExvW2DESlKnaOniHWYFBtoja9M5s=; h=From:To:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=MkkRHYzydDGirHz8VUM+pqidRGBLQI2k6UjfbkqPyKdGvOXCL2U1wWDuxbjZtamYmUqG96z3qzMO7uTtBHO/bwor+tcvgzh0BtIyEl5+/xfhEw48bXx+WwD+E7ZIIb27feocLeKbx1oc2xPq8gG6BTSigwDSehO7BHpejmBq+Fg= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none 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=mG4z2pLk; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=fs8zYvkj; arc=fail smtp.client-ip=205.220.165.32 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none 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="mG4z2pLk"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="fs8zYvkj" Received: from pps.filterd (m0246627.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 42PLGF7K002390 for ; Mon, 25 Mar 2024 22:08:27 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : subject : date : message-id : in-reply-to : references : content-transfer-encoding : content-type : mime-version; s=corp-2023-11-20; bh=b+BRZ3siabQNDqfMKyj8ZMM8RvWVZKxx0b6tsy8vVvA=; b=mG4z2pLkf1TpkU7H6ySTvMue9eR1n1i/5PuwlR+ULa936qDpECv4gUcQ+1ueOvuUeX4/ Q8deB6AjrnHBnSsSdyVaI+i5bOcMJqHQIIlG+FCzEDCRW4f+qeSYg+F/p46DvN4lTZRA oK8FM/moeOKBU2y9R14mps50/fNWAYwMtD8cs47/RYOHCKm+7KkAbfBt1FQRBCrfjTzG bOoxS2wFCW0FoDuJagZMJw+O7Aa2pnLMIAZjFcpt2IUBwvF1wr3x8FauQdbg9GLfa/Ud AVibxFtD8IRNvSkJCx/0DHCIh2V+gsRb6JyfTYbWBDsGM1EVvf2FbiFpjFketIK07tdi 6g== Received: from iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta03.appoci.oracle.com [130.35.103.27]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3x1np2btj5-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Mon, 25 Mar 2024 22:08:26 +0000 Received: from pps.filterd (iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (8.17.1.19/8.17.1.19) with ESMTP id 42PKPhAM015960 for ; Mon, 25 Mar 2024 22:08:25 GMT Received: from nam10-dm6-obe.outbound.protection.outlook.com (mail-dm6nam10lp2101.outbound.protection.outlook.com [104.47.58.101]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 3x1nh64raq-7 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Mon, 25 Mar 2024 22:08:25 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=ZLKO3Y7VHeZcBSvRRZf1yG5LltZWBGtP1S0AsuemusdgaoqeSDcEdGq6IYW6OfYO6hAwlzPpnAP4sBeuR/ab4vvPJe2j6DPNCer54f6vOMUHTsJy0TJBlQrJ7lyj5XZw5Qy7hRJIlRXqiWg4TfQoB7Bd/WIEWNrc+WA0bVdKQ8s6OGS/CCDe6WRFvVOjmC841q8E4UjPY2FfzkYopPR63JbShtkR07gjtAS8fuVNOuaup9UpfA3Xs9nqsfHuOBW9IKJ98R0TxDwhgZENkfLbPFblvLatkLWZbwCGn77jwJ7SllXQDR+QzuLQq9Dpx0RSq0LY6NgvDEaFBj+OuTLdJQ== 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=b+BRZ3siabQNDqfMKyj8ZMM8RvWVZKxx0b6tsy8vVvA=; b=m19OSCvgYdm61eRnAP8XqfmKUtkIt+8po8A+MSg14iBi6eePIIbkdUS0ftj2zzA4sB1kEWb+13u83ycFLCQjTjETIESjPgknU/b+k2IB5RtemVHpQbKAlufDlGVM6CBgAhvUP9FTtn0Tz4WqNrETot17i34emG43BBikCTmCfTs0+l/6nFdSuqjql+jKjixVxmDB1zABZskTFwpWFvZTtv5+cp4KJIlPtIbclOABdyydqhWiFMWXsNfTMXAUfnsuKqnnTURm2matdFfiVaKJS7hg9opuSp+88l+8X3wTHyNhLy2eFSyTUJh89pDUDqqV0TXOo45EbL+IDVv/9TZp4A== 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=b+BRZ3siabQNDqfMKyj8ZMM8RvWVZKxx0b6tsy8vVvA=; b=fs8zYvkjxxWXH74jHxbCLZOFCh1ClDMSLqdiWFykfc3Z7fJYt2GHDD9wLorRmeWgiFnCp9lLcdTy6KgVeuLvW6bapt6YnhKiEB6iLqWLilMAx1cBs12yw/4hGQE9Tkm4Zf7yvWBwM3x4zlhn5Yq8blN/9KQZMPlql5YZYhA53Bs= Received: from BLAPR10MB5316.namprd10.prod.outlook.com (2603:10b6:208:326::6) by DS7PR10MB5005.namprd10.prod.outlook.com (2603:10b6:5:3ac::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7409.31; Mon, 25 Mar 2024 22:08:17 +0000 Received: from BLAPR10MB5316.namprd10.prod.outlook.com ([fe80::404e:f2ff:fe2c:bd7a]) by BLAPR10MB5316.namprd10.prod.outlook.com ([fe80::404e:f2ff:fe2c:bd7a%4]) with mapi id 15.20.7409.031; Mon, 25 Mar 2024 22:08:17 +0000 From: Catherine Hoang To: linux-xfs@vger.kernel.org Subject: [PATCH 6.6 CANDIDATE 23/24] xfs: reset XFS_ATTR_INCOMPLETE filter on node removal Date: Mon, 25 Mar 2024 15:07:23 -0700 Message-Id: <20240325220724.42216-24-catherine.hoang@oracle.com> X-Mailer: git-send-email 2.39.2 (Apple Git-143) In-Reply-To: <20240325220724.42216-1-catherine.hoang@oracle.com> References: <20240325220724.42216-1-catherine.hoang@oracle.com> X-ClientProxiedBy: BY3PR04CA0012.namprd04.prod.outlook.com (2603:10b6:a03:217::17) To BLAPR10MB5316.namprd10.prod.outlook.com (2603:10b6:208:326::6) 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: BLAPR10MB5316:EE_|DS7PR10MB5005:EE_ X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: we3jplsu8kKmyNUWY5OPt27g11a781ZKOVeqSe/siscmBsjfbvR7beGBA80aHebaxb5/zdaZ4f7IkWvL8I/EC9kdNzidFDKRm3O1MzFRKeHmceZovtu7jMcTYrRlB9bBlpOK5ijRszXXrM64wxBda47F+yLcZcvZtzwBaeOH0dHgibSWRNFOgZk5lltAMVpyrIh3Im87StUOwgkOZNS2qWnN703BVggT1qyHc5oYHAWJS03Xf0KsQDZjSkN17VfdZcCUyVfzXF6czvoGuxfOJ3mvyMP4mxzhiTzF0JTVRUNEpi94EU6qiaqHEZ2wuBedaCaWEEii0ZZXMbJWB2vQS6+rFtP+p/VBCanp1iYFgaDZmm7QRRiVsCAqYMbczun2AFJa0jA2j+Xn8+OMVimprmdvoVfxQ7qvtDI0LIgLH5goWxCLJNUbpxk1juj7BvVD3Do94YHhKptKhbJoou2TO8JIdAymfhFDbr6rV8fobg2nz/5hfXwlioLWFyAGTb8T0AO87TP6Y2qjJu+bZXeA8Zhyv76Id+fmIzjPl/QbyKZiyarBqfJtsSYIFnvpVMKvNnjR9TF1/39YCHXt4jt5U3ArbMlTpTbYyBQnFTrthHfaoOmNgTtlM2icN2keIxg6sniFxQo7Z7CAjSlHPg8UHNPNao8bHlXesjHHvsxQ2mo= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BLAPR10MB5316.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(376005)(1800799015)(366007);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: tPjge1jgglJvV8+JBP1tvJ5uJmKQnpc69UgNcWzHatFcDCPy8ZbTIW33kRS32uooBK4X1FX5v34mrzyh1HiBKJ09QQ14LSUiwZIIe3yMLQtN5xsaobuTD1Oow/M40tWYNCkdE6xte49qGtZRTTBHFTurvh1fZmCVO3O2PLVe2zigmJ7vdP6pzpZl+ZVPQqtDC0NmJz0IahxjP4uqNGWaK5dvi027qL4eSdjFI3PIalqMm6m6nvBdj362soqyE39F5SAIzY47vrdSeuJkbHJO2xX3TFvSrhaOtmc1ftnwmUbg38U+NF3OQgxgrg8hkcXjQOR0RBKxrF6/49++3R8hTqnjvyThN3Z92EWp19aDZXy+//iqZWahQG8MzjAcXIrfsfJWFka6eQh/4P0MYY1qgX2yerpgcYgeHdcRpRwkx9vlQVPp3nGg5cklYHf4j2Fqi7jUxqdH/GUZivxT/8Gz7uQOPiGdpmkRvdZSl8Ig8vwRRucUZp+x7kEWtxwrnYyvLaBjrjE9DiadjUzu5ShzW5pUxhTJolBtyKJKDe745d+2J6CrQReBS4K6qDk5RKrioHOoDh5wBHOo1crtqRVgXLA1L+aW4f4AROKm1SwAwMOF+ffSSxPJB47FWivbC1RVU+1MTgrOSqJtL26gBEWt4WIiQ90R5mvj1pr4v0xDggz6251L1d160A+PGFVT+vaLhWMeZzCocxd4hSV0Sa7k5AiK6RBTk7avaF+cKg+I9XbfZha19dRcb0g17vvxcBO0RisoZ2v3OdyfbZxX+m51awIhyVYRizo4ptxTtrYFHwOXDRI4KBdJkhPksKT/96ETpfflp6qTIns0glTy7wmX7wD1lsZSgukunbC9NByXQxu9uYkxcQ9C45CTV8OxVVERHufArwrZNkbND7wzLizv1eob0lOMTQT2JWfNz8JFEj+Z4xbdGVbBIpHugw16wTQrfSDLyednitRx/vrdUcQvAIgMV7Og/dwUeqkgxL69P0Va2jIPUxzzVCEmJRE4p0sKqOSGecshRJVgPe1jGlFSZVQBbw3bY72kopVlhJ+sL6JYlTPgmOeUUfBI4YTQPhRj3FCuUM66q9ep4sP+8AvY+GsCj6ROIXtWhBmtN+OK56p6rJsed5OMClxE9NbcgHNbkNf1N2oMKor5tsxDJLLwK5ZlHypCIxq6qBd1xtwSAvk84w0hZOLAEouNSE+3Uavv6/Vmq6aLCZvn8qn5t4i/LJkRENwgz/oTnYT4y/GLldQzDPbgIfh7HThdHwU4fKsyqTW7VV2FU4ie4P1RoxG+oBhIP5DhZr0WV19bkSuxPjZ7Ii8fweTCbUGEqyb+eogG8BqH3+8+Jz47YXLDTe5A8zQqbcFmkY4uk+C2BjA8Gm3dQov71XRcgNEF8t7inwHojAYsHrTJ551InCT1tN0v1D2fEMRYlOCLxIZyqog5CjA8Cb+T34chrpS2gFFsDcwmBPZMMylswduWEMdjLCDA9lk47CBvzpjYlRbAPUktO4BevyMNNGeJwxAcX6tvxFV2wNNY0j+2bgHnn6V8X8CeAO5lRCONR2E7LUoqs0XkKpYUiinQmfempvtnAGuGYjscIlsViVxNK+fJ1/W9QREusOfTLtN151BJZvmGNfmgrnTwxtj6RC5VyYaqZyjoGwQSyCqdClxs2SVa5UOTTj/8gA== X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: SNA8NZDoRBn1T18l53gvI9BKcGyvbJ3IAUdV1a6pWR4JnGp+ppYvcCb8B6Gpzx6MtiwQC+Lhssfesk/EysQELbVHhn+pOyCrwSgBKEXvT1zJuJhIVFTrcZOnF9QlCzVhtdmtEMBpN4v0BC9ogYy88YrL5MF9g+NL1q9bMBk6Udx8j4PM+qgshhTf7OCec7qlLNSoJwQFwJW7UopSgtHzn/tNQ4D2G+c5uRZOyjKT76UaWFoK5ZJO0X1FjvjnWYFCl5/L2ffE6M+Lg7jk58B91pr0QlKgt4rINEflEPwKnrby9GH11bN0wCnb3o/X9ddrqHXgM3foGos/sVX3hkVwbUCa8LAJvyqfpOZFY5kZuWKEot4+RFjxr/IbCqY+0EqTyP5BcQthkpRENg3YXvhKGVhUoeMb3d5yzhdH590fnueLk2hfXzN8E/Zv0yi+lzXZsKtuNJ4XpaD3fBaL7kGuKyN2htYvK06KvsHnpo9/5/qof+4Op+jsx1HOcmTyjtBgXlnelSAfX199IIe+V99S44aDsH+iRamPE10UNnbHaciLWn08eT5+8BnsazB4pfDQpQlM5BEUOcfHWEgLKUhsPm7RJEqybeT8iaUWHMoBOVk= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 48f2476e-ec21-4d1a-ad25-08dc4d1812e6 X-MS-Exchange-CrossTenant-AuthSource: BLAPR10MB5316.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 Mar 2024 22:08:17.2902 (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: op8zM58x/Uiopi0Id0lyLxoFHEn3RMXYR2tqEM4qw8d093jI/YKNfkq18VNAfp+ZbJCzaLdb3yEkwIXRd5Htw1jvNrvRPrF6trQ5hu9LuYg= X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS7PR10MB5005 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.272,Aquarius:18.0.1011,Hydra:6.0.619,FMLib:17.11.176.26 definitions=2024-03-25_22,2024-03-21_02,2023-05-22_02 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 adultscore=0 malwarescore=0 phishscore=0 mlxscore=0 mlxlogscore=999 spamscore=0 bulkscore=0 suspectscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2403210000 definitions=main-2403250138 X-Proofpoint-GUID: L9I7xY1WTVbLZWgHWIFlEvS2Bw3zmB8H X-Proofpoint-ORIG-GUID: L9I7xY1WTVbLZWgHWIFlEvS2Bw3zmB8H From: Andrey Albershteyn commit 82ef1a5356572219f41f9123ca047259a77bd67b upstream. In XFS_DAS_NODE_REMOVE_ATTR case, xfs_attr_mode_remove_attr() sets filter to XFS_ATTR_INCOMPLETE. The filter is then reset in xfs_attr_complete_op() if XFS_DA_OP_REPLACE operation is performed. The filter is not reset though if XFS just removes the attribute (args->value == NULL) with xfs_attr_defer_remove(). attr code goes to XFS_DAS_DONE state. Fix this by always resetting XFS_ATTR_INCOMPLETE filter. The replace operation already resets this filter in anyway and others are completed at this step hence don't need it. Fixes: fdaf1bb3cafc ("xfs: ATTR_REPLACE algorithm with LARP enabled needs rework") Signed-off-by: Andrey Albershteyn Reviewed-by: Christoph Hellwig Signed-off-by: Chandan Babu R Signed-off-by: Catherine Hoang --- fs/xfs/libxfs/xfs_attr.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/fs/xfs/libxfs/xfs_attr.c b/fs/xfs/libxfs/xfs_attr.c index e28d93d232de..32d350e97e0f 100644 --- a/fs/xfs/libxfs/xfs_attr.c +++ b/fs/xfs/libxfs/xfs_attr.c @@ -421,10 +421,10 @@ xfs_attr_complete_op( bool do_replace = args->op_flags & XFS_DA_OP_REPLACE; args->op_flags &= ~XFS_DA_OP_REPLACE; - if (do_replace) { - args->attr_filter &= ~XFS_ATTR_INCOMPLETE; + args->attr_filter &= ~XFS_ATTR_INCOMPLETE; + if (do_replace) return replace_state; - } + return XFS_DAS_DONE; } From patchwork Mon Mar 25 22:07:24 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Catherine Hoang X-Patchwork-Id: 13603081 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.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 D38F37317F for ; Mon, 25 Mar 2024 22:08:27 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=205.220.165.32 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711404509; cv=fail; b=M95xyxxSGqC018mTK9h10ee2luhttKXBIyUo+67Banr8HAQ3hRIcs0GUPDs2xYhr5NC55AIhLsWAvc6bZFYL7+2DQC1MuUI8eEoXostWnQiz4MbVbuuZvUaTd2gnWLXerJN0TIMVifaeW8+hD8tULfoC0Le1DzyPW+eVWR0kqh0= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711404509; c=relaxed/simple; bh=pKdC/G6Ih7Ig4Vf4Gc/Z4ZYqIoS+h5vUlA3n0z3Ra+c=; h=From:To:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=HGwSshNCp5uUOR8MbsThAlrZqJVAt1VyNBcisT9dwMkRLVztg/0+GJv5zhfhPO1T62856/GG00+SgMVIib9zduSZ6OluQIG1ThpDABXF5gFYY/VLOU7ay+C9EhC1BK0axuNgNXSfggRtzcOBNby48jpl/v8yAdsrKCmALoiT5Ug= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none 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=fj47CYXY; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=XJIjSHHg; arc=fail smtp.client-ip=205.220.165.32 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none 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="fj47CYXY"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="XJIjSHHg" Received: from pps.filterd (m0333521.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 42PLG7r7020631 for ; Mon, 25 Mar 2024 22:08:27 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : subject : date : message-id : in-reply-to : references : content-transfer-encoding : content-type : mime-version; s=corp-2023-11-20; bh=sw6i7h+4dxG3QttKtuRnO5ujt2LKRN0UyL9QPDZOLBk=; b=fj47CYXY3EKH9o4r5Tn43wZWgK0+o/QnKBDbs1xpfe5axmRSHdTMRS4oMINgvB04uMfv lQO956Je3VTpXI+8vJPqbRcRDH6IAzFrho6LQSkldyJzaTJR1i4Mf27DOpcBtJ+BEUkz zXbrNYoIFMAh6FsgrKPdn704Nr6OZf2ooKLQM2djVq5tj2EvDYJCP3tfTPyWldu9cUDt aJIqEay+z7xEjzMMfY/h7zZK0/BVdYRPOiHH05Me1Sm3avNJ8UidyO6k6jL9sgDWisRX Ycp8uAF7YUpUZJJYnMHZu4Bs4b71lCk6sOAk7RPdDjLbq5WUz382BvpS6jrvIm1YDMlj 0w== Received: from iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta03.appoci.oracle.com [130.35.103.27]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3x28ct32h5-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Mon, 25 Mar 2024 22:08:26 +0000 Received: from pps.filterd (iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (8.17.1.19/8.17.1.19) with ESMTP id 42PKPhAN015960 for ; Mon, 25 Mar 2024 22:08:25 GMT Received: from nam10-dm6-obe.outbound.protection.outlook.com (mail-dm6nam10lp2101.outbound.protection.outlook.com [104.47.58.101]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 3x1nh64raq-8 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Mon, 25 Mar 2024 22:08:25 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=WOJxLvxSHn7OyxQyrIiUf6OQ35dqwWvOFG13sjMhArY75eDvvk38WwZhCK02sUovmWE4S7vA0Y81npbajWVCwoSQnIjDDzll+BJYsIxEUo3APD+F2knzpt5ymo4W2NsTjLE+5j9VEqv52fy2jrGmWHhjTXnLDJWSM8m/xP4kwfPyZmPbR4H1r8P9INA47aEawwnRLX9CHpolbF5vdjhg5UN60KwhvrkjXNe6qqkTpMRAwE8UfsykXFjgYZx/EPM9kx3T3EUToYuIkMXLQx4itz3DCa7rLCoSDOL2GyBEkyTFLq+S3AtdzffLhB2x3S5dbDvXbGiu6rskt1sWnh5Ugg== 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=sw6i7h+4dxG3QttKtuRnO5ujt2LKRN0UyL9QPDZOLBk=; b=Cy7tFXtz1lzVHTLPeHzjzqVr9Ulakk3OV0ETXonT/pOBGGz5vbg5HpZJYn8hQZ8337AT1uIG9sDCRQKldm35Y3DmGe+2v8lVq0Gl5tgu7babCa8dgLVDbwdCJDRq7EuPOK+yXc3bIQIzgS87NALNsUI/LfaKXTHNAaqYrI0dE+zhLzLKZc1sGxBXwJpZ4HS3Dx6ENSHcxX1pta1Q32MAkNOSl8qkcssyVqtKggjfHgGZB8izjQqnbsEUa0wQ3lhqkfUBB9Vh0QTOcADzGNnCCFAimQECeoH1tkJGRyhZmTKnhEzzC5Z1L101gxJpvaM8Dt+RHjU41e7+65eA7JUNhg== 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=sw6i7h+4dxG3QttKtuRnO5ujt2LKRN0UyL9QPDZOLBk=; b=XJIjSHHg+1WwShJxHbua7XmNQ9G4vkA+0lYItC9e4komtEMfzKxW2Y51TsUYE1SAO8mYeNjnwysj8keZkGnOaOF8tvagN5R2oREsZVbTzNYObL0ZBkBtyyxp5lvJju2X4NQcHCcpYDRTPytfx4s7qynbeIkGvW1z6diowpXXCoI= Received: from BLAPR10MB5316.namprd10.prod.outlook.com (2603:10b6:208:326::6) by DS7PR10MB5005.namprd10.prod.outlook.com (2603:10b6:5:3ac::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7409.31; Mon, 25 Mar 2024 22:08:19 +0000 Received: from BLAPR10MB5316.namprd10.prod.outlook.com ([fe80::404e:f2ff:fe2c:bd7a]) by BLAPR10MB5316.namprd10.prod.outlook.com ([fe80::404e:f2ff:fe2c:bd7a%4]) with mapi id 15.20.7409.031; Mon, 25 Mar 2024 22:08:19 +0000 From: Catherine Hoang To: linux-xfs@vger.kernel.org Subject: [PATCH 6.6 CANDIDATE 24/24] xfs: remove conditional building of rt geometry validator functions Date: Mon, 25 Mar 2024 15:07:24 -0700 Message-Id: <20240325220724.42216-25-catherine.hoang@oracle.com> X-Mailer: git-send-email 2.39.2 (Apple Git-143) In-Reply-To: <20240325220724.42216-1-catherine.hoang@oracle.com> References: <20240325220724.42216-1-catherine.hoang@oracle.com> X-ClientProxiedBy: BY3PR04CA0022.namprd04.prod.outlook.com (2603:10b6:a03:217::27) To BLAPR10MB5316.namprd10.prod.outlook.com (2603:10b6:208:326::6) 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: BLAPR10MB5316:EE_|DS7PR10MB5005:EE_ X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: q82EnUY2Z3q8ZVIEp2/P4WArZ2M4fvOMYypqpQslh+4WatFJkyTaQj8jp7LbuX2SUeDVuiBxVnZE9pRH4cAhsSPQ0O85CT3Gr/HNdtBCCycx+sXItOOdgtp5zM/rxw/OCInSGwTyAVZnH9aNZp3dTVhCHxgqhtMZeoOEpOt1HuecM/Jxz08EE+m2QTLb26q2YwJmkh+jkjZG85yHSeZF7pEj+dpOLMi0fJhhOS1NFhDn2qil00DwdLnJ3QgXgb9XoP8AqZF0yJkTiWPZsOmeRVTu4tJiXXn1WLUT09NSUweBj5zzMx6ATsasYHG6iOGpU3unvVprN9DJTe2WU6a+ol9uhRaBDB49qoT2u3V2zdVYJ3/j17H00oOMYUAqfA50APZhQV8Ygi2XHIaj0go4zE5h0U8CBjSJjqS9GGtlTTtsI1T0nbx8e1sHu1aHUiG+P7QdEGi6uTdg08jCIPx/UJ6JZbQf1yxW3GXTTQaaCEKKXgziupOLrEwXsXUNABvbspNi9aTYqJRTI50RKTu8ljwOeGmLm1q7pQg6wTZ7eCaFguSqNaLnYgDN6DG+6WH1fLFvys2zWAUgWExAkkS5ri9qaG341CnVn/PRs3Fhld1IkkW9QiSf2QjaW4l3O9IdJpv9l2rK84PXJMFZ+uy6ZWwG056ZiQmekocqq8CUGSc= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BLAPR10MB5316.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(376005)(1800799015)(366007);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: XwdI+G6iU7TtBf1N4YVLc0GOX6hmWb+Mo7G+gRdOyRSqRzjBNHH6j+m/xT3nuFihPOSMWGvqEMivXdh+mBcZWx+peqPHA06VhndDN5Fk83ZAYI1rG/LefqdbS6VUXAk/DYeEoFf2tPfC9HEouGsUS2+687dQKpMTOeTXI+/Oq78W9pC6Ff4EVHSU3z1OlArUzKHzoHgR16kjt/adbWohRBPYbHAa7T18QObXmYvGQCr+n9obYdERfcp5YgARIyNgT17cgPC+gh6XtH/Y2Y2zXNsx0vsRk1DzI/+OYq06nqbUbYc9rXJOwh252QOdeg8kAU2+QiMJY+gn7mABE5ga+J2sNfgfrzSizK3hZMTWEryeZoIYnmS/mAkP3sN3fJizivaOAtRKQL+5Nd/fer1J0e5oU9BP+lJ6mrJ6ei52GTalhrJoPQE5U8ClC0JgEJKF90zDUwJS4Y2gBcrqs9ZCkxrUSR70Sb5yG642u+kZHRnzcXSI2Nj8hafu3UzKG/23X6PJv1DJZja3FIid3MJ6QWzlXUWgGVkLt5SJwJUa3I69cppa0FOxX3fQi3RPao+B9XI8q60iS0wIvvah2cyrvaopbUELZs4yPE//oBUigPxO9Cz6RwSV8NiBNuQ3t2iI9dPLlZoeJ6usG9CD6PFqrq40dwoX2ngARFbvCV/yFZp7Ecd8zuay5+mwqRjr8u53x035xSMELQdjXHyAGshw6sdGtdrUOSFUGbzkhEFVXaznjxD+hEZ5mNziDqRJtsIzIIu208lPXucz1J6W/6H+3SNO7hwJDiwz/0UugDL41eIsYFHdha1ue4pD68bd1eFUfPSner9AifDVzzve86ZY+Y5vTNF+57+2QkHGkPRkPIoScGR+CGHsVWOrbL/T1SXjfp8h7SjRML1kTSqiLjs9juEctjCgMUlq8QKvaFybALhytdPGGNYz1ed8WkOSKX+e5MqFMjnchuua1Qclon2gauB6j95GYvzu7TjKdikdeiGv99/9Kw7z4uSz54LcRq3fphCUNtI01Pyt39unkbJuqB1vti4Cjgu+1etVYwLwuj8OkpJWo/ixn3AtAkTuNIHi4CCiYbjOIbB6WHchqpb9TSfg3lODSycAk0IPW/LWwf59tKB90AqZ2HqMVY/dvj4XzmXcouzh++ZwhVjy78cJHbnwIHNI8i6vBsh8e0aArnnHiop5aevYjU48xCnzdB2cJajtaS9nFDBpa3y3dEREOmia9ANHYeIs53O1XmS3gcuTjiGJNx2AF4+cXgxRmzmswBekSZneY6iOBt3IhrOgqDo2kG3q9wZc8oxNspPqMWL+FhnA3g8Kgeyqu4qNCFjAJJtPeaob0muluoiXoOmUweUVvoD0lmg1AdeUAzlNnHizmyZP43XRzeAau3eXe1rbaZMqjScjj+ccQMCTcswMxE05/Mc51M0qrjrJSo/cRVsC0tKWbXexsFC4Fnm+tf2kUtBKC/4VSNcMtWqA2VMx/qSRc7KHMwUehqtbLsF+3fMAykISxA7s/N+kiuNuGjDq3NloAyH8lHFwshN1yGvdOBo4rsm9i00Z+ln7Qab0wUMAVlB0JyFQpdbQupm2OrNt1+grvpnllhQIwejFxggp+PWGop55oXdf0h5U44/SriTCIH6rkiAwhW70pRBVuN5uFPdvQJ/CvEiDo4JALzQLTA== X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: sWu2FHbyDjAMnNeIJTQLBdBsJE9AIVtOGkAcQf+XCgTuiTagb/f8lA2mtlsh3USdpdv8lwKu50SnaCSP/kCZ5J+khIkIlSWXeTnXYUrzs6dxenQRNqHQvfppVaQbz/44KXWfV6GwUx7f2OOV/tfrSoG4cqe5RTQ4TlvcszNbzI2KZdLbf263X48mk/WN0T9YrtWFQrxEPBXAidw7nzLZuWQCsdVB0fqPnvECTEwEZh653Nicw25RkoIoQoy8osfpCd2k+jJo7g9UJ3+gJyWQ9Z4Dnrnd5uyMdyDDjC4/V0aWwBtsV734XeHaMTcAQy2mYYRo8EgZ33/1OioN0xILE5dqpoGUKGSRDu/ag4/enz5FwRUC0cQ6zFFV92a280KIH2fQfumMpFd96r2qnqK8r7FafbooXQdt+sFTo/wna7D8npyfM9OYKk7rvkP2DXqp0ipDDQr1LKVEd4NkHKMMhEiF7pEBP2BIVkWMsGKqJz4iaLChNuAk628lcRKAqHrdOWhPdgZ/Dlmm9UxFq0/8/N5v3/q418S5u4eJ9EnMYCkxGqQTfPyZm3ut7Q4PGe4I8CBQb/IZt+rKh3ixPhXAQ7nwkmu+QmeaUIcOvA9fJL4= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 43dd4bf3-ae3b-45c2-fa50-08dc4d181439 X-MS-Exchange-CrossTenant-AuthSource: BLAPR10MB5316.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 Mar 2024 22:08:19.5189 (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: RS1/FNWt+tsLZUc9cTXPLApXy8ZVGiVOfX43iGEue7HcmDc8iFV2Dl/9TiDoT2KtYOBwd78JyT1aJ2yVS4BLiTwc/B+LoAdwV91VwPZipmo= X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS7PR10MB5005 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.272,Aquarius:18.0.1011,Hydra:6.0.619,FMLib:17.11.176.26 definitions=2024-03-25_22,2024-03-21_02,2023-05-22_02 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 adultscore=0 malwarescore=0 phishscore=0 mlxscore=0 mlxlogscore=999 spamscore=0 bulkscore=0 suspectscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2403210000 definitions=main-2403250138 X-Proofpoint-GUID: tAvXoeRch2x7_f9Oay6mGzYq8-EX2axH X-Proofpoint-ORIG-GUID: tAvXoeRch2x7_f9Oay6mGzYq8-EX2axH From: "Darrick J. Wong" commit 881f78f472556ed05588172d5b5676b48dc48240 upstream. [backport: resolve merge conflicts due to refactoring rtbitmap/summary macros and accessors] I mistakenly turned off CONFIG_XFS_RT in the Kconfig file for arm64 variant of the djwong-wtf git branch. Unfortunately, it took me a good hour to figure out that RT wasn't built because this is what got printed to dmesg: XFS (sda2): realtime geometry sanity check failed XFS (sda2): Metadata corruption detected at xfs_sb_read_verify+0x170/0x190 [xfs], xfs_sb block 0x0 Whereas I would have expected: XFS (sda2): Not built with CONFIG_XFS_RT XFS (sda2): RT mount failed The root cause of these problems is the conditional compilation of the new functions xfs_validate_rtextents and xfs_compute_rextslog that I introduced in the two commits listed below. The !RT versions of these functions return false and 0, respectively, which causes primary superblock validation to fail, which explains the first message. Move the two functions to other parts of libxfs that are not conditionally defined by CONFIG_XFS_RT and remove the broken stubs so that validation works again. Fixes: e14293803f4e ("xfs: don't allow overly small or large realtime volumes") Fixes: a6a38f309afc ("xfs: make rextslog computation consistent with mkfs") Signed-off-by: "Darrick J. Wong" Reviewed-by: Christoph Hellwig Signed-off-by: Chandan Babu R Signed-off-by: Catherine Hoang --- fs/xfs/libxfs/xfs_rtbitmap.c | 14 -------------- fs/xfs/libxfs/xfs_rtbitmap.h | 16 ---------------- fs/xfs/libxfs/xfs_sb.c | 14 ++++++++++++++ fs/xfs/libxfs/xfs_sb.h | 2 ++ fs/xfs/libxfs/xfs_types.h | 12 ++++++++++++ fs/xfs/scrub/rtbitmap.c | 1 + fs/xfs/scrub/rtsummary.c | 1 + 7 files changed, 30 insertions(+), 30 deletions(-) diff --git a/fs/xfs/libxfs/xfs_rtbitmap.c b/fs/xfs/libxfs/xfs_rtbitmap.c index 8db1243beacc..760172a65aff 100644 --- a/fs/xfs/libxfs/xfs_rtbitmap.c +++ b/fs/xfs/libxfs/xfs_rtbitmap.c @@ -1131,17 +1131,3 @@ xfs_rtalloc_extent_is_free( return 0; } -/* - * Compute the maximum level number of the realtime summary file, as defined by - * mkfs. The historic use of highbit32 on a 64-bit quantity prohibited correct - * use of rt volumes with more than 2^32 extents. - */ -uint8_t -xfs_compute_rextslog( - xfs_rtbxlen_t rtextents) -{ - if (!rtextents) - return 0; - return xfs_highbit64(rtextents); -} - diff --git a/fs/xfs/libxfs/xfs_rtbitmap.h b/fs/xfs/libxfs/xfs_rtbitmap.h index 4e49aadf0955..b89712983347 100644 --- a/fs/xfs/libxfs/xfs_rtbitmap.h +++ b/fs/xfs/libxfs/xfs_rtbitmap.h @@ -71,20 +71,6 @@ xfs_rtfree_extent( int xfs_rtfree_blocks(struct xfs_trans *tp, xfs_fsblock_t rtbno, xfs_filblks_t rtlen); -uint8_t xfs_compute_rextslog(xfs_rtbxlen_t rtextents); - -/* Do we support an rt volume having this number of rtextents? */ -static inline bool -xfs_validate_rtextents( - xfs_rtbxlen_t rtextents) -{ - /* No runt rt volumes */ - if (rtextents == 0) - return false; - - return true; -} - #else /* CONFIG_XFS_RT */ # define xfs_rtfree_extent(t,b,l) (-ENOSYS) # define xfs_rtfree_blocks(t,rb,rl) (-ENOSYS) @@ -92,8 +78,6 @@ xfs_validate_rtextents( # define xfs_rtalloc_query_all(m,t,f,p) (-ENOSYS) # define xfs_rtbuf_get(m,t,b,i,p) (-ENOSYS) # define xfs_rtalloc_extent_is_free(m,t,s,l,i) (-ENOSYS) -# define xfs_compute_rextslog(rtx) (0) -# define xfs_validate_rtextents(rtx) (false) #endif /* CONFIG_XFS_RT */ #endif /* __XFS_RTBITMAP_H__ */ diff --git a/fs/xfs/libxfs/xfs_sb.c b/fs/xfs/libxfs/xfs_sb.c index acba0694abf4..571bb2a770ac 100644 --- a/fs/xfs/libxfs/xfs_sb.c +++ b/fs/xfs/libxfs/xfs_sb.c @@ -1375,3 +1375,17 @@ xfs_validate_stripe_geometry( } return true; } + +/* + * Compute the maximum level number of the realtime summary file, as defined by + * mkfs. The historic use of highbit32 on a 64-bit quantity prohibited correct + * use of rt volumes with more than 2^32 extents. + */ +uint8_t +xfs_compute_rextslog( + xfs_rtbxlen_t rtextents) +{ + if (!rtextents) + return 0; + return xfs_highbit64(rtextents); +} diff --git a/fs/xfs/libxfs/xfs_sb.h b/fs/xfs/libxfs/xfs_sb.h index 19134b23c10b..2e8e8d63d4eb 100644 --- a/fs/xfs/libxfs/xfs_sb.h +++ b/fs/xfs/libxfs/xfs_sb.h @@ -38,4 +38,6 @@ extern int xfs_sb_get_secondary(struct xfs_mount *mp, extern bool xfs_validate_stripe_geometry(struct xfs_mount *mp, __s64 sunit, __s64 swidth, int sectorsize, bool silent); +uint8_t xfs_compute_rextslog(xfs_rtbxlen_t rtextents); + #endif /* __XFS_SB_H__ */ diff --git a/fs/xfs/libxfs/xfs_types.h b/fs/xfs/libxfs/xfs_types.h index 6b1a2e923360..311c5ee67748 100644 --- a/fs/xfs/libxfs/xfs_types.h +++ b/fs/xfs/libxfs/xfs_types.h @@ -240,4 +240,16 @@ bool xfs_verify_fileoff(struct xfs_mount *mp, xfs_fileoff_t off); bool xfs_verify_fileext(struct xfs_mount *mp, xfs_fileoff_t off, xfs_fileoff_t len); +/* Do we support an rt volume having this number of rtextents? */ +static inline bool +xfs_validate_rtextents( + xfs_rtbxlen_t rtextents) +{ + /* No runt rt volumes */ + if (rtextents == 0) + return false; + + return true; +} + #endif /* __XFS_TYPES_H__ */ diff --git a/fs/xfs/scrub/rtbitmap.c b/fs/xfs/scrub/rtbitmap.c index 2e5fd52f7af3..0f574a1d2cb1 100644 --- a/fs/xfs/scrub/rtbitmap.c +++ b/fs/xfs/scrub/rtbitmap.c @@ -14,6 +14,7 @@ #include "xfs_rtbitmap.h" #include "xfs_inode.h" #include "xfs_bmap.h" +#include "xfs_sb.h" #include "scrub/scrub.h" #include "scrub/common.h" diff --git a/fs/xfs/scrub/rtsummary.c b/fs/xfs/scrub/rtsummary.c index f4635a920470..7676718dac72 100644 --- a/fs/xfs/scrub/rtsummary.c +++ b/fs/xfs/scrub/rtsummary.c @@ -16,6 +16,7 @@ #include "xfs_rtbitmap.h" #include "xfs_bit.h" #include "xfs_bmap.h" +#include "xfs_sb.h" #include "scrub/scrub.h" #include "scrub/common.h" #include "scrub/trace.h"