From nobody Fri Sep 25 11:05:58 2026 Received: from DM5PR21CU001.outbound.protection.outlook.com (mail-centralusazon11011011.outbound.protection.outlook.com [52.101.62.11]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id D12962931FB for ; Mon, 14 Sep 2026 02:24:22 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.62.11 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789352664; cv=fail; b=sW815oUowwJI+jr4Q2Fx8QmB5gLjcthkhIahD7qk47XnVQOl2MWla9q135kBTc6b5DdDkVoL5TD6Tir4In/+fSVwjW8lQ/B2Czi5Cv/v7X6nF9aiNQGBd4hszr+2ogMm5RvISBRZeSo9auKP7O5umBlsI9yxnWfUux3xi9zvq6c= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789352664; c=relaxed/simple; bh=osTjKQ2gAP5I3gZyLW8ReHffHqpU1QaQloH2raq6hYM=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=JcCEkzUMZTF+TnkfiX/Gf0OD3xQaUEo5kCyWY8RskiM/ZjH9O27KG0OOhvlQmHCUhnC3WV5l6n3ryvyql12/t6y8XgEhsUOqnrHRtaJkpIRBASKagSkLr2Dc14rKBLAYCN5z6bkjjq6ReG3jNaYYWk86x8TV/zKo2x6dpbSX4CE= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com; spf=fail smtp.mailfrom=nvidia.com; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b=KBemojQH; arc=fail smtp.client-ip=52.101.62.11 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=nvidia.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b="KBemojQH" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=Y9B6VK3iYGrP99iu3trhB0yw7Z5OmiMG4b/hRE/v0Ez+pfFB0RysLqQdMx/VpPLkLcS98H1/G9VidRjJXf7U1Wnlqq4YJvfm4yX3/yFJTkcFwD4fAPeJ06oGsmtbtuVmk4YAOIfB+bKhkAG5/BzUYRE9XJTTTBEJBW3P5NMr7L/EB3TUJFcWg/MQ0lJ4pIZprGlNtWqWPwzgYrHt3hhcd2hD11BP8dH8OfC2u3vHt4rvv2OLISKfIE/I9BJ2HWlE1OyNVtmFzrRWcj7vd+i0iUFkivBeVfhTaO33/hIVaaZRyw2agIkU6YTxrz6kLZlhs3LF5nnEZ4WRO+ZrTrdeLQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=2exs/HrKls73cpHbMG/JtXwC2lJhkBDc5l1lfu+a19A=; b=R06FrhrbtlnarqHSbcUcmo8Uj1qUolZclU0MGfzN8cFsld1jd1w7V7/VfEY3rEUzzwaOyHOEt21t+6alBVSb1AWQ1BUJKlLZgVHm7tMnxp6i6JhCFXOyMxrRXcPXuTvjLMwakGliajNVBxGW/HBrnPEpmjVilyndeuLjrDKZEFPk6z8VjFI+gLQR1u04PEt+Eft+6aigv+3HTlPpqwCZq+fdBlowG+oYJoSuF1/ul8cIPEho1Apu93q22stv4IrQeEAO9VZq+Fwck7RaG0iIo3Up7i2nNPMbRJntLWeHRFd//S+SRQh5R3XlXjhiua0NpAbuOn/bKNotfppgqpC7KQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nvidia.com; dmarc=pass action=none header.from=nvidia.com; dkim=pass header.d=nvidia.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=2exs/HrKls73cpHbMG/JtXwC2lJhkBDc5l1lfu+a19A=; b=KBemojQHJA2qARIkMsaKZhCRxM+pV7F1dqmn8CtYP4YfCgk4kyAoWYCf6tmz7pEWNqwarmWr6XZH2g1hvCYHtq1bnfJtdhzyIVO3PHDYI8I1+UHN83vnmWsHcMPu18L07UE63uLEQJrkHzZoSaeiMST7xitXmLAGNDUXhZN1kTcHZvFiVFCjz/tWn7pG+ZXlP0krtH8VjYcrzvJegnhoN94giG590cfLKkEorXJ2z0CtYPtwkREFBgLA5Vu+7g9mwxsZ1m4vP+H9Ipua+3vLI6KhFco1Qnnt8flkpcXYSYC9UTtql7BjPNAMR0YyXpCjpLS1fy1Yhgile5ZP4S3+lg== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nvidia.com; Received: from IA0PR12MB8374.namprd12.prod.outlook.com (2603:10b6:208:40e::7) by DS0PR12MB6486.namprd12.prod.outlook.com (2603:10b6:8:c5::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.406.12; Mon, 14 Sep 2026 02:24:16 +0000 Received: from IA0PR12MB8374.namprd12.prod.outlook.com ([fe80::d85f:4c87:ae84:3f16]) by IA0PR12MB8374.namprd12.prod.outlook.com ([fe80::d85f:4c87:ae84:3f16%5]) with mapi id 15.21.0406.007; Mon, 14 Sep 2026 02:24:15 +0000 From: Zi Yan Date: Sun, 13 Sep 2026 22:23:59 -0400 Subject: [PATCH v4 01/16] mm/zsmalloc: replace PG_private with pointer comparison Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260913-remove-pg_private-v4-1-848550f7574e@nvidia.com> References: <20260913-remove-pg_private-v4-0-848550f7574e@nvidia.com> In-Reply-To: <20260913-remove-pg_private-v4-0-848550f7574e@nvidia.com> To: David Hildenbrand , "Matthew Wilcox (Oracle)" , Andrew Morton , Muchun Song , Lorenzo Stoakes , "Liam R. Howlett" , Vlastimil Babka , Mike Rapoport , Suren Baghdasaryan , Michal Hocko , Baolin Wang , Nico Pache , Ryan Roberts , Dev Jain , Barry Song , Lance Yang , Usama Arif , Gregory Price , Ying Huang , Alistair Popple , Johannes Weiner , Qi Zheng , Shakeel Butt , Kairui Song Cc: linux-mm@kvack.org, linux-kernel@vger.kernel.org, Zi Yan , Minchan Kim , Sergey Senozhatsky X-Mailer: b4 0.16.0 X-ClientProxiedBy: BLAP220CA0009.NAMP220.PROD.OUTLOOK.COM (2603:10b6:208:32c::14) To IA0PR12MB8374.namprd12.prod.outlook.com (2603:10b6:208:40e::7) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: IA0PR12MB8374:EE_|DS0PR12MB6486:EE_ X-MS-Office365-Filtering-Correlation-Id: 4445d94f-c001-49b0-1e03-08df12074583 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|23010399003|7416014|366016|376014|1800799024|22082099003|18002099003|921020|10067099003|56012099006|11063799006; X-Microsoft-Antispam-Message-Info: 6yhzzQF71JECsu+nTD9dpwNs7PRdNk5FSFPxKsEsfUMb5CYLIKzeWBejkF+NM6KPXyZkYU08E0XDi7Wi7+Fao/HQ9d36NZVm8pFHkqf+efUqLgvTmWHVLO0KVfGetC9ejUdTRY6yMWN3lSDeBsV8mHKqhX+lLpj0UIoljSa3xyVJBn7M7qSVaMS08ZHaDLWwibYgnjPle2JzAkINXjaNJsIcFZAT1cfo/YRtl9PuOCjaIxYYbpzA0wvUnqnIPfqEnBfTDcUqQj23Wdf4IA9vs7kOzP4Y5sxTrt3mJa2bbSMm2YzhemLcDTZ57d4WSOG0LvGCn8n5SBup5WRTtCtSefu9t+Wmh06VbWUgW3ayTJ3SG9iZs5Ip5Mcq7TsJBd/QC5A+giyeXHKiWMBTdCihTE0AehVgCaUnRCH8UTyHSVxLZkEmRZa3GzKqdZqD5VYA6GSCYRI/1vjpD//iv8WDq3X3KtWRGkkJXJpoIREygSDff1SwDv/EBclHAnXgwrLL0rGW9z2/3twMIfHEAOJW4tkTe9WkLTgufImrclncJZKf8LLMvZITxgdMYXDHdgnHpp/eKZklb3N5+z3a+vEvRUrPNQEFw6vBR/Z12PciniNlsLR5ojhyBaDpjL5y5oSaVPyAa/eSVKE+NIzcKBnkPtPFjL4xqNfWHVtquRgJb3VupecS3RUUXhSnHojz3oZ/sB8v9IVVdRuRUyyH8dWItg== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:IA0PR12MB8374.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(23010399003)(7416014)(366016)(376014)(1800799024)(22082099003)(18002099003)(921020)(10067099003)(56012099006)(11063799006);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?MWxHbXFXRnMyS2NFb0ZPRFhFcXl2R0M5WHBXSzVtR2RnNUZDYklDaVNBOEFm?= =?utf-8?B?VC9kQzBnMG13U3QwUmphUlhvRWJsVHVCVmhFZnUrOCtLcHJ5ZXpQYnNHVm1u?= =?utf-8?B?bG5GMUJUbUNtMFRCUUtKY0drNk9tM2w2STdON2ZobHhSSHVGWVVRMXBVaTlU?= =?utf-8?B?NFlqTDlTTFpSdGdyeEYxT2xIV3NoelJ0RnZ5TzdSL2JqOXZSNTZ0SmkvMGR3?= =?utf-8?B?SmFtTWg0akFrY2VleVZ3QXVJMjJ3cnJPSnd4OWJZdGl2Vngyak9GMUNoMC9M?= =?utf-8?B?T3BlVUxFbkxIbG9BZ0FUUDBrV3R0NHNYK01heGNZUE1acVJPcnlVNWRsdVc4?= =?utf-8?B?WFpaTlE5L2I4OE9SUHF3YVJiNHcwTHpEcGhJa21BY0hIUTNkTW8vdlpHb29O?= =?utf-8?B?SzU1d2krV1N3ZE01SW95M09QclJvZE1kdVFaRGdtTlVxaUFFcENTbmZHeWtt?= =?utf-8?B?TDZwNGhnQ0lHeUFncVZqS3JGWTVHRE5keFlzU2JHdld6dDRXdmxqQjhPTVFj?= =?utf-8?B?MXY5WGRrTTNEMVhsVUcrcHNHZG5GZDg5MTIxMUlOZ2hIRGJJMFdkZ3RyQity?= =?utf-8?B?OEVEcmZuRzR1eXI0bFBvYVA4bnIyQ0k1ZHRjRm8zZ0xjQ3NybzlkOUI5K1JB?= =?utf-8?B?ME5aQjdlS2N5WENHcXNDa1ZreWpaOTJvSFdjMlFCaHpYOC9DdWttWWRYWENZ?= =?utf-8?B?d3U0d20wWU9nRVViUXVsaExkMng2dXl3cE1wU0lIdkdndGdCR09jTVEvcEZT?= =?utf-8?B?ZCtrejNCdHNZcnBMamdsem1FZzJHYUJBWVZiWjlPSkNKVndvYnIrNWFRUDBs?= =?utf-8?B?aEo3VDM1d0dGa3ZXR1I5S1hQQnlFRlYyTDZSOHNaM2VwdHk5eEY4UThVTjJR?= =?utf-8?B?THl3OVJCZDFLMm1QaG81TzBvSnhxVkt0OHhHZXFXa09iaDFnZHdqeHBVSUFr?= =?utf-8?B?OFlzMUdzSkpRRmxZeDhSQ3FUMWczNEM0RUgwZGFLaUhjR1IzTGVBVWdwbFFK?= =?utf-8?B?djkra0Q2ZjVOTFZmQ2FRakh2am5rOVBIMUgwT09HcG9yUGxsSGFoOWxCQ3Bm?= =?utf-8?B?My92MHJVMk5VVG5qSWtrQnA0dnQwcHZXZ2g0dldiTzZEK0NDc3lpRTVMU0RF?= =?utf-8?B?eDd1N2NOQWR6dmhXRFdlaTFUa0E0eWpsTjlEUkdtenBXcXZ5K24wd0g3RDli?= =?utf-8?B?T0M3WjM1YU02WHJQUTMvTEJNZ1dSRXlTSUtMdGMzdktBUTVUVEpPUExBTkUz?= =?utf-8?B?di93RWFleURrR013TmJZb1BkV0dNUHc5ajQxWWsyTW1uR0VvTW4zckVXNlRl?= =?utf-8?B?K3hvZ0RXUWNoSk44L25GMmRmaWJ6QWE1dHRUK0dYQmZnU2M3b2Z0Vnk2bXRE?= =?utf-8?B?M2hsanlWbHhRWm9HYmdHbWtFc0tycFFTdXlIRzJVQk85QnBLdkJON1RnNXht?= =?utf-8?B?QmtaY2ZxdmlGSkhWUVlFRnM3U2tlZ3dVT3JobkZTWHppWkFSWVpmc1ZMYXVk?= =?utf-8?B?ak1YTU84Z0plZGRlYW1DVXRVOXNGeXlBaDRGa1ZoT1lUZGIrNlAycWhVYzk5?= =?utf-8?B?ekdNdGZncEd2QXJESDcvSnJwRkpWblpsM1BXVUxOL1NBNFhpZUhqMzlkVUlW?= =?utf-8?B?N0hRTjVHSjBtckZPMEgxVkVKTmFnL0QzSklhWFF1ZVpjOG1GL0JYUlMyQnRR?= =?utf-8?B?cDNtSGR4VFpkQm1mZ0hTYytvQTAzeDhhUmR4VjhuU2NJQUczd0tONzNKbEZu?= =?utf-8?B?K3BEYjgwR2t3R21OOXpqK29HSlA0ZzJZQlR5N0lic0VyMGFZam5KMzVrNXdW?= =?utf-8?B?aTVBazF5bzFkVkVUcHlWQzNBbVV5TjRsQUt0QnFwc2JYc1VjSDEzSUgyWWNQ?= =?utf-8?B?T0dpVW1IdHhCOGNtWnl6TFYvVUdsSUVQaE5uem52L3dTRDlNRnlGa3ZGRTB0?= =?utf-8?B?T3d2VU5jYitHNmNMMGlpTDBRV0dLRFNZc0szbTk4VENVem9OWDJXS0REUk0v?= =?utf-8?B?ejhJS1V0SzUwL015a0hBSEw3Q3JldVg3ZGRia1BWT2RNMGx4aTh3QjRjNHRC?= =?utf-8?B?dWhJRzVWZ0Y3VmRRS2lQTXRGQWNqM01PQnlOeHg2dmhoOXdsUTUrc3Y1UGNn?= =?utf-8?B?Y2tNWXpOWG1kRTZlZ3ErcGl4aXVmUDlMWHV3TmhRRzFKY3hHQWdBMHo1N1Zm?= =?utf-8?B?MktqNWdzUHFNOTdKeFVSanBSSUllV1U1NENxYUY2eDNTZDNlak1zRmlwV3Jo?= =?utf-8?B?UklEbjQ5d3kxKzFRdVJCTmRXQ3BqcWlGQjNjOUFkazlzWEEvNXIzcVpGeHZC?= =?utf-8?Q?11p2b55ZOPfFyT7YsU?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 4445d94f-c001-49b0-1e03-08df12074583 X-MS-Exchange-CrossTenant-AuthSource: IA0PR12MB8374.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Sep 2026 02:24:15.1173 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: nYBX3Z08IQu38SfiPWm12H/T5UYoSBVn3zWXzMBMfIlF3n+uGCaQ2mhn1UZZ8byD X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS0PR12MB6486 zsmalloc uses PG_private to indicate first zpdesc in a zspage chain. It is equivalent to check zpdesc =3D=3D zspage->first_zpdesc. Replace is_first_zpdesc() with zpdesc =3D=3D zspage->first_zpdesc in obj_allocated(= ). For get_first_zpdesc(), first_zpdesc is from zspage->first_zpdesc, so replace is_first_zpdesc() with first_zpdesc->zspage =3D=3D zspage, the seco= nd requirement of a zspage chain, where all zpdescs point to the same zspage. is_first_zpdesc(), is only used in VM_BUG_ON_PAGE(), so performance impact should be negligible. While at it, change VM_BUG_ON() to VM_WARN_ON_ONCE_PAGE(). It prepares for a future commit that remove PG_private. No functional change intended. Assisted-by: LLM To: Minchan Kim To: Sergey Senozhatsky To: Andrew Morton Cc: linux-mm@kvack.org Cc: linux-kernel@vger.kernel.org Acked-by: Johannes Weiner Reviewed-by: Sergey Senozhatsky Acked-by: David Hildenbrand (Arm) Signed-off-by: Zi Yan --- mm/zpdesc.h | 2 +- mm/zsmalloc.c | 24 ++++++------------------ 2 files changed, 7 insertions(+), 19 deletions(-) diff --git a/mm/zpdesc.h b/mm/zpdesc.h index b8258dc78548d..4fd81c2e80769 100644 --- a/mm/zpdesc.h +++ b/mm/zpdesc.h @@ -26,8 +26,8 @@ * with memcg_data. * * Page flags used: - * * PG_private identifies the first component page. * * PG_locked is used by page migration code. + * The first component page has zpdesc->zspage->first_zpdesc =3D=3D zpdesc */ struct zpdesc { unsigned long flags; diff --git a/mm/zsmalloc.c b/mm/zsmalloc.c index 11be37c431718..7ef80e0da6267 100644 --- a/mm/zsmalloc.c +++ b/mm/zsmalloc.c @@ -290,11 +290,6 @@ struct zs_pool { atomic_t compaction_in_progress; }; =20 -static inline void zpdesc_set_first(struct zpdesc *zpdesc) -{ - SetPagePrivate(zpdesc_page(zpdesc)); -} - static inline void zpdesc_inc_zone_page_state(struct zpdesc *zpdesc) { inc_zone_page_state(zpdesc_page(zpdesc), NR_ZSPAGES); @@ -476,11 +471,6 @@ static void record_obj(unsigned long handle, unsigned = long obj) WRITE_ONCE(*(unsigned long *)handle, obj); } =20 -static inline bool __maybe_unused is_first_zpdesc(struct zpdesc *zpdesc) -{ - return PagePrivate(zpdesc_page(zpdesc)); -} - /* Protected by class->lock */ static inline int get_zspage_inuse(struct zspage *zspage) { @@ -496,7 +486,8 @@ static struct zpdesc *get_first_zpdesc(struct zspage *z= spage) { struct zpdesc *first_zpdesc =3D zspage->first_zpdesc; =20 - VM_BUG_ON_PAGE(!is_first_zpdesc(first_zpdesc), zpdesc_page(first_zpdesc)); + /* the first zpdesc must point back to this zspage */ + VM_WARN_ON_ONCE_PAGE(first_zpdesc->zspage !=3D zspage, zpdesc_page(first_= zpdesc)); return first_zpdesc; } =20 @@ -838,7 +829,8 @@ static inline bool obj_allocated(struct zpdesc *zpdesc,= void *obj, struct zspage *zspage =3D get_zspage(zpdesc); =20 if (unlikely(ZsHugePage(zspage))) { - VM_BUG_ON_PAGE(!is_first_zpdesc(zpdesc), zpdesc_page(zpdesc)); + /* only first zpdesc holds the handle */ + VM_WARN_ON_ONCE_PAGE(zspage->first_zpdesc !=3D zpdesc, zpdesc_page(zpdes= c)); handle =3D zpdesc->handle; } else handle =3D *(unsigned long *)obj; @@ -853,9 +845,6 @@ static inline bool obj_allocated(struct zpdesc *zpdesc,= void *obj, =20 static void reset_zpdesc(struct zpdesc *zpdesc) { - struct page *page =3D zpdesc_page(zpdesc); - - ClearPagePrivate(page); zpdesc->zspage =3D NULL; zpdesc->next =3D NULL; /* PageZsmalloc is sticky until the page is freed to the buddy. */ @@ -1006,8 +995,8 @@ static void create_page_chain(struct size_class *class= , struct zspage *zspage, * 1. all pages are linked together using zpdesc->next * 2. each sub-page point to zspage using zpdesc->zspage * - * we set PG_private to identify the first zpdesc (i.e. no other zpdesc - * has this flag set). + * The first zpdesc has its zspage->first_zpdesc set to itself, no + * other zpdesc has this set. */ for (i =3D 0; i < nr_zpdescs; i++) { zpdesc =3D zpdescs[i]; @@ -1015,7 +1004,6 @@ static void create_page_chain(struct size_class *clas= s, struct zspage *zspage, zpdesc->next =3D NULL; if (i =3D=3D 0) { zspage->first_zpdesc =3D zpdesc; - zpdesc_set_first(zpdesc); if (unlikely(class->objs_per_zspage =3D=3D 1 && class->pages_per_zspage =3D=3D 1)) SetZsHugePage(zspage); --=20 2.53.0 From nobody Fri Sep 25 11:05:58 2026 Received: from DM5PR21CU001.outbound.protection.outlook.com (mail-centralusazon11011011.outbound.protection.outlook.com [52.101.62.11]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 907BA29DB6E; Mon, 14 Sep 2026 02:24:24 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.62.11 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789352666; cv=fail; b=ZwNDQtMS9+XECv6eyC2ApzJVi24JWWNiYRFfiu06YoYvokfqaXSYa38eWsSOdEaNWUHHsw8YCEISJZLVTKla5PckLJdrI+w0PK7DDVxObW08J/FTO3Pn6KAKCgxQ/HUt9XE97OLTV19ucv8A2aAti5bCKXzeE1doaMXpHxMO2OU= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789352666; c=relaxed/simple; bh=LA7ZnXqPsAszfR1Ql4sikyCXEX9QkFYqkT6HbKr3v84=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=dpLLOjOO+7w91cx0C3EfF7p5kY13xwD8gourBBFTqmmExF8ad321JMmleNiJIw1YeZkqQHfzM3TDAKGv8oD6QHNIgawfL0Oh7L4G8vB30iVrww96dmhD2t0ygvIfxBOHiQh07mcM0I0QwdBFrXVW2pZ10V6yPJIfPvNIjvkvPes= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com; spf=fail smtp.mailfrom=nvidia.com; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b=CUBOGkGS; arc=fail smtp.client-ip=52.101.62.11 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=nvidia.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b="CUBOGkGS" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=TG41vWkgIkBZ36zXKL8nTq1hyWgiXsnq6Yo0aJf3/tpBbhyu6mfMEami2jJyLatDupuleCtGUzkN14mH7DT2AALVJ4d+kxfRJ9SBmnpUyYZoyjCslC5bZs/DrRJRoVZsOHOidwYOFMxKMvcSBqwcQ+SkFnVwm9l2HUVKdUDJCbYBy9jvyq+Zy7uBj7/dVlRHZXQZOWNUjyrOvHEsKgF7KwaOHMxCWJYUZbmEO9TYTWKKlA7bhW6zle+rlIB4L9zsBvjvoWelFKzIn6w57Uh9gep1CAg0lmnrqgM+AYuxbNAzzURAJ54clC21QcH2c1qRE3mTfmpffiq13XoupGZOTg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=gpnw9Gpg4JeqTBKlcim2Ze+bj98VqYRU3sYXsAgbZDY=; b=bqOD6bcNk78uxBKGet+fcF3S2zOPVzfhaO0StmOL3HWJWRsZWQGoyu72NP6LeMevrzwOKmpjFmADDEB/afYvzClfkX6dFXSJv9Rqy87hwaVCy/3XU94JvJnlLxyyAqyhlgATzL86Ub7pnTC4eBWz3FzL+6XZSs2M+WHkeXQ7+/yY+yF39hvDWCj005MWf5muFfK+jNzNxdEON0BLEE9efuiAwt3eiTAiDQKDQqHeFxB/SP/0wBpJItPzRjAflF4TlctJrsyhLRpY9hS9VTTTXyNJiU42Ql6+QnNsVUB0uNn4xPNUiO5yxnbXqKzsLJz0yYpbpVsLlwXSJ0Wg2fUEyw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nvidia.com; dmarc=pass action=none header.from=nvidia.com; dkim=pass header.d=nvidia.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=gpnw9Gpg4JeqTBKlcim2Ze+bj98VqYRU3sYXsAgbZDY=; b=CUBOGkGS/Xh12oy1gyK5dFAznWrlkJR9BqRCLhMv04sTWFJlJEi+V+GS+WmSSIq85gS1CazpLRGb+w0w4vOEQGfLRJ3ekhITJEGc7baNeNWL8dw6aCG9ZZ83usDGSc6nSgcojutjQ6urY7ZmXgyIxWx+aB23m6hAV/HaIQEa+LFZBJ1BgYQpSxrWiWZ1pOwTQWJ7f60QckVowYNeySY5Go5jQo4xyXogX72dQdmR/t4dJV5ZUSTetulL9ripLDPNEbZ/W+ue+YyeB2Y0VtAlNPL8XXARhS+2sDG6HM4Z5QLdw3PCnJJ2IblaQXm6QR8/Gr2SoDBvsDQ/RLGhdd23OA== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nvidia.com; Received: from IA0PR12MB8374.namprd12.prod.outlook.com (2603:10b6:208:40e::7) by DS0PR12MB6486.namprd12.prod.outlook.com (2603:10b6:8:c5::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.406.12; Mon, 14 Sep 2026 02:24:16 +0000 Received: from IA0PR12MB8374.namprd12.prod.outlook.com ([fe80::d85f:4c87:ae84:3f16]) by IA0PR12MB8374.namprd12.prod.outlook.com ([fe80::d85f:4c87:ae84:3f16%5]) with mapi id 15.21.0406.007; Mon, 14 Sep 2026 02:24:16 +0000 From: Zi Yan Date: Sun, 13 Sep 2026 22:24:00 -0400 Subject: [PATCH v4 02/16] perf/ring_buffer: stop using PG_private as AUX page high-order marker Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260913-remove-pg_private-v4-2-848550f7574e@nvidia.com> References: <20260913-remove-pg_private-v4-0-848550f7574e@nvidia.com> In-Reply-To: <20260913-remove-pg_private-v4-0-848550f7574e@nvidia.com> To: David Hildenbrand , "Matthew Wilcox (Oracle)" , Andrew Morton , Muchun Song , Lorenzo Stoakes , "Liam R. Howlett" , Vlastimil Babka , Mike Rapoport , Suren Baghdasaryan , Michal Hocko , Baolin Wang , Nico Pache , Ryan Roberts , Dev Jain , Barry Song , Lance Yang , Usama Arif , Gregory Price , Ying Huang , Alistair Popple , Johannes Weiner , Qi Zheng , Shakeel Butt , Kairui Song Cc: linux-mm@kvack.org, linux-kernel@vger.kernel.org, Zi Yan , Peter Zijlstra , Ingo Molnar , Arnaldo Carvalho de Melo , Namhyung Kim , Thomas Gleixner , Borislav Petkov , Dave Hansen , x86@kernel.org, Mark Rutland , Alexander Shishkin , Jiri Olsa , Ian Rogers , Adrian Hunter , James Clark , "H. Peter Anvin" , linux-perf-users@vger.kernel.org X-Mailer: b4 0.16.0 X-ClientProxiedBy: BLAP220CA0006.NAMP220.PROD.OUTLOOK.COM (2603:10b6:208:32c::11) To IA0PR12MB8374.namprd12.prod.outlook.com (2603:10b6:208:40e::7) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: IA0PR12MB8374:EE_|DS0PR12MB6486:EE_ X-MS-Office365-Filtering-Correlation-Id: 743548cc-34f7-4400-80b4-08df1207460d X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|23010399003|7416014|366016|376014|1800799024|22082099003|18002099003|3023799007|921020|10067099003|56012099006|11063799006; X-Microsoft-Antispam-Message-Info: AbJ00LC6l1iueRkrmXBeolv0ENOdZDtId1CuSjsGPd65c1EBOnfcRL02fA4/aliW1EzFmM52DslPUjtpIt+plmLKGiBmndsuCOBcV0/yfAYYuRZRzjXE8Lye/46+IiBN8bgRgjYnstl6jxaPs4WFKuH/RDC9+3arB8p7JWvNGpUrdF2lcKCJN/C+hBKpOfM5EBlg2+qhrrtGW6mJUjISe//UGkigGNgm6sny+rckwihRJ5tBvYZxkBKFSA+yy4V0oGLLA47SXs5ibtnfzSsDw3UzZf9aCaMmXfyzC/HbJ/SH8j/+05J4QoaUezV3IeYv/QkvYJ3TmUKDeOO6MvveD5XzPrvkt57cW1DuS80BfLT5laIEvNTXviJO5Hf7yjuyKHpMSyu/ZNlYohhfkaSa2nbdH0TTdML1hKKFJPBua5i8AsT9xSuE/1Zz4mtvktz6fG+pgovJORnUFBAEIia3W1yPftvwUeSzbwBy2jFkw8VJhpb26Iqf595F+eBKdb8AYozpLKMzvbqKkQKGLNcAdk/tdgi+JRHSdAGthzNQvvfpj7Z9YyefqguLvjObtNw3gosYrkd602u0kIlYrgciP855ADCR1qiqxemaTpIy+Zhn4BWSKGiM1VgMXfdUFflN65qRQT2JGJLwnuXqDBxWMa1yIdTM3h0pF3GpvIfGRWX+fZ/wSbN6HRj3ghqIH+I+3vMaxzK2Dr6rO+Mf3IMzbw== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:IA0PR12MB8374.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(23010399003)(7416014)(366016)(376014)(1800799024)(22082099003)(18002099003)(3023799007)(921020)(10067099003)(56012099006)(11063799006);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?T2hGKyszbmVvMDZQQno5eW5UVS9wclpTZTA2bXZGcm5CbTd5TkZWVlJsV1Ux?= =?utf-8?B?ak45Zzd5d2IvRngvZkg2bVJDNG1XMmVkemp1d0E5c0JYcGxSSEVqaks4Zllp?= =?utf-8?B?cTAwalFuQ1Uvek56Z0xaTTVwYVN2aUNLSHYwKzU0YVFsRVJTQ1ZSVG5ycUF5?= =?utf-8?B?V0QxVVhCZHZYN0szWFQ5NmxlOUNwNVR3eUp6dDA2cTF2UmY1OUhkdUIvWTE0?= =?utf-8?B?dENjcGZFemxwNGJTcFVpa0t0NXNJdVREcXEwN0xseHV0S3hZU3VHUG9FYWN0?= =?utf-8?B?WkhUL3d0K2xKZlVZR0ZGZ1ByVkY3TnVPMHl5WnlobFpmZjJqazc5MEErTWIr?= =?utf-8?B?V0ZEQzJsNUNNR3ZnN2tDUEJHYU5WTm5yaXo1UWRXWG5xdEgzZVM3WnVtbXRj?= =?utf-8?B?VjRWZ1h2TGtrN1FJTDR1VWppNGl2NVQ1MUkyRFBLZUVDTTRlYjJQeTNmRGRS?= =?utf-8?B?eGkxaHFYM0R4YnNuTVdsMVc0YVEydFdyeWIzaWFLRFdUMGhTbnNtRXJCVncr?= =?utf-8?B?dVVJcUwwQlJKdDU2RVJtOVVpOGVtdzAxRDMxY3JmUnFtNlF2K1BYWUhnRUdj?= =?utf-8?B?TVRFWUFETGt1S3hsa0JwcnZaRWI5STJIa3FvSERUM2M3MjIzaVRHSkFNK1lK?= =?utf-8?B?UEZ1NkdHbmVEUU9XTzNYYlIxZjJOSUVGdkp2VkRJWkJGZVAvOXNEZlNYU2Ew?= =?utf-8?B?RXNhemtvT2pJWUY0VW51amRUUUxKSEpQcEQ5WWFJV2JHVlZNckFvYWpMMzZM?= =?utf-8?B?T1ZPOExMbW50NndyT0V1SkN3ZGRVdVBHc0dxZHlhbW90SU9QREw3cUJBYlRE?= =?utf-8?B?V2pUc09sTGFKV2JsQWpqdGx2M1YxcmQzYkU4eVQwOGphYTdTUE1BeFdCZDVY?= =?utf-8?B?eDNFR1dlQ1lkSjYxbXpZck4vbXlHdnptaVpPODB5SU1GaDVLZE5LNzVzYjNW?= =?utf-8?B?ZllCbDlkN0hpdXNnUHdYTFN3WjN1Yi9pcVNRKzJIRzdzaENlNjlZcFhycU5u?= =?utf-8?B?VHI2cUQ5U2RYOHVSdEExQmRyUmhtZmhyWVYyOXkwejZ5czBCSTlCY2xYcjFq?= =?utf-8?B?UFBzdzY0T3pHclBRd0hoVSswVVNrc1F2MjdPSnRZcGplVGpiSmt2K2Q4ZXls?= =?utf-8?B?dWV6RXpEYS81Y0NIK255d1Bnb0lFeUxPRFFNSkhtNmZiTUk3ZUF2dldsYU80?= =?utf-8?B?aHA4MnhZVmRHWU0yVDhyUm4xa1VnZnNRVFR4RUFhNFNQTS9jVUVad0NyU2kx?= =?utf-8?B?cUE5SG9KUFFIREM4N1hWMXpRQmowaUtsNmRMYTRUSFAyMVpZam1PU1RPTTBS?= =?utf-8?B?T2liNWtKVFB2R2txbFBWQWpDSnVwZVlmZzBiK2FrNFhnMWNTZkpBdlhvWWl3?= =?utf-8?B?eUdmaWgvTzVTT2swcWFiay9idmhtV0krMU53Zlp6VmVtTXdJVU9ndlFMSDVH?= =?utf-8?B?TDBSUGVGcjhyUFJqeEY4a1doSkM5RjhXb1dKNDlqREhQNUE2Qm1jUGpYMm5B?= =?utf-8?B?aWlvTUdnMXZrc2pXa1h5dG1JNldmdE1WUFNlZVY0UVdld0d4MUptMzcvRWVn?= =?utf-8?B?WmtwWUFTMzA1blgzQXRjeVJrY0dMbVc2YWxxd2Q3RjRzTm5maFlwR3BvYlB4?= =?utf-8?B?Q21VeDMvK3VQOU93QUpDRzZqTEw3clRxblVuV20yejh6VjNzaWxiaEJJZ1U2?= =?utf-8?B?K0lYM1FyWTNHVk5PTzVuSStJUWhuWkNQUnFVRk02QUJoS2ptVUZ0dEE5anU2?= =?utf-8?B?NzJ5dDljSGtPLzMrV2F4VU1NbFRhK2lJdmJDYWFwS2dQMWRISjg3YmdSVHNw?= =?utf-8?B?TjNTWnFiWEtEUGxabW9iWGgzNmZ0NXRlbEdHMjVVL0dHSmE0UldCei8vb2JW?= =?utf-8?B?TmFrN0RQdzdnVTFYS01vUVdZdVlrL1l0ek1mRUYwWFJpSFNsZjdpMnhyWmRG?= =?utf-8?B?ZURKSUlDdGpnVGdrSVY3aFdSR2lwRG1PeE5ISUtVbXE2cWJka0JQZ1RheVlW?= =?utf-8?B?VEN5UE9IQXNMWHVsdkxubnVvaUhIZWVkZlhtdHF5RmZoOXF6aXgxdEQyUlVz?= =?utf-8?B?WEpkUlV1ZkRBY1ZxR1BpNndiZFhyWVVxTENzekVxWXorbUpwdlFxaFBEaWhL?= =?utf-8?B?TzRnQTl0NlorOHg2c2tpZGNRbFdaTDVaaGdIZEFycFVlb3lvcHlSbWZQSVVk?= =?utf-8?B?cjRkNCtNanpYTTdDazVhVDZ1U1F1SVlZSUJkaWJIUUZaVTNacDd2bVM1UEta?= =?utf-8?B?OG5jcDdmQzFuVVdvcU9oM2Qxd3hGWWdZSjNLemlNRTRoclcxR0dQZnRYWk9K?= =?utf-8?Q?8nO7UM75gEytvFWqfO?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 743548cc-34f7-4400-80b4-08df1207460d X-MS-Exchange-CrossTenant-AuthSource: IA0PR12MB8374.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Sep 2026 02:24:16.0157 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: YrCfjlk2iCViqgCSPFpIk+YbG/5Aoh2/izuE0Kp5KSSDgbacq/BZY79aefC54EGI X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS0PR12MB6486 A high-order AUX page sets PG_private on its first page and stores the order in first_page->private. Stop using PG_private and check first_page->private for AUX page order only in the ring buffer and its users. This is fine because page->private is 0 for order-0 AUX pages, matching the page order. It prepares for a future commit that remove PG_private. No functional change intended. Assisted-by: LLM To: Peter Zijlstra To: Ingo Molnar To: Arnaldo Carvalho de Melo To: Namhyung Kim To: Thomas Gleixner To: Borislav Petkov To: Dave Hansen To: x86@kernel.org Cc: Mark Rutland Cc: Alexander Shishkin Cc: Jiri Olsa Cc: Ian Rogers Cc: Adrian Hunter Cc: James Clark Cc: "H. Peter Anvin" Cc: linux-perf-users@vger.kernel.org Cc: linux-kernel@vger.kernel.org Acked-by: Usama Arif Acked-by: David Hildenbrand (Arm) Signed-off-by: Zi Yan --- arch/x86/events/intel/bts.c | 3 --- arch/x86/events/intel/pt.c | 6 ++---- kernel/events/ring_buffer.c | 7 +++---- 3 files changed, 5 insertions(+), 11 deletions(-) diff --git a/arch/x86/events/intel/bts.c b/arch/x86/events/intel/bts.c index cbac54cb3a9ec..5849392cf26d5 100644 --- a/arch/x86/events/intel/bts.c +++ b/arch/x86/events/intel/bts.c @@ -66,9 +66,6 @@ static struct pmu bts_pmu; =20 static int buf_nr_pages(struct page *page) { - if (!PagePrivate(page)) - return 1; - return 1 << page_private(page); } =20 diff --git a/arch/x86/events/intel/pt.c b/arch/x86/events/intel/pt.c index 5754cd4055628..49349afee6119 100644 --- a/arch/x86/events/intel/pt.c +++ b/arch/x86/events/intel/pt.c @@ -781,8 +781,7 @@ static int topa_insert_pages(struct pt_buffer *buf, int= cpu, gfp_t gfp) struct page *p; =20 p =3D virt_to_page(buf->data_pages[buf->nr_pages]); - if (PagePrivate(p)) - order =3D page_private(p); + order =3D page_private(p); =20 if (topa_table_full(topa)) { topa =3D topa_alloc(cpu, gfp); @@ -1296,8 +1295,7 @@ static int pt_buffer_try_single(struct pt_buffer *buf= , int nr_pages) if (!intel_pt_validate_hw_cap(PT_CAP_single_range_output)) goto out; =20 - if (PagePrivate(p)) - order =3D page_private(p); + order =3D page_private(p); =20 if (1 << order !=3D nr_pages) goto out; diff --git a/kernel/events/ring_buffer.c b/kernel/events/ring_buffer.c index 9fe92161715e0..061b5cb222266 100644 --- a/kernel/events/ring_buffer.c +++ b/kernel/events/ring_buffer.c @@ -630,11 +630,10 @@ static struct page *rb_alloc_aux_page(int node, int o= rder) /* * Communicate the allocation size to the driver: * if we managed to secure a high-order allocation, - * set its first page's private to this order; - * !PagePrivate(page) means it's just a normal page. + * set its first page's private to this order, otherwise page's + * private remains zero. */ split_page(page, order); - SetPagePrivate(page); set_page_private(page, order); } =20 @@ -645,7 +644,7 @@ static void rb_free_aux_page(struct perf_buffer *rb, in= t idx) { struct page *page =3D virt_to_page(rb->aux_pages[idx]); =20 - ClearPagePrivate(page); + set_page_private(page, 0); __free_page(page); } =20 --=20 2.53.0 From nobody Fri Sep 25 11:05:58 2026 Received: from DM5PR21CU001.outbound.protection.outlook.com (mail-centralusazon11011011.outbound.protection.outlook.com [52.101.62.11]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 7066026AE5 for ; Mon, 14 Sep 2026 02:24:26 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.62.11 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789352668; cv=fail; b=I7/Y6x9xJe9Wo7fOwer9BL7PfIxnUh7ZUt7Vr1erapLWkaGfIFEQJDO0W0cGhSS7Qb/Roe3dcxdxSVYqu8iJrV5DG7zMcSE48i2fyiA4tx7+tvn+nIFPrLeqEGsu5lt+2CimeACIi/Va/xpuEbFaSwhn+WemDPSo3AiN8k94anc= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789352668; c=relaxed/simple; bh=aO3rmm6jyCYP+/Dequh8N6B+yDQJf7bF+rK/0zLkAtM=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=VoYFPKPyHbLOfjxCJYAWipZke2K9evoFlYy0sJV/jlp7OO1RMob4j4HzQBfu+hJydHzw5VtpWTZNEYOmq9fK6L+tBOgJXRunf/UQRhYeP/v+cL7R9kOpyCUQizoTkM/dTeAW41GenJLt+RSSv9mn82xNnJNGFb4RrJ5jElAFLIQ= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com; spf=fail smtp.mailfrom=nvidia.com; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b=tgTgabpy; arc=fail smtp.client-ip=52.101.62.11 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=nvidia.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b="tgTgabpy" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=Sp7a8N+W7oK58Yehu//myQNUCEHc92N00qTl7DWhS6ZgaVp3rm9mH4wVZ4kamCZuFW+GhJHHvuOL5XY03V/qqD57s1xEq7tUkGZJ+Wk9dtuCjMuDHmenCi/jcMxL65PCZC7jIz97Q17pEztE6F/6BdK/8UmDH5UlVdqi3w6XDDfXNRsyex9A7LFj1h3j3pG9GsQHO2enNWIxUF0CytI+5wYJFWxaEnOkQvUuMT8TyYK0qdavlbRiaoiZy9pA/fLAUpzWYIiiJYocriY8ewSci9lNcKud1Bvh6pd9IuN0srN/deH3+Ux2Kf9lFKxXyd6gpKNDwbOaCCmTdEQ+mhOJrQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=zUjuXILVzjba9z+thh3HvZCbjHvrFmluDi/6zJAquZA=; b=FWDgr3fAx2uhKI0H/zwX6hCAP85EASuBYBwbUAZ9do28DW3Zch4cQF9EdDp2FZqUwp/8tOyF4xnmDk22PwTvG5q++i2fBpyrAObzieiodpsWDQGvNz0aLHFAYuNubuySRLeJQAB+WcTlsMaCDmafgLq+tNz+ZVPbv4mfRx7GU8Y4FIy+8T/tMwbWa3apqA8Zkii1S8RDVSldX0TaYOXtycda33UQvtOzYOD/MxSUHZJ4oBI9lr7iarVo7GLWlaKU9RHIlYx7+sxAWOf1zT7er+/OEQk3fZ9aM3B8GYRZCm+/s8/UAXWpszDSWYhXBGM/IBCX5uFdhMZcEKCQHkvLqQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nvidia.com; dmarc=pass action=none header.from=nvidia.com; dkim=pass header.d=nvidia.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=zUjuXILVzjba9z+thh3HvZCbjHvrFmluDi/6zJAquZA=; b=tgTgabpyBmDE0mCjoSaz7la/NJHpLJTA0QNH8L/8JGOH/adKuXwr99veXr6SGMiuvlV0V6m07iB3Nh2WHjkXuLGoC4FsaMZvcc4M3uArrl6yOCiuTzPT1zwPqvCjvNyBmcZwHw67y2gKDu/AlQhrhITRjCoYCZycgjANQLBHkGipxhW/XJpfvBXiBFQ57DRQqDbi/IZTe5cpWZrS8pAqzHRHqm83h6AAgQ1Z0ltHLJ9V2o7hWVoTHh1XocrzjJaHD2p1KTNLfKnLJ+HSNNpoyJN6SL9F+cbrG138oVtt/i/eVg1fxbDZD/26wMNE/RsjnZZoWft6maCaDTSbX/MMfQ== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nvidia.com; Received: from IA0PR12MB8374.namprd12.prod.outlook.com (2603:10b6:208:40e::7) by DS0PR12MB6486.namprd12.prod.outlook.com (2603:10b6:8:c5::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.406.12; Mon, 14 Sep 2026 02:24:17 +0000 Received: from IA0PR12MB8374.namprd12.prod.outlook.com ([fe80::d85f:4c87:ae84:3f16]) by IA0PR12MB8374.namprd12.prod.outlook.com ([fe80::d85f:4c87:ae84:3f16%5]) with mapi id 15.21.0406.007; Mon, 14 Sep 2026 02:24:17 +0000 From: Zi Yan Date: Sun, 13 Sep 2026 22:24:01 -0400 Subject: [PATCH v4 03/16] xen/grant-table: stop setting PG_private on pages for grant mapping Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260913-remove-pg_private-v4-3-848550f7574e@nvidia.com> References: <20260913-remove-pg_private-v4-0-848550f7574e@nvidia.com> In-Reply-To: <20260913-remove-pg_private-v4-0-848550f7574e@nvidia.com> To: David Hildenbrand , "Matthew Wilcox (Oracle)" , Andrew Morton , Muchun Song , Lorenzo Stoakes , "Liam R. Howlett" , Vlastimil Babka , Mike Rapoport , Suren Baghdasaryan , Michal Hocko , Baolin Wang , Nico Pache , Ryan Roberts , Dev Jain , Barry Song , Lance Yang , Usama Arif , Gregory Price , Ying Huang , Alistair Popple , Johannes Weiner , Qi Zheng , Shakeel Butt , Kairui Song Cc: linux-mm@kvack.org, linux-kernel@vger.kernel.org, Zi Yan , Juergen Gross , Stefano Stabellini , Oleksandr Tyshchenko , xen-devel@lists.xenproject.org X-Mailer: b4 0.16.0 X-ClientProxiedBy: MN0PR03CA0020.namprd03.prod.outlook.com (2603:10b6:208:52f::27) To IA0PR12MB8374.namprd12.prod.outlook.com (2603:10b6:208:40e::7) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: IA0PR12MB8374:EE_|DS0PR12MB6486:EE_ X-MS-Office365-Filtering-Correlation-Id: 982e5414-cdc7-43f1-3bd0-08df12074690 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|23010399003|7416014|366016|376014|1800799024|22082099003|18002099003|921020|10067099003|56012099006|11063799006; X-Microsoft-Antispam-Message-Info: z/p1/yzLc53JZYZ53rmd6dC7B8L8w49/gMQIhGR5QrVHUh2j7O2ONa48qlZznHbJHHion+Ak5rQoMEcxqjOhfla0nLfQWree90L1bause5fzWfCVNwirnthORJ/vBOEdWOo/WN0TvQ28YG7CsUhHx3biEDWDj/LZvwryd8xnuJS7ils5oqyvcwMcg2G8ICND4SdpKu1YVKrgJOeOioarOycaux98PW1Q0BJheuya+ZsQ1mjgx1xgoIOxqChcGDYp+Txu5XZiGLY8rPLk83FChwpnRooWCdqHKN7XAzLsM4b4ZFhJx/H6iYIQDqpxo0lcYijMmvsmuu6LlVFe8nTS5YoJQBlBT3B0Zy9xoBfqDzWTzPrq45OxQz/7Ni+ec0Tr2matRDgbNGlwXnaoXREkaICDQpmzBrMBp4fdtLBWw9ALUbLeOTwxrovQdO1P+ruGEnbuUtFF+kv3jcyklVGeIxpcivXGGuRamiLh9EFo3fhAvQIt9RU4+3VFWJyMKFgJ15BTNiVw6cYbIQ3U4pmb5krdyStnzoiVVxo0MmJqKkZ3bS6q0Zv53zw1EvqdXQ8AhvzUhbMEq/Hav4OeRn6ODjh+00SWRsjdsOZj6/3PbNYdsw2lv03YYQ9IBWKYLY6htsIyyCu67XGkVVFqJdacMGqIGIz9obMZadbHmiBqPcI1VqKXA5qIfBWvUUfSIHrqPg0beVreRPsMdUy3scJ3zQ== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:IA0PR12MB8374.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(23010399003)(7416014)(366016)(376014)(1800799024)(22082099003)(18002099003)(921020)(10067099003)(56012099006)(11063799006);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?d0dPWnF2NWlvUmZxaW5RcnRkWDRxUU1jOTA3Z2l5eVF6cDBHalkzaDQ5cXlP?= =?utf-8?B?a2JBUUlRTUtJM3F3R01BWHdBZkRNa0paMFN2b1BQckJjNGxaUmJnb053YVJG?= =?utf-8?B?bU5IbWxJb1M4N1RnaWlndmIrdVVyMWhLS1hNbEk4ZGh4TGN0N3M5bk1uSjNP?= =?utf-8?B?V01XWVNxSkh2bFVOZm5pWGtIVUttQ1d5a0hMQy95dGt5QWZGVUNzOGplTWhF?= =?utf-8?B?U2NabUxSdE9GemxsdlMzdjNVMFZqS2ZiN2d2ZUljekQ4NUZXTmRpSzZqZmMz?= =?utf-8?B?Um1GM013YmhINUd0Q0d1aHl3ZVFBWnFOVnpJSGJIUEZrWkVWTzFhdnJZZVNs?= =?utf-8?B?UGlrdmRncEFDOW13Y25LOXZQRmlwaTdFbHhqTGY4MTRrT1BLSnNLams5SEdU?= =?utf-8?B?a1VlTlduLy8vZmRkeXNpTm5VTDU5MFRmS2JPUkZ0YzJ6bGNJNnBiVmtkMjJY?= =?utf-8?B?RjcxdGphRjZ2M0lSTFY3UVN4cTA2SVhRUG5QWDdmaTk4cTlnRVMwUGtTamlr?= =?utf-8?B?TUFETjY2UVllTVFTRFlCQUlGTG9KdHpzdUdVeGhPRjNwMFl2RzB0Mkk3UVg0?= =?utf-8?B?bHlNT1hVMGRhZEtwVTRub1A3VjZkMjBhc0VmdG94L2xseW8wZFN4bnZtd1Qr?= =?utf-8?B?MGIxS2JJZXROSHFvNElvYjZMVVJFeTlPWWNVUndjRnB1UGZxMXNXb20wNVFw?= =?utf-8?B?V3laUnZBQk03ZzQxRGUxODRDSXFLTnErcEZEcFZBUHZZbVlwMnk5UWRVZXRk?= =?utf-8?B?b2F2L055K00wYVB3VHhvTy9JaUhOME8xWFlIVDZBZTRidUsvNm9iak8rYy93?= =?utf-8?B?NUdCTDhEUzVVQzZCUnpCMzJzN1phaWxtai94dkYxZS9BTENTbUM2ZElVMkpY?= =?utf-8?B?NlFTQm1CQ0w3SjdVcWYwVFcrL3ZXdmJvZy81YnpMZEpFRFc5Rm5ZU0FUcC8w?= =?utf-8?B?Qk8rQmRYc0tiaVdVUmFleXFjZytPMUlGRGZpbGlMdHR1dElVU2VXTEtQcE1Q?= =?utf-8?B?dDFxa1ZiNEVhN0pVcUxodnY0QXFOZFFmQ1cySEtnWlVSb25ieGsxUWhxUWtE?= =?utf-8?B?anNQdEdQRHk5Ymt2aWl3K0Vkb1ROVnJMOVdxVFhwZG9uTmVqUTE5eVRZbkNv?= =?utf-8?B?bGliQ3VpVDZlTnl2NDZXTFE5RTRqRHMyQnBjUVgwZnpwdUFCNWg2WEMxazAx?= =?utf-8?B?U2I3V0tEajNHNS9jVDZxVTA2UlZPM0VCWWhlaDNkanBQc1JDaWhHWktaellz?= =?utf-8?B?eE5JMEVVYSt5eGxGL0JUMnNOQnBJRXJ0NU13SWpYaGN0Tml0WU14YWh2dGU2?= =?utf-8?B?d2tSU1RmS1VDS2VTREJRSkJGSWt6TXl0V3BBd054d0VaQVlySVVKcHoxNFBi?= =?utf-8?B?VlAxSWE4NklwYllYV051SC9xQXJGZ3MzMi9OOG1rVlpBK2YwOUJFSHh0RURX?= =?utf-8?B?bUx4Z1RLd1p3dnhBUDRUZFV3bGNodFJjZWNOSW0zM21aMENldlZGYUNUNHhW?= =?utf-8?B?cmtkRHdKZTcyMHFkeEdpVWJiQlpWaHRLUjJja0sxYmNudFB0WU1ZS0VNKzdN?= =?utf-8?B?U2h3ZjV5VW0xQVVBRmlmaEtnRk1IRW1teGE3ODF4b1ZPRWh1TXVGUnFyTndv?= =?utf-8?B?cE9CYWhxU2lWOTJTb1ZzTjE0M3J5NW16ZGJlK050Rzd5blQ2ZGhvTDJObTd6?= =?utf-8?B?blJlNm5naGpmdnpOZHM3NzdsQkVPZTZCa1RwSjYzVnNCODRtSGpOMHJFVmZ2?= =?utf-8?B?cWpRUEozcGR1RkJ0Rm5ERzNINHJZVFZqd2N2VzFLbzY3V0p3R0ttNDIrSzlt?= =?utf-8?B?OTNWVFNOKzFXNzZjMlhuWGZrejBZd1ROQ0Q0RnFyak96TGtuZ1RFdmdUdVNr?= =?utf-8?B?RWc0d09vZ1VjNGQ1UFJQb3l2VlV2RVJoR1lnUmswUjFYZURUUVhXVmE1QU1O?= =?utf-8?B?QU50V1F2NG5oS3NpQ0xkek40RkFnQVV6cVBKdFJSV3Fod2hwQkNIKzVWQzBR?= =?utf-8?B?QStNTDJSZ00velBQKzNMVXQvYlpRYUY1ZWtVQTJCVjBQK3ZvLytMRVNhRkt0?= =?utf-8?B?QzBiaDJZZHhGNWtreFZyemw0UkZGS1htRjZXZzRZaEk4Rys3bUlObWZGWjVX?= =?utf-8?B?eEttRGVDYkUyRFgwREJrZVpTTWhoK2RYWlhVQ2xlZlVEdlYzNlFGSldhWG5w?= =?utf-8?B?M0dMbFR5dWVZZGZIeWt5aWFqeVNheXczM2k0dUdFQ2VrMkU4VzBWSU02dU04?= =?utf-8?B?Tit5QU9UeWx1VGptSHFMd2EzcElRaHEwVUpJbS8xNXV0TllYMGhNMGxUOXpn?= =?utf-8?Q?ja6n8QxfWm22fveCv8?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 982e5414-cdc7-43f1-3bd0-08df12074690 X-MS-Exchange-CrossTenant-AuthSource: IA0PR12MB8374.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Sep 2026 02:24:16.8986 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: To3O9zZcW/LMdCtzpMacLnBBGk++x3Djb34juhRZC6KxlJaWhOUdimgBAOw6n/v2 X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS0PR12MB6486 gnttab_alloc_pages() stores xen_page_foreign in page->private. On 32-bit, a pointer to an allocated xen_page_foreign is stored; on 64-bit, xen_page_foreign is stored inline. Checking page->private !=3D NULL is enou= gh to tell whether a xen_page_foreign needs to be freed on 32-bit and page->private is zeroed unconditionally on 64-bit. It prepares for a future commit that remove PG_private. No functional change intended. Assisted-by: LLM Signed-off-by: Zi Yan To: Juergen Gross To: Stefano Stabellini Cc: Oleksandr Tyshchenko Cc: xen-devel@lists.xenproject.org Cc: linux-kernel@vger.kernel.org Reviewed-by: David Hildenbrand (Arm) --- drivers/xen/grant-table.c | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/drivers/xen/grant-table.c b/drivers/xen/grant-table.c index 69922be28b54c..993f89f048e21 100644 --- a/drivers/xen/grant-table.c +++ b/drivers/xen/grant-table.c @@ -863,10 +863,10 @@ EXPORT_SYMBOL_GPL(gnttab_free_auto_xlat_frames); =20 int gnttab_pages_set_private(int nr_pages, struct page **pages) { +#if BITS_PER_LONG < 64 int i; =20 for (i =3D 0; i < nr_pages; i++) { -#if BITS_PER_LONG < 64 struct xen_page_foreign *foreign; =20 foreign =3D kzalloc_obj(*foreign); @@ -874,9 +874,9 @@ int gnttab_pages_set_private(int nr_pages, struct page = **pages) return -ENOMEM; =20 set_page_private(pages[i], (unsigned long)foreign); -#endif - SetPagePrivate(pages[i]); } +#endif + /* Data is stored in page->private on 64-bit */ =20 return 0; } @@ -1031,12 +1031,11 @@ void gnttab_pages_clear_private(int nr_pages, struc= t page **pages) int i; =20 for (i =3D 0; i < nr_pages; i++) { - if (PagePrivate(pages[i])) { #if BITS_PER_LONG < 64 + if (page_private(pages[i])) kfree((void *)page_private(pages[i])); #endif - ClearPagePrivate(pages[i]); - } + set_page_private(pages[i], 0); } } EXPORT_SYMBOL_GPL(gnttab_pages_clear_private); --=20 2.53.0 From nobody Fri Sep 25 11:05:58 2026 Received: from BYAPR05CU005.outbound.protection.outlook.com (mail-westusazon11010031.outbound.protection.outlook.com [52.101.85.31]) (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 61DBB322B8F; Mon, 14 Sep 2026 02:24:28 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.85.31 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789352677; cv=fail; b=GEnbeIABO8ORaVttFx3iJwcr94BMCPHHLJlb6icDtoSbEnpcub4XKUa3mfWKbCLZXo5K2wLNa/jQe0GIdAZzeXZmc8ZHsdvu1EzGQsh7dmVfHarny5poZXW/Xg8vp/drfptOmq/6YaT2lkeFZUa+/AHLgjyPyapS9L2TOPIH3OA= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789352677; c=relaxed/simple; bh=mlGhRQsDFVR+ZtrbFnxBErjRr3tinO9GhaaHYovRs8c=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=c56Qoy7SH/3ywtj5IN7CtyvH+QGCMv6W1zG4dIsUbijZCcYwl6oZd1ZLbWL7ZE9zwbBh90S+W9TEKeaEv+wIGO/fnDXv0Rlb+9z2FC6GQpxhSeKEubcazXmQaOyasX41CS4fpFCPHnU2BfK25N/x4uJfNyiD+syuCXO/DAQkyPo= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com; spf=fail smtp.mailfrom=nvidia.com; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b=kRqDGMZw; arc=fail smtp.client-ip=52.101.85.31 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=nvidia.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b="kRqDGMZw" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=rmMBfM41hCQl2XW3g7EIBop/EqGWur1brbRj1iJ53Ox9aPxwj4LrSic6MiMAHW95wuzbS9rNoctKtt67gvUnXaJhVJAtj5mpRna2uPCbwsnMGZpQgI26qiV67NPs4WkkP6Zn3lmUv0ph1a22dPCU/CGfVG8sb5ZY+/5dJoVjbLa1lh2fvFhpiPifotHd/S6tFVG0lEW8i0RnJrJndkZIfYtJwa3Nio9Y4iKfQdn8pThCwBhMRYJayuLBfcYx6NtcbOq+RGC186MHUeZxoVNFRD8xTfimwPFWiyF1o3A8N/TPK6RJQXNX4qE9IOqHibKgn+tP52JmQ+pYj56BL1DJYg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=b96eSbyk6ByBEFjiSyHVjmOBfJffseci+FgonfWLP2s=; b=czmy0wvQVacafrIaJ/Iy3WrSCZ1cu5q64pjPuyK2XE/iwZilntHOSJhSX6wJm0ihw0kXgnCb8d2h62eY7V6yR5kMn2Ui6V6lBm5idz77ktEUdm34Ljejfm6yoJNEhxxvHWI0L9vhFHgwyfD8Q6CGom2/WJ9dTIIVXQ4fa2DF1oIbwIlMrbSDWAvxzuDNGJFue5Su7TTSh3lyb9StjjuDHFUfLURGjeuIxhbGktxcK6Ty9NkC/ebdzqGi4VXBTZ93BGPaP6tNgZxVA5v6NrFhM4V0BXU3LD61xLAfy0mxyOQxS0bBGUOkpDPSm5CrfGRp7eax+pD3EcniF1TbuUlbog== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nvidia.com; dmarc=pass action=none header.from=nvidia.com; dkim=pass header.d=nvidia.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=b96eSbyk6ByBEFjiSyHVjmOBfJffseci+FgonfWLP2s=; b=kRqDGMZwzfUXzsUUFMFhTWty4PlyGJFNKVjs7/JmmBcmoNl8Drv66GtEutIuDS45hLlc07wUQqqeETBtURA4j4gzJ1zaREZUbQHHjgHm0O/lprrP9o4gWqosIL14JugOiQsQ74/EDoebPzHU7++LJ1bIFLBJhr+Z9OWw3xzLAs+u2vSlMCXM8xuy4wcvrPlmRhTbHmmdltRI2sy+UGHMc/jyO71GPtdVV4z9PmIH9SuVj3p3ELlGkJ9q4eyfN9Fa06m6srxWlgEN9q7nRDrLtY4sggvzxz8kpPcJWmd5RlEI6/2otcy2TQyYIPkzgVYyXxLemkI/zXJlEav3dYKy2w== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nvidia.com; Received: from IA0PR12MB8374.namprd12.prod.outlook.com (2603:10b6:208:40e::7) by DS0PR12MB6486.namprd12.prod.outlook.com (2603:10b6:8:c5::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.406.12; Mon, 14 Sep 2026 02:24:17 +0000 Received: from IA0PR12MB8374.namprd12.prod.outlook.com ([fe80::d85f:4c87:ae84:3f16]) by IA0PR12MB8374.namprd12.prod.outlook.com ([fe80::d85f:4c87:ae84:3f16%5]) with mapi id 15.21.0406.007; Mon, 14 Sep 2026 02:24:17 +0000 From: Zi Yan Date: Sun, 13 Sep 2026 22:24:02 -0400 Subject: [PATCH v4 04/16] fscrypt: stop setting PG_private on bounce page Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260913-remove-pg_private-v4-4-848550f7574e@nvidia.com> References: <20260913-remove-pg_private-v4-0-848550f7574e@nvidia.com> In-Reply-To: <20260913-remove-pg_private-v4-0-848550f7574e@nvidia.com> To: David Hildenbrand , "Matthew Wilcox (Oracle)" , Andrew Morton , Muchun Song , Lorenzo Stoakes , "Liam R. Howlett" , Vlastimil Babka , Mike Rapoport , Suren Baghdasaryan , Michal Hocko , Baolin Wang , Nico Pache , Ryan Roberts , Dev Jain , Barry Song , Lance Yang , Usama Arif , Gregory Price , Ying Huang , Alistair Popple , Johannes Weiner , Qi Zheng , Shakeel Butt , Kairui Song Cc: linux-mm@kvack.org, linux-kernel@vger.kernel.org, Zi Yan , Eric Biggers , "Theodore Y. Ts'o" , Jaegeuk Kim , linux-fscrypt@vger.kernel.org X-Mailer: b4 0.16.0 X-ClientProxiedBy: MN0PR03CA0011.namprd03.prod.outlook.com (2603:10b6:208:52f::13) To IA0PR12MB8374.namprd12.prod.outlook.com (2603:10b6:208:40e::7) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: IA0PR12MB8374:EE_|DS0PR12MB6486:EE_ X-MS-Office365-Filtering-Correlation-Id: 444d3686-e5c3-40c9-6d30-08df1207471d X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|23010399003|7416014|366016|376014|1800799024|22082099003|18002099003|921020|10067099003|56012099006|11063799006; X-Microsoft-Antispam-Message-Info: CFmEMJ710Akn5WIin2Pg03nulY4Iffx9/GRPq3ANf0oB2luRLZoR58kztgysvGx5xof8TJ55hKVQHi8CfLx4Cis5phLqrFkfsWkBj6NhvmSr9nAhkv0jwfgV6WpDgf7pGJy8r8QdYVTeNxJjLwFO7tiIalyIpRcXfufkMvI1IBwp0e7HrQgl9orm3Bd3gJOfi6b1btjLDbguZmVEhFhcivpe29+C1g/KMYXGiOZzi7m8teZBxJM5GHefGZcwfpeRv5QlmP46UAfFXy11etdS00vDErzHSX2FC6ub/tAHD/FHujULtT4toGEfjWiiBbrqFyxxpbFUj/c/XAfI/Yh9QiHyzYWeASZouYIXjU27p4lTUVenHLgbn3ehHrIrKSYt93Q/VGEXi8EvpucY591eI98dd8rrMqoVjBM1XPteGmGLdbTZ1TiBI7BJB9A9P+tCdnpjHNmPfa5WR/4kZ83HBslsf+4Hl3xY6/TWNnFDnvn2I3VwGsq0HlSgCYD0jEEO2T9LRFyK3CnkGRd2h2dQ09zpHRYj91HtfxpPsHGXpRmX/DkULUMPoYpZY/I/vD9SD6X/iy9mdCMakGzDw8p1MVG0qwQE4//ysAulKovi3/hC+1vAcSfUYnuW/xZHNgbwUQ3u4Q2fsZK64zHnZ5+9K8p6ZwH1S812eNmhWShJQU8qGoWgax2iO5ba4/o5Yf7/WUyjpPXSMoCGkx+lAZVlUQ== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:IA0PR12MB8374.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(23010399003)(7416014)(366016)(376014)(1800799024)(22082099003)(18002099003)(921020)(10067099003)(56012099006)(11063799006);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?bklxQXZRWTZLdmoyTVljYjJ5VTZqZjNNVUNEWDQzS05nRE8zVmNDSFJpdFUx?= =?utf-8?B?U3YxOGExdGhrekJBOGZQYzhtTnV4YWVTNm9XRmxTdVhBSDJINi9IbVRuQTN1?= =?utf-8?B?QnR4c0pFb2txQ1NxUTFSR1ZyWjhaaHZqTWhreUZuSEh1djRQajFOTzY1V0ZP?= =?utf-8?B?cXo1ZVpBaHNyS3hlUkRhN1NYV2xzbjNtTmg4OUIyb1V3L0lOVkhuRUFOdUN0?= =?utf-8?B?VmFEUUVXd1U2L1ZCN0IvekNOL1hLVWxFWnhRWTRtQnJRUjMwTFlmTXkxQURm?= =?utf-8?B?QzNtU0REWXVaUEprZkJMYmpkbFN3a0dYMDVFeGJaT2hobFAyaG0zdnZ5ZDMv?= =?utf-8?B?b2FyKzUrWTcyZkQyaWpCcnhHOUlvSlltKzhvK01hYXNTZUczdjB0eVJTNXQr?= =?utf-8?B?dDVwY2NZQ1E4WmNmVzVRVXRrZjkwQXVyTlZLR24yTXNkcEtwNXg0ZlBDWWdx?= =?utf-8?B?aFltdko3b1p3NmxDcjB1aG5FWm9sRjRYeUsvQkI2NE1IK1ZxcU5zaGNpMGNL?= =?utf-8?B?b2taMTlKZktvQjlUb0pUaDJvS0JUTnZkS01UeGp0eEpPTnlKTHZvSDdPbHdw?= =?utf-8?B?MTVJTHhUNkpjV0dyOFZLOURhUDJnaUVMYU9HN3daOEl2NVlWUmEyc3ZiS2hD?= =?utf-8?B?Ri9PQzU0Zjhpb0dlQ3cyNCtYeENyY044ajlkK25hN0pZdkpqQ3BWU3FpOEJt?= =?utf-8?B?dGZMSmM0OWJ5QThjaGpVdklsVitYOUxzempUWXl5QzBqQmU5R1psL1R0Z2h4?= =?utf-8?B?UWtFT3dSK3d0MC9pQ3Y4N2IyYzBmSVVROXgxNE9CT0NFaDlBbUFMN2J2cERr?= =?utf-8?B?T0QvYzhQZEN0VFBWQW9yNG5hQUlDUjgyaGdxZUx3TWJ5VStoYVZleWdVWUxX?= =?utf-8?B?R21tUnhQR2Z1c0h5SkF0aGE0VCtoMlptVVhBcEF5TS9xL2hhUDlNNEo0MzNY?= =?utf-8?B?UDFodU9CNUU0ZEtBQ09pRG1vSGVIdm1McitDMnR6dTBqYThDUTBRa0pYeitv?= =?utf-8?B?dUZ5ZG9RU2lNQUdzeXlPYWVma0FIUlVxTmgvRGhFVDFIa2x3TnIrOHRQVDlh?= =?utf-8?B?a3lhdGRUM2c0SHl6dXpJbUdpdDJwTHFBc29JNVJEbXFuMytGd1AvRC9BWVlU?= =?utf-8?B?SDNiNlAxNHZuYkpNUzBjaEx2UnlSMjFRend0TWUwN1JJZGxmcjdmK0VKL1dr?= =?utf-8?B?elVheGNUaDJRalRRemJnY20xSUZGMnVXcHMxV3FZTys3ditla0UvQVQ3Rzkx?= =?utf-8?B?cEJmSDVRYXhqRWt3T0JFMENRR2g2VHA1aTIydVNHbGx5R245RzVXOEUzRGIw?= =?utf-8?B?YlVyUlNrOFVkY2JhNUJhZ01BaEZBS25wUDMzRkdSZjdmZUw0aHBGL0VPWVBi?= =?utf-8?B?aWNHbVJVRGFBakhvNCtjLzU4ZG5oN1M1bmI3WEFtK0cwM2cwZnR0L2pmNmMz?= =?utf-8?B?dlhOU3p6S09rY0ZGTjVOVUpNb2RUMndLeWRibnliQVRDSU9mK2Q3RW5Ya2JC?= =?utf-8?B?YU16a3dZL0NVL0QrQ3EvTm9McDlRb1g3bGhFTllueDhSRTB2YWh0WFBPUTFr?= =?utf-8?B?RXJmQWt3VU1uUFZYdm1lNm1MSGl2UGJYSDk5SDhUQjZaTkJKM2pHS2U4STFR?= =?utf-8?B?NnpjZFBXL1RLTWN0S0pHWU11ZVhWUVA1VDZnYkwvWDZkcEZrUENaY1dQTUk5?= =?utf-8?B?TFBYZmNLQVFOM1NMbnBOYkRIc1FleHFRWnZWTzhTR3FMZ2Y5KzIrOEN1UnlM?= =?utf-8?B?cjNVMHFFOUd5ZWFQVUlpNFJCbXg2NTdQNFlXb0N4OHVGS1oxSVhRNDUrUEx4?= =?utf-8?B?dCtUbi9RSlpxVThPTEdYRzVWaExxaUNPemtPQ0Q1U3ZPa2VwZzk3UjcvbGRU?= =?utf-8?B?US8wVG0ra2pBNCtRM1htTUlncmE2aUtNQWlDYldYUFpWMVBZRDdYUWlpd1ZQ?= =?utf-8?B?OC80c252MHpaNHpSTmptVkxKMTlPb2pOYzFjeHJaOW95dWlPYUlQVWowUGxh?= =?utf-8?B?VXFKMXNEaW16MXZrOE5pQVFPTHBubytEcm1nUnpyYlpQREU1SzI4T3RMMG14?= =?utf-8?B?TzEzem81MVlFaTNwWDRBeXBmMWRHQWVVSFBYVkNWcW9haG5hS3RJUEJ1RjBU?= =?utf-8?B?bjZycEU4M21zMXVOL1NyK0FTU2ZIU0puU0JxRy9OS3JrT1pwcTZwa0ZoUC9k?= =?utf-8?B?dUdvenY2MHZkWFBQVHRNc1lxL1QwMFcwR3Vibmx6M2pYOVl6ZVp4Mk9TUEhu?= =?utf-8?B?Z1hWNXNOYzQzelEySFZwOW1hS2RpckV2RzNhSVR6K1VTZFlSQTZiYVNaeXFx?= =?utf-8?Q?B86Yt89tNfBUp3adO3?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 444d3686-e5c3-40c9-6d30-08df1207471d X-MS-Exchange-CrossTenant-AuthSource: IA0PR12MB8374.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Sep 2026 02:24:17.7978 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: aJ3MVSfSSZCTSOGlh3f97ycp7Fcks0n7v7/nExCu6ws4fYnuf62uekayQ+XdgRaf X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS0PR12MB6486 The pointer to a plain text folio is stored in bound_page->private and cannot be NULL until the bounce_page is freed, making PG_private redundant. It prepares for a future commit that remove PG_private. No functional change intended. Assisted-by: LLM To: Eric Biggers To: "Theodore Y. Ts'o" To: Jaegeuk Kim Cc: linux-fscrypt@vger.kernel.org Cc: linux-kernel@vger.kernel.org Acked-by: Eric Biggers Acked-by: Usama Arif Acked-by: David Hildenbrand (Arm) Signed-off-by: Zi Yan --- fs/crypto/crypto.c | 2 -- 1 file changed, 2 deletions(-) diff --git a/fs/crypto/crypto.c b/fs/crypto/crypto.c index 5286a124b0d98..aced5c50a4601 100644 --- a/fs/crypto/crypto.c +++ b/fs/crypto/crypto.c @@ -65,7 +65,6 @@ void fscrypt_free_bounce_page(struct page *bounce_page) if (!bounce_page) return; set_page_private(bounce_page, (unsigned long)NULL); - ClearPagePrivate(bounce_page); mempool_free(bounce_page, fscrypt_bounce_page_pool); } EXPORT_SYMBOL(fscrypt_free_bounce_page); @@ -210,7 +209,6 @@ struct page *fscrypt_encrypt_pagecache_blocks(struct fo= lio *folio, return ERR_PTR(err); } } - SetPagePrivate(ciphertext_page); set_page_private(ciphertext_page, (unsigned long)folio); return ciphertext_page; } --=20 2.53.0 From nobody Fri Sep 25 11:05:58 2026 Received: from DM5PR21CU001.outbound.protection.outlook.com (mail-centralusazon11011011.outbound.protection.outlook.com [52.101.62.11]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 364AC31716D for ; Mon, 14 Sep 2026 02:24:28 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.62.11 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789352672; cv=fail; b=uhuBj3L7SLAKpegMuNhwEcOtEt0/J0C4wbOdWJDOMYZp+tGPRn+5UVQGKAunNLvDdbRV7VwrDqesHldJe0FLNxTjphWzB0fqckR2kARj7un8/Rks//arHsHuNKnW5mjpUXjpLeq9KT/oJ75XYPeA4RQeE0Jnc8PiEHDJpI1nXSk= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789352672; c=relaxed/simple; bh=z2WCgtHeWF1CmjN4wV8eJUDAi1kEC5CehIfV2/eTCsU=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=hJI6lWKSgWtjDhkGUn2ILcJt6cF69EU5u+vnDcGjDnbdOcUbVdx3Uh7sgzHxDnDXRNxf4YVWBTjzayrLUB/48/zNXXX08Aj5HdAhTJ3WxCIvzcd9sCjGbvjEHtefuErVLaZb/8tVmV08X6su5z60AFmjjHHbiqAys1kWc4bgFvQ= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com; spf=fail smtp.mailfrom=nvidia.com; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b=jsgEWMlo; arc=fail smtp.client-ip=52.101.62.11 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=nvidia.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b="jsgEWMlo" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=iXXu7k32ZyaxfiV6Pj3CEt2lPL3QItDw5oOoCJSnnpjQDmcY8KQxUWnbk2L45JZkpWE3U3SsNiYtuMBjZ+SHYl3xdisGJ5ikxvlKSY450OAVX+qZXNFaeLL8vZZxEDcYLMkkGJba+Nw7CRlyAaGFwMgg56zE5Flph+LFwzqCPVbJfBfE5en9GBtTCN4lU93wsRuj2e8aK+gvOS+f27LgenE/BxL+8DkPsAaxeeitO2IpfE8z7O+aaVmv2Yzy6grwGoP12+L98jYxhN2OwVlAjHhiKyJt04GHoKcmcXmjisBTmMJN9rwUSveCkFmvKpWom1UZpu2uJZk+sUbrXTV21g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=qx2EhSRggahbLLHIlX9eIGMCbcGjmTOBasCV3TIU6I0=; b=Yg4yjrPeMjUqFsJCcuVY26rDvAHYSU3h/CMpjq4VfJ1DgdU+MwO8/jK6nsw7w+KyXU68/J4fFYbF5kya+Giq7FpcbZIsPyjY+kUJxVQJSFPjfNaGgIbWz/wQjM/iZuIUlNdsywWxZmLUCHQOgdOQOfoKhB498A/yskePT2MRs6w+H6WJBA70mv/q4oX2W2t0fsgXR4rN0EaWdF4nKIDnQKq4/Jr60ZO+A2xomA4V0SIFoHyodrZj76B9bmtEJoWbIDariOihAR6Ptzir1FMtF0xrCXZKOznOelGF/ygESV9CbLOOGTwPSAiqcGBwylwgpggiQ3589rni+lOu3XUhcg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nvidia.com; dmarc=pass action=none header.from=nvidia.com; dkim=pass header.d=nvidia.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=qx2EhSRggahbLLHIlX9eIGMCbcGjmTOBasCV3TIU6I0=; b=jsgEWMloItQcDkRAnYMZto8t421o4HJz7fTiY22Fnr3NzH7FxEyj5nYYEaCOX1Ru0XnGzsH2O0otKysTwt8CPsDCa1rm8NLGOJ803jnLrcEEEF9by8Z9a5JViqcjZlHxq3EklsbFoxWCeoY478sqyMfRNxPElbWHMDkxt5vHLbwKJmjxRXh7JBDMk2O6j7sjq9nEWOo49L/xD/ntV8Ve6NKT0GPH+Mb1NX8/YU736aEYa1Sv3bsyAgncmP81/EFyutV6CnA8xy084VPd9SLx7vqKnf7tZ7RLZfrt6EM6jqouCGuf07AOzuOaPqA8F1p5b/LPz8Qu7wAzr+9mowiumQ== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nvidia.com; Received: from IA0PR12MB8374.namprd12.prod.outlook.com (2603:10b6:208:40e::7) by DS0PR12MB6486.namprd12.prod.outlook.com (2603:10b6:8:c5::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.406.12; Mon, 14 Sep 2026 02:24:18 +0000 Received: from IA0PR12MB8374.namprd12.prod.outlook.com ([fe80::d85f:4c87:ae84:3f16]) by IA0PR12MB8374.namprd12.prod.outlook.com ([fe80::d85f:4c87:ae84:3f16%5]) with mapi id 15.21.0406.007; Mon, 14 Sep 2026 02:24:18 +0000 From: Zi Yan Date: Sun, 13 Sep 2026 22:24:03 -0400 Subject: [PATCH v4 05/16] mm/hugetlb: use direct assignment instead of folio_change_private() Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260913-remove-pg_private-v4-5-848550f7574e@nvidia.com> References: <20260913-remove-pg_private-v4-0-848550f7574e@nvidia.com> In-Reply-To: <20260913-remove-pg_private-v4-0-848550f7574e@nvidia.com> To: David Hildenbrand , "Matthew Wilcox (Oracle)" , Andrew Morton , Muchun Song , Lorenzo Stoakes , "Liam R. Howlett" , Vlastimil Babka , Mike Rapoport , Suren Baghdasaryan , Michal Hocko , Baolin Wang , Nico Pache , Ryan Roberts , Dev Jain , Barry Song , Lance Yang , Usama Arif , Gregory Price , Ying Huang , Alistair Popple , Johannes Weiner , Qi Zheng , Shakeel Butt , Kairui Song Cc: linux-mm@kvack.org, linux-kernel@vger.kernel.org, Zi Yan , Oscar Salvador X-Mailer: b4 0.16.0 X-ClientProxiedBy: MN0PR03CA0009.namprd03.prod.outlook.com (2603:10b6:208:52f::14) To IA0PR12MB8374.namprd12.prod.outlook.com (2603:10b6:208:40e::7) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: IA0PR12MB8374:EE_|DS0PR12MB6486:EE_ X-MS-Office365-Filtering-Correlation-Id: 9e141dcc-bcb6-48c3-885e-08df12074795 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|23010399003|7416014|366016|376014|1800799024|22082099003|18002099003|921020|10067099003|56012099006|11063799006; X-Microsoft-Antispam-Message-Info: as0/kEE0l1ECvNfYIGH4IaHJoQQPviEQOMxRqQLyAzJtklqfJJqJRkPfnOyVXYCaoBbW9BAbsS2hMr4RcAzqhW3qUpR8+SEGyErTzGl52QlDJGcfE7p6xEDiO+CoxoC41O4Uz+I9RiVNthtuVU1MSm8PSyKNM5LNfzRVr11B+lZ5aCHPVlLEEBjq2qti4ka3PZdMrWkibjCUdwjHAyYaLKicEjtFIFLBkW5c1/g5acPxGHKNovFwj7PNmJ6ouGwkW3JaPtlRT924wHjXNNSJLarEgK2vWk2B3OaIcPWGV4YkACeDRhca1NArHw+noAPfXcwwZ2iMkc24PN1YO4enDbQwZvmhfMzOUZg3W2JEeTxIPkCItNJhDg9NT4LzV2vhr3MwvRY08cs99c4Q2zZpu/j00IO+XPruSud17EPPVpfrhuEIrLttOEs569PANI/a62i77YpYTY4CYhHbkXDKJaas8xp+TwU/rtSg6fnmCZNP5VXjgxDn/+7azuOZtlHtt36cHUMjME6soDNLRqn2r9LiWxi1xKnaHS/b9O7CECh6qbkePLXAoZ5vxKBHxmVp5OJo1KTeyd6k7Pzd5DKi4x3LkPMdhXqPIMGLcrwSrgtLZdc0t676oSSeXRZg11Bgmij++bPolLuZ6zrKzRwTDLuoLFjfAQWyO4YlHeO2WPUj06sdPHDSfky61ocyJu5FhTZFDYIFMrBVLF2n+QbdSQ== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:IA0PR12MB8374.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(23010399003)(7416014)(366016)(376014)(1800799024)(22082099003)(18002099003)(921020)(10067099003)(56012099006)(11063799006);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?VE42SXNTdTEvSWM0bDFlK2huRGtPOUM0QnBrM2c3VHA3bmh6Wk1objFxMzUy?= =?utf-8?B?WGRyWWFlZ013cXZkbWk3Y3M2NXFrRzhMS3NIMERSU3F3Zlh6OEU0V1dCU3I4?= =?utf-8?B?MXpTUjltLy9QcTBxTlJHQytuU25PZTlEeTJReGtLaWordStoK0FxKzh4eGxj?= =?utf-8?B?SCtEM3hwUUJPR0sycG1WMUVsanY0M1RGNy96QzNpZmZzcEJ6b1dqWkwzU2RO?= =?utf-8?B?ajJmaXlPVW9QeGpTelZvRXIzR3JEdEFwNEl2MDVkMyt0K0JuNXV2Y2ZBVUlk?= =?utf-8?B?cEd0Z1kzSFRMZ2hHKzVINmcxb3BvVy93bXpDaTBpMmJVVk11dFYvdVZ6TE1z?= =?utf-8?B?S1lIcGorWm90aFJmYlUyUGRLZmwyemlFbU5LZWQ1elRtcnF1dFF3UU9SL0VT?= =?utf-8?B?TmVGaWJ3a3FVcEp5THludndQSFJ6cUtxTWRlZ1FkcTQ3UVI2Z0RvbFozdnZa?= =?utf-8?B?R21oZG81NnlsbWd1VEVMYklZcVRHSlhNS1dRSHAvNEU2OEs2UkxzeXdXVVhz?= =?utf-8?B?cW0wTmttdkl3VkdlWThEdU92ejhONHM4MDRqS25CWnVSTlpsbnBQd0NMY21t?= =?utf-8?B?NkxWcVRoaDRaRGtIeHg1UkxXWXZYSUVHVnI4MzNidjZtTEM1S0c4WkZOeE9E?= =?utf-8?B?MXhaUUM2Rlc0ODZXUFBsQ2lHVTdjbjY1MmJzQ2kyZXAwSkpDQ1U5RnZJNndx?= =?utf-8?B?SkNsaHZab0xKbHlmdFM4VE1veGpMTzQ3ZWUyWWJ4THhZSjhzNGNnUmQxdmE0?= =?utf-8?B?dG80N3pYK1J0a2cydlBwYTVMaURrZHloc2tJZHJ3Um0yL0JKaEFYaXV3di9Z?= =?utf-8?B?d2pLU0EyYWlhUmhDM25nZUxGbHcrUTRyOER6WWFvVk5QY1RCQ2NNaUJoSEJy?= =?utf-8?B?MFBLaUxjMmsyczNNYnl1WFZCOVZoZEhGVG1IMHlIZVZpcFpkL1B1azdaNno0?= =?utf-8?B?Q3JvWHhkWC8xRDNmUjQxcXVPQ3k4dEZ2NkJkTG1QQUVWRE9MbzVKRTFyR0Vp?= =?utf-8?B?MTNmcG9ydENJajB6TEtCc1FPWi95SCtUWXlkalRzMUdtTEVTNVFSNTdlN3o3?= =?utf-8?B?b3Zxd0I0Z1FiMnQwWk8xWmZKUVNjT2FCWG8vSGpQUGhLN3pucTVXRUlhMS9O?= =?utf-8?B?WkwxbzVHM1JCVWRxRWJBWFlwVzVWNDZleGZFTkdrRXRuUnJuL2F0VlhWL1FK?= =?utf-8?B?MzJMQzI2T3plVXBBanJNTVRHSVhpVCtlNlF3RjFjMTJNMXpiUHovTEpMeTI0?= =?utf-8?B?YVMvK3d6bXkrMXlRYWJia1Nxa0F2bGRhTzB3aFFzdnVLb1Z6MDVjMFIrVHBl?= =?utf-8?B?Mkcwb0xibndkQktOVmR1eG9PclFvL0FFcGtwNWovVVEzUmlIR1BYYlZ3NVB3?= =?utf-8?B?NWx0Znd5WHhHbXFBMUdYeTlYTnZhSEdCOVRHWStQeTNVcjMydnd6V2xwQVhV?= =?utf-8?B?NWp0c3JjN1MvamZnQTFrbkszRDJIdGJycGMxS3hCRHptNGRKWDVpbXRzOW1h?= =?utf-8?B?a21zVHp5MDEzajhPZFVRclg2c05mUmNUUktyWlpxT1B4UlljV21VQ3BWT05m?= =?utf-8?B?UVZ4d3ZRYWloSENkUXY0a1BQeGNDWHhJcEVZL3dsV1BDcWVGeTA4NDNvMkM1?= =?utf-8?B?VmVqem9tMHF0VDViWjUrOTdtZW4rRjBsUWlTcVhub1hGdFlTa2V3ZE9zaFRM?= =?utf-8?B?UGlTL0lhRHZXWWt1ZUtKYndobXIzV1FNamlzQVVYVStodDVDdEtiV3lqREM5?= =?utf-8?B?QkoyVEZ3TzVGbHhPR1dMdkp6UkFFd1RTZGVwU2Zab29KRnFFYU8vYUtHdDFC?= =?utf-8?B?QVpjTnd5RDFJUVJTM3M2U3BvT1A4YU1LQ0dySDRndzU4Wk1DQVRYandFN1Yx?= =?utf-8?B?bUJhY01SOVd4dmVoS3U3Zjh6RWJOU050cWl3S2l2R0hnc2Q2c3RyWk1VR2hk?= =?utf-8?B?SDdlNkhpdlhtKzZCcDJnYllmS2ZFeFpHM3BUNDFKSWdRUEpPaE1ldjdVQW9S?= =?utf-8?B?Z0hmeUxVL2dNUmNROFo2eHhna2Uxa083M01tcGUxTjlHUk9wT2Z3ZEhwalVl?= =?utf-8?B?S0ZaWnp5L2pnaVdweERodnlPSVExeXdwRFpIT0Q2L3hBeVh6elhRRllzaHgx?= =?utf-8?B?V0ZaMlFnbXArSm1UQzFIZVhJc3FyNVFERDNKVitGQVJ6V2RIN0I5dkdRMEFW?= =?utf-8?B?NkdvUzhlYzNhNXlxRmVybHdvVzlVdVBzUndBK2tQWWkvaWxuRm90SUFncHd4?= =?utf-8?B?NERoZkNuNGRMNWFEbSt6NUFCMWJyTVhZYW1HYjRZNlNTNXg2aWNWUk0xZ0pH?= =?utf-8?Q?LAAa2y4V4QSzpBamAw?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 9e141dcc-bcb6-48c3-885e-08df12074795 X-MS-Exchange-CrossTenant-AuthSource: IA0PR12MB8374.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Sep 2026 02:24:18.5960 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: wgsqaK9blfXpEKBITE3Yv3YykxiOd7N2lO5NWEWmuN3FouKxbmyLlw1/K5q5Sxux X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS0PR12MB6486 folio_change_private() should be used along with folio_attach_private() and folio_detach_private(), where adding and remove ->private content requires folio refcount change. add_hugetlb_folio() simply sets folio->private to NULL without refcount manipulation. Change it to direct assignment to avoid semantic confusion. It prepares for a future commit that remove PG_private. No functional change intended. Assisted-by: LLM To: Muchun Song To: Oscar Salvador To: Andrew Morton Cc: David Hildenbrand Cc: linux-mm@kvack.org Cc: linux-kernel@vger.kernel.org Acked-by: Usama Arif Reviewed-by: Gregory Price (Meta) Signed-off-by: Zi Yan Acked-by: David Hildenbrand (Arm) Reviewed-by: Muchun Song --- mm/hugetlb.c | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/mm/hugetlb.c b/mm/hugetlb.c index d3a0650ff6905..8d551cdaef9db 100644 --- a/mm/hugetlb.c +++ b/mm/hugetlb.c @@ -1446,11 +1446,8 @@ void add_hugetlb_folio(struct hstate *h, struct foli= o *folio, } =20 __folio_set_hugetlb(folio); - folio_change_private(folio, NULL); - /* - * We have to set hugetlb_vmemmap_optimized again as above - * folio_change_private(folio, NULL) cleared it. - */ + /* Clear all folio->private flags except hugetlb_vmemmap_optimized. */ + folio->private =3D NULL; folio_set_hugetlb_vmemmap_optimized(folio); =20 arch_clear_hugetlb_flags(folio); --=20 2.53.0 From nobody Fri Sep 25 11:05:58 2026 Received: from SN4PR2101CU001.outbound.protection.outlook.com (mail-southcentralusazon11012053.outbound.protection.outlook.com [40.93.195.53]) (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 9F22E31AAA3 for ; Mon, 14 Sep 2026 02:24:38 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.93.195.53 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789352684; cv=fail; b=P1Ec/6q2ILU9g8nEKiT4htoB+lgP++Dq9wpN2jLoxNaBhWAGjsG/iSpvN+enXnQhncy2+RI5Y1vGwgZ2gMmNzJF7YY65CYG8CVGtYsGo1BbPzVPv56D/6aJ4fL3Tha688eLOIORCVkoaG8wr/ObWeFQ7R40wlk1ydnFZxahaYsg= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789352684; c=relaxed/simple; bh=X9JrdBCY9WMRUyPUR5SWNLB3FAHLKi2a6JJSUoy5s+A=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=XiNZIM32QF0LIMbGzifPXcnznmLbEMU/PMaekTwVW5+IFKgAcorBlTT4Y/W4VJKYXdpHa8I90dMXli9wc3J5EwPYOB972BVhTTUiug0cJZ9jedfx1KXshSemP+Z8D7ev5bbuzsddx5l/R09AGvxyn1iXNDbPHrzzXylTWue6xgU= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com; spf=fail smtp.mailfrom=nvidia.com; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b=g38Bk7h/; arc=fail smtp.client-ip=40.93.195.53 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=nvidia.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b="g38Bk7h/" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=pgp73E2sj2Hv8jbKvCB3wBmyHiHwJEmDetP+5PkqYMUR9Fk5EIU7G/GdlXqLO+5QGtQzUrnUfFFsqTGdeP2qrqx/pj2GUHD8AT27gnX3HfnIn+JE83xhoweoUsrUNw8ziOfME1gmdcE4O++04MSj5Pe6GiwRJLYjTxFav/uVsy/XWzDCEQ+BH+hAqQKH3yoEeWhQD5T6wZ+vM7+BZhqCQ/KcANKQlhl+8ptifrCbVeoQkm8RuuNiayeFT45d9uNw+0+/Gb+b9xQP/NdXD40x7Delvci1dCONWG8VZEdoVe8nCDMGTc8FF/EG/ZG0iQkzMBztn3WiijlaqjFdpJrFfw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=HasRKPn3UDqP5j5UF+LW8uyeu9a77x8SVglJqgdfW8M=; b=UitOy4NiMyJ5pSoAq1cOwAV84ygZY+PUivIk2AFcKfb4H2bpE+sh3dwqbFaffNYAHSVz2evzM5TL8ANwzqr1UkKas0iacVDNZgv22698bCrpocMWtAIdx1Z1BePsJg0aVm1ZtK/WDvFuzwd/X8d5gdgNjQdamNK9hzAxWb1cJp5c2N28JfjqHRk/f9LT0ybXvPYxkH7aAx9ox+J1Si9aFMmbfSPesFitE7X+FQ6X0oJZYo8qgU/uVXP6idcxlTh9sj+FOOh3uNNGyQeEbBKzoJaHE+qVo4vhZaA4GBSeXIH94RFe11RMl18u90w2WBd4HUc9AOwaQJxGBaLxOI2IWA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nvidia.com; dmarc=pass action=none header.from=nvidia.com; dkim=pass header.d=nvidia.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=HasRKPn3UDqP5j5UF+LW8uyeu9a77x8SVglJqgdfW8M=; b=g38Bk7h/2nsGglUO9xeMYGgeizJzm5ah0Di5VUmdcxYfq2dBlujfcuV5ZwwG93JCLbPQPbRYKBW+KetYJEOTmaVeosWdZCmuAsG6COLF43C95FJJfCpBaniiwn8zq32GKOzle5XTqsk4Z9gS44zMdodhQghVomU1zVQDtEiDTetgRbLOGqEHWPmJUqhn9PocD/AaFAcchRyeU9fTLMc1lAu0ILIkkOyV21zy5wFRiO/IN0Fano5tc+UgCGBXgcNDsF5FD6oHcN4r/KLns3oBKBmMIa/GT6dYRv5lq8oLFArzxcwpTLm6HRFFjchjpZFOmwflfFj2TihPXQ7LDRUWRA== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nvidia.com; Received: from IA0PR12MB8374.namprd12.prod.outlook.com (2603:10b6:208:40e::7) by DS0PR12MB6486.namprd12.prod.outlook.com (2603:10b6:8:c5::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.406.12; Mon, 14 Sep 2026 02:24:19 +0000 Received: from IA0PR12MB8374.namprd12.prod.outlook.com ([fe80::d85f:4c87:ae84:3f16]) by IA0PR12MB8374.namprd12.prod.outlook.com ([fe80::d85f:4c87:ae84:3f16%5]) with mapi id 15.21.0406.007; Mon, 14 Sep 2026 02:24:19 +0000 From: Zi Yan Date: Sun, 13 Sep 2026 22:24:04 -0400 Subject: [PATCH v4 06/16] f2fs: stop using PG_private Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260913-remove-pg_private-v4-6-848550f7574e@nvidia.com> References: <20260913-remove-pg_private-v4-0-848550f7574e@nvidia.com> In-Reply-To: <20260913-remove-pg_private-v4-0-848550f7574e@nvidia.com> To: David Hildenbrand , "Matthew Wilcox (Oracle)" , Andrew Morton , Muchun Song , Lorenzo Stoakes , "Liam R. Howlett" , Vlastimil Babka , Mike Rapoport , Suren Baghdasaryan , Michal Hocko , Baolin Wang , Nico Pache , Ryan Roberts , Dev Jain , Barry Song , Lance Yang , Usama Arif , Gregory Price , Ying Huang , Alistair Popple , Johannes Weiner , Qi Zheng , Shakeel Butt , Kairui Song Cc: linux-mm@kvack.org, linux-kernel@vger.kernel.org, Zi Yan , Jaegeuk Kim , Chao Yu , linux-f2fs-devel@lists.sourceforge.net X-Mailer: b4 0.16.0 X-ClientProxiedBy: BL1P223CA0019.NAMP223.PROD.OUTLOOK.COM (2603:10b6:208:2c4::24) To IA0PR12MB8374.namprd12.prod.outlook.com (2603:10b6:208:40e::7) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: IA0PR12MB8374:EE_|DS0PR12MB6486:EE_ X-MS-Office365-Filtering-Correlation-Id: 66c02016-ad4e-4665-c382-08df12074840 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|23010399003|7416014|366016|376014|1800799024|22082099003|18002099003|921020|10067099003|56012099006|11063799006; X-Microsoft-Antispam-Message-Info: 6xaKpcsb+7Ggr65nmvoxRDgpxTIMa9AX/IXn9IPXGPfIyAQKocr9uNvmxMcACkfekf65Gtndru7w/M37mKzP338ZfYTjrXx41F37EKHKFBrgP4V38pD5tiItTUWHebqKl0A2pp3+jAXgsahSBAsTRISuC02Mnom2LZrrua1X8Zwq++LPapoDUhdoYYgP8o2WSLbJjEbE85RQBkMnW/tZwUsX4aCc2T0btH7lSlr7G7FcVe0lJYzor1yXRcyee2+TkQYCnCnd3ZlpKRdjYSuZGEeuNdYnI0Tu2PIoBUyues3P3gnNepo00LjvN+C9LLf8a7YU+TuGdsS3ltxiNfPTMIFWRtRkW+ND96JmPsWKh4MFDe3jJvLMC3ohVVY/fPsWenT1AKapYxc/CGUkACFJ/zSopHuPiKzFAApu7IRxfzZre71YyfmMSU7IW+3BAsSQss6oXh0ZK4yGNP4sh2FjD55zjNmLsb4xVuwsnMQRRwj89HrbrKhFu8SHpCdeJo1MFsP8Xhx6Th6ye/RgsUUPM2rE+sBBTHQtdode/PDL8M0Ax0dmlaQkHm/V2ZRCYX6L/iDrQLZQJwsa2gJB3tOnjlaHXqvj/1RU9FrhK9Cn10iNb07OhcrlR/dgObGXcl9IJBFh4N9DpjP4f59wS29dE+/I6dbIgNK9MMFGMaT2wp+YYRLJ9pYvA693DCIunWZWA2+ygME93Fw/0QBrpHF28w== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:IA0PR12MB8374.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(23010399003)(7416014)(366016)(376014)(1800799024)(22082099003)(18002099003)(921020)(10067099003)(56012099006)(11063799006);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?YU9YYjd1SDNIMXpScGtUVC9EdU54dElhVmdoc3ZVMU45bnV3bGMrWTNMM2Rx?= =?utf-8?B?cjdQWE1kZ0FCOTJxWTdQK1ZqN0RFYUVHeitHUkFKWVJXMHIreWo5S3pjcmY0?= =?utf-8?B?S2ZLcEVUc3I2NXM3NE1NL1p1c1ZuRVo3ekdyUWpxcDhyZXhoMVFFdlNJU1Vq?= =?utf-8?B?dWFrTmthTEJRWE84WjAwMk5iUXNlT3h2V3k3WmFQWXA2b1NxY2NpR3JrSHhR?= =?utf-8?B?NXF0aGw4NDhDSUxzMDVrZUhkOFZqWko0RmdPN0ZsdzJUTy82NnVQWnVHUzhQ?= =?utf-8?B?MWZRZXhqOCs5Y25Vb29hczdlem11S0VyN2MrMk5iSUpmOXhNNG1ma1BOMUVI?= =?utf-8?B?ZXUzamRSdnltVzRXU0R3UWxHREEzNlNQcFJxRGNSeTlydytKQlRyNjhGRTdZ?= =?utf-8?B?MVlzdkpSQ3lHVmhhRFlaaDNTU0cwM1dSdFExUHhTNTkycENUQ044MU5aeWsz?= =?utf-8?B?V2E3R282VEtzNm5oREJlb2x2UWZ5TjFvNnQ0RjN0MlJ3cEtYWW8wZGpuK1Nx?= =?utf-8?B?ZUNZS2kxZnQ1dTVjTHhLak1XZ0o4QUxrT1NOM2F3K0VvaWcyMllHUmtjMDNt?= =?utf-8?B?WkozNjk5OVBDdStjRjZ5VkZKb0dyVTZhL0lPVjhOMkVDWncvcmQyRi9IRlpH?= =?utf-8?B?WmM2U1lzVFlzLzJKOHl3dG1SWlhSM0hCcGV1SEs4SThGZnEzTWtDVDBTUXNZ?= =?utf-8?B?Z2MwdDBvelM0dHk0Q01XMC9GVi8xWG12UHZDM2llTUJjdjJCeGVZQ3ZocGRP?= =?utf-8?B?RTJES0g1bTRxVjdXbnlPZGc3MndqUHpKa0xkQkVEeTlzU1hDK2NuSW1nUWx2?= =?utf-8?B?VkladWNFL2VFT3NNNmhnS2hlbnVjNFd2YWJsUjY0c1JvR214aTl1UmVPbHB6?= =?utf-8?B?M1lCZ3JHSzdpNi8yVmZoMXA4THNHZ2ZPbCt6Ym5ncEkrcW1WTlJsYURna0NQ?= =?utf-8?B?VitaYUEzaXNsSTgzakhqMi9qT3Q5QVRJYkJpKzY2ZVV0OFQvbm1KS0dZUGlX?= =?utf-8?B?MzlORTVjalZrK1FRUG5BbzEvc0I0RUdwUTgrWHE5VmRnR1JYaGdMM0d2NHU1?= =?utf-8?B?eDR3cTF3Zno4aFJRbkRuZTVqaTdEUHdic0greHcxRlNPdmt0MDY5RlI5ejJm?= =?utf-8?B?Q3diU2JUM1RqbTZBNkFhWUhFVzZpRVhpSHBZZGNYZWpCVXUrK0dVUzdSbHIy?= =?utf-8?B?TlIzeVdiQkZxemZQWHRoMS81U1V1cXV2N3hRVEtCb05WTHR6RjNPcGZLNWlN?= =?utf-8?B?ZUExb2dQUXNCUDRFL1QvMTQ5YTRSdU1heGtJT2NwNGoyT090b2JRNDlxUWM1?= =?utf-8?B?QjI0c1A0citvZThac3h6V3EyZTNKeFhraEV4Y1NUVlJkdERrWEh3MEVrNEx4?= =?utf-8?B?d3JpcCs3cHcyTjhoNVlCU05mQ2wybjR1Sk00eWp1M2s2dWhIV1JJK1NadVFQ?= =?utf-8?B?K1FCWVRPbFBGRERsNytXWTY2Lys4SmlnZkV0SExDV0pHd05sMCtqdEg0eS9C?= =?utf-8?B?clpqTStYVVF5L0d5dlduYW9OQnMrNjFMazZsek5aMGQ4WjA1VmFnU0lIWlFM?= =?utf-8?B?d0tiQU8zTStNSnBaY0tpTnh2Q3ZLNm8reVVhV2ZrNi9vZkpGZnVjc2RXNUpt?= =?utf-8?B?RnBIK2w3N2h4MTgyZWlzSC94bDNCVFpGSitJanhBSk5wNnA1blpJY2xwamxz?= =?utf-8?B?d0tsRHhEUUpNaWU1SkQ1ZEJ6QmRTMDcxYU5lVGp5ZDlLTWFER2trVStwSFk0?= =?utf-8?B?Mk9ZZ1lDL29XWmFvZlZ0eGgrbGQ2U1Q2ZldyTHkvRVFaaU42T1UxbEtpcC9x?= =?utf-8?B?d2VVdVgycjg0bGFsUkxtTnNlMHlHY1MwSVc5WkJBOVhFaVBodkV1dUJrSFZp?= =?utf-8?B?NU1MWFFNQWtXUGc3Smh1STIzTXByMUMrYks0bEQwcmQ4cGdldURHOVpVZUxS?= =?utf-8?B?dEVGMytha29sWlhZVUorbXh6NTZFRkcrMVdXVGJyaUZ2ZUVSN0h6bURuVk1y?= =?utf-8?B?Y3NxMWNZWkExdlFrYmphZjljd0UyUGhxejRmNmxzNlpKMVB3NEJKOFZzVXIr?= =?utf-8?B?bFVSQjJGUTZsNHF1aVBzc2F6L3RCVUkwRm1jalY3SVpSTTJ2SmFFVE9MaldG?= =?utf-8?B?a3ZqVTgvSGVKWkdsTEFndkU1amdyT2pCRW14NEZFdnBFbGdqZWNuQjEyK1lX?= =?utf-8?B?aFgyZlMvcklFR0JHb2JPVEh2U2JKSHlKYWtyT21qcSttckx4aW80cTc0cEwy?= =?utf-8?B?SE5DSXZ2WFNzdGtqcmF5MndRZ0VZTG1nTXJnajNTRmNLd3QvUitUeVlGUTE0?= =?utf-8?Q?Xl9gqi+Fj4JiNsIQOd?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 66c02016-ad4e-4665-c382-08df12074840 X-MS-Exchange-CrossTenant-AuthSource: IA0PR12MB8374.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Sep 2026 02:24:19.7050 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: jbwsFzFzPyqTf+fHpyVZmiBojpPjl1DMt0nJVyjSaSoIIOthZ8VwvQjvhySIKTx3 X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS0PR12MB6486 f2fs sets its PAGE_PRIVATE_* flags in page->private and checking page->private !=3D NULL is equivalent to checking PG_private. Change PagePrivate() to page_private(). Meanwhile, in set_page_private_##name(), page->private is first set to 0/NULL before an PAGE_PRIVATE_* flag is set, but it can cause confusion when PG_private is removed and page->private !=3D NULL is used instead. Change it to initialize page->private to PAGE_PRIVATE_NOT_POINTER instead and retain the original semantics. It prepares for a future commit that removes PG_private. No functional change intended. Assisted-by: LLM To: Jaegeuk Kim To: Chao Yu Cc: linux-f2fs-devel@lists.sourceforge.net Cc: linux-kernel@vger.kernel.org Acked-by: Usama Arif Acked-by: Chao Yu Signed-off-by: Zi Yan Reviewed-by: David Hildenbrand (Arm) --- fs/f2fs/f2fs.h | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/fs/f2fs/f2fs.h b/fs/f2fs/f2fs.h index 9940a6cecf1a2..2f7ab5888b078 100644 --- a/fs/f2fs/f2fs.h +++ b/fs/f2fs/f2fs.h @@ -2691,7 +2691,7 @@ static inline bool folio_test_f2fs_##name(const struc= t folio *folio) \ } \ static inline bool page_private_##name(struct page *page) \ { \ - return PagePrivate(page) && \ + return page_private(page) && \ test_bit(PAGE_PRIVATE_NOT_POINTER, &page_private(page)) && \ test_bit(PAGE_PRIVATE_##flagname, &page_private(page)); \ } @@ -2710,9 +2710,9 @@ static inline void folio_set_f2fs_##name(struct folio= *folio) \ } \ static inline void set_page_private_##name(struct page *page) \ { \ - if (!PagePrivate(page)) \ - attach_page_private(page, (void *)0); \ - set_bit(PAGE_PRIVATE_NOT_POINTER, &page_private(page)); \ + if (!page_private(page)) \ + attach_page_private(page, \ + (void *)BIT(PAGE_PRIVATE_NOT_POINTER)); \ set_bit(PAGE_PRIVATE_##flagname, &page_private(page)); \ } =20 --=20 2.53.0 From nobody Fri Sep 25 11:05:58 2026 Received: from BYAPR05CU005.outbound.protection.outlook.com (mail-westusazon11010031.outbound.protection.outlook.com [52.101.85.31]) (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 E9CB7319601 for ; Mon, 14 Sep 2026 02:24:37 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.85.31 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789352685; cv=fail; b=TqEYjgLWPEFU9wZJD6g1pK7Hixi4cnXSArIRFrwg9vQYY677ZGXAzAhHghgfnqMECQnPIu8UbTSFtKdrc+fRtGs5rc+C88bRyZTQzhomhA/br5vSPeRmYCLnUGMnNNqcnOF2r5IooS5FW0zwLvxn6YVEM3E4Y4zRQKTV64sJS2E= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789352685; c=relaxed/simple; bh=tcubcgE9SIPpXF+UI3w6egkHYa+A5zPe+n5JMu0rUJQ=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=W7JJBEhrhCU1zcjJ/7Yz6oIcz2agokfhCKsPmqEnFeJDO9wgseh75TSRG1A0vXAzeTOvu9kPDgt/YDuDc75fBeMbtPM5cHLqjvM9qfDgFfshd5BTv0p5WZfkVDDiYHqBF3eDfhCNOAzG8+dhDrMNr/rzqeYkcFS1QYGXv6FqfuY= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com; spf=fail smtp.mailfrom=nvidia.com; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b=ZeGN1PiF; arc=fail smtp.client-ip=52.101.85.31 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=nvidia.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b="ZeGN1PiF" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=HyeUyT24uaoa6vhNMRnp19Q+DjDQYkx8+vKwcJyXEIOjzOjIWXxvSJq0scmoWoo40n224tcSsYvu282BQF0y6g5lqYQ8cOZrl/+DX4wdXDU8zt8HYn39BtlVa+K+54Xuuh9vquqlH0ncHakQ9d1vNAbztxuGF0Py6IAfB2TRTG87gMYcvv1qN8tsXArUy3nrJXVPdcBFYDddAxuRAzkrzMN+GdDI5K/KKYQwjkFRx5QWY6rP3fLUis4wzUhBh0Hhk1WJHDPcgJPjEFjk3H4KdcGvf2Jqqfw4gBwzyYHVHHSuGBRe+c+SpuQeueii4veyJL3msLCuqoM5234wDubX3A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=KmJueOys4162YTP727zQmwKPUht4GWCKnV6YwC01lf4=; b=x1OstSI4vBfoh86AUdUo4MSY2UKlX47pNESipU/y8c3Ord6w38us0EoFaXhj1JO2PuuEH/8phmztqxwqvQKl19Qbg6XKScMfTaRZmceh3ddu3ym/4Sq3PCpOhx9SEesT3a7EB/V9BVBdThvzSwQU/IvfAcmslIJLY7EjODoA4WHDON+NxzVB6eHOF9g42bMPjwhiGNuppFeY2b98+rRu3oNuNmMbqRbVUZYvUKAGIhLp77jMjF/GSEUyCG2GrvhMsbyp+G1Kvz3rKgrXiRnK+occ1g1C4A0LWdo3+3l+XOr6LjOoiGBv04wOoybXvnfhmlltzqHh66InQzNsGPIyrg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nvidia.com; dmarc=pass action=none header.from=nvidia.com; dkim=pass header.d=nvidia.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=KmJueOys4162YTP727zQmwKPUht4GWCKnV6YwC01lf4=; b=ZeGN1PiF9BgyQCXrKhajxbSwPIijlIF6f0+kaqX5Ahm05kOf7WJdDtiyNG4b7VqQ3lrjbnTbdpUV6C7/5g1XkfnP+2kyQ9ZjjWOh+XkbNYLn2m2gpilbu7BwXNvKTOrbld0NHXx9ddBpN25ejJbT77GFUoZDmQfjgI2IV1rVrwFG4DtLd8eZjHTRKix8AtjmWv7mh2e+gqRd6njTsc52u46T6mrM1CKPUqtqS5c/eCbQ8htK2TWwkHp/4g8Q2HgDwrpa3xz1Ufxd68P9XcPhEaaMPKJPqI/OTZOZ0bMLhClnUBtw1G8c0Num1HY1EMVXPBjZYE2/aaHmRgu1oRmNPg== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nvidia.com; Received: from IA0PR12MB8374.namprd12.prod.outlook.com (2603:10b6:208:40e::7) by DS0PR12MB6486.namprd12.prod.outlook.com (2603:10b6:8:c5::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.406.12; Mon, 14 Sep 2026 02:24:20 +0000 Received: from IA0PR12MB8374.namprd12.prod.outlook.com ([fe80::d85f:4c87:ae84:3f16]) by IA0PR12MB8374.namprd12.prod.outlook.com ([fe80::d85f:4c87:ae84:3f16%5]) with mapi id 15.21.0406.007; Mon, 14 Sep 2026 02:24:20 +0000 From: Zi Yan Date: Sun, 13 Sep 2026 22:24:05 -0400 Subject: [PATCH v4 07/16] f2fs: convert the ->private flag helpers to folio-only Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260913-remove-pg_private-v4-7-848550f7574e@nvidia.com> References: <20260913-remove-pg_private-v4-0-848550f7574e@nvidia.com> In-Reply-To: <20260913-remove-pg_private-v4-0-848550f7574e@nvidia.com> To: David Hildenbrand , "Matthew Wilcox (Oracle)" , Andrew Morton , Muchun Song , Lorenzo Stoakes , "Liam R. Howlett" , Vlastimil Babka , Mike Rapoport , Suren Baghdasaryan , Michal Hocko , Baolin Wang , Nico Pache , Ryan Roberts , Dev Jain , Barry Song , Lance Yang , Usama Arif , Gregory Price , Ying Huang , Alistair Popple , Johannes Weiner , Qi Zheng , Shakeel Butt , Kairui Song Cc: linux-mm@kvack.org, linux-kernel@vger.kernel.org, Zi Yan , Tal Zussman , Jaegeuk Kim , Chao Yu , linux-f2fs-devel@lists.sourceforge.net X-Mailer: b4 0.16.0 X-ClientProxiedBy: MN0PR05CA0025.namprd05.prod.outlook.com (2603:10b6:208:52c::13) To IA0PR12MB8374.namprd12.prod.outlook.com (2603:10b6:208:40e::7) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: IA0PR12MB8374:EE_|DS0PR12MB6486:EE_ X-MS-Office365-Filtering-Correlation-Id: 3c12b514-a3ba-4eea-979a-08df120748b3 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|23010399003|7416014|366016|376014|1800799024|22082099003|18002099003|921020|10067099003|56012099006|11063799006; X-Microsoft-Antispam-Message-Info: cpMkaUZNJ466GAw45De0V+gsLJuf5jEyB0VOkKILYIA/a5D5sYlllWFG/PwTfSkdFAMxNc0GibU1ryLsZcaw3VM+AoEnHYhB1w3gU13NPn6jxJ2FncUtUB5qstaMJXxfvXybdb/LIvMWx52/dfomvfBefuauSFYzF+j3SWMg0sYE+p8xXQlCawA76fmKk301Hbetso05ZDz1QuhFxDNN0V+wn6paE2ZgAIkypLYYqwqgjI0TcGleyQjlVTOAPKBg56IWYjYmT2GMpO0aqthDB2IUquzBf/uJMNgnp5kt143dC8Ynw/4edjTppQZrARBH0tRbMNX696NZQqQZjQo4MMPFTWID7UUcpH1jYjhYke0mjM9HJsZ7PcuygvwiMZJpKiQBO6ty+Zz5OWY5k+jCm5jO9EqZkK32wK3G2KubHulgSh+FOCOTG5pVNjHOGU/wiCZ+nLKuvufYuGu5t0Mcj5lADiEljyxdfy4lDA9dwsBj0wZxQW5XstGJkuzX+BTB5+pbvQ76exl3vr+O++AiU/cTQNghs+be3EDB7+yqarfZrXYZ86GeInKtxGd8EoZSSfYvfBuINnOoIjkpjN675xsIAGm9Z3M6piUE6VmmR8rPl5NBIy/lWOHkxLvzMWaX1sgW6nobcbHxWDDGdatG9X7G0P0TFyVMycd1VWrgaBQolThpv2rPY7QeL1fdz6G0oFUCw0QWt8fW1i6cGzChsQ== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:IA0PR12MB8374.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(23010399003)(7416014)(366016)(376014)(1800799024)(22082099003)(18002099003)(921020)(10067099003)(56012099006)(11063799006);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?RjBKNm1FSTlyZ2JBNG5xSGt0VlZyODdxMjlSUHZCbVRUTCt1Y2JoN0hidXhI?= =?utf-8?B?aWQ0cUpUdzBiNXNJN2NNMHgvU3V6Mk9BdXBVZjBRWWExNGpKb2pFc0hMejVV?= =?utf-8?B?dXpzcm5nZ3BaY1BxVFZQdDBmS3pxSm1oZ1RmbnBsL1JNU3k3THAwWTc1emNq?= =?utf-8?B?TjdSV3V4RzB2aURqQkhpcWhIUkhoS2UydnRDVmNHR1JPQUFaYjdaUVZad1gy?= =?utf-8?B?cWZEMEtwcTE0UURpMm0xMTVGQlpaYzR5ZmtLRUZkb1QyYVNJbTQ2S09VbnFz?= =?utf-8?B?aTFSaUhoV1pSdlp3RUlxRDhLalU4bWVFVkxEOVFDMDhFblNJT01nblpHK3Nq?= =?utf-8?B?MVdFa0xWSlNDS2M4L25JWFJPQXk3M1R1OE5meHdpVkxpd1JndXgrUEpTR1Fz?= =?utf-8?B?UmdZaTFNYitLN014ZWdFaUdLTWtlWjhYckJ1M29DOEZwK2wzTDIwMUNqc3BV?= =?utf-8?B?Zlk3bGhqYlA2dFEzOHhWQ3V5N1ZXRllTK0RaL2Ewc2FJeFByR2YxZFR2RFVI?= =?utf-8?B?aWRyOUpEK1dGL3FKbFl3dEIvSHdUVVFsNklrbUtYYWIzZ3NrbXBXclE4SnJ5?= =?utf-8?B?cDMrVEcxOUtqNlEyWmszcjdBTk84blNNT3E3MFJRcE83aGZ4RVNmY0dKRzN5?= =?utf-8?B?WXhJekhQMFpRMWQrc2haeFVqbk1XaHR4VHRXOWpxTlBKNWtTMlJyVGMwVEdT?= =?utf-8?B?bCt1dUtsa003S3JyV2tWL3MxUU5ldktlRGt3VytxRkVtWHNSUDJqV3RhMndN?= =?utf-8?B?Z1laNG9hYUpGWTlDVWR2QWFOYWI2c2tmTFh5ckltajRvTDNmTCt4K3FSNWpE?= =?utf-8?B?ZVJRRXkwem5HRVl3a2Q1QUlqeG1FTFNsa2daS3ZuMUJXYnk2ckV4M3M5MzZ2?= =?utf-8?B?QVVwQllhbmZ3SFJmOVpvSEh0QWZqQVVNcXJiMHRqUmczV0JxWjhGMXlPNDda?= =?utf-8?B?RXhTWXFYdkQzZkJ5SFhsRHdOOWFiVnpHK3k3cnpwYjJLSXJpTXhBMlpDM0dM?= =?utf-8?B?TTlmdDJTeVV4UldjT0QwRGxjYjFTZkxXVGJXaERxKzRHYyswbElDdi9XSzVR?= =?utf-8?B?SktzY1N3b0FjK3pYbks1d3hYOG1nNzNKZ2hWSGFYaGFNbThnR3BXU3YrMjdF?= =?utf-8?B?VWNFT0RvcEVqS2xOQXptaURYUWhJMnMvTjJlTWxZUWswdVZvbFhpbzZGaGYw?= =?utf-8?B?eW05aHoxRjNoQnV3VlVuTUlleFQzM0kva1Vmd2EvVWhTTURIa1d3ODVBRzAw?= =?utf-8?B?QVBGS1owQ3JKV1A3a0JCNS9KR2s1aC8rNEtIUXZ2enl1a1owUGhILzZON3hz?= =?utf-8?B?dzQxYmhRbCs4RHlQUDRRZWlxemliMXcybGNzSmtoNGlDRmVWcnlQWUlYLzdI?= =?utf-8?B?SnkxRjhuTlVCdDZncWdHY29JMXhZVk9WMjhLZlk3UCtidU9oY1NiNnhESEJP?= =?utf-8?B?NXVyQThGYXZ4MGs3dUNzTzFRK0lJc2xkTXYyZ0pjL3hkM3pFdHBtM0Vwenpi?= =?utf-8?B?ZERjU3lmUGFZcTlINkFmWEZjMDlHVDExVC9LaEtoK09MbWFyL3pEdmFKTitO?= =?utf-8?B?bkN1aWdNWjFoRi9hSTVkRHc5QzVxQmV4UmZKZjV1MG5qTkZjc05vQjlPdWVR?= =?utf-8?B?OHBBc2VKQ254TmE2REVvRFhNN3Z3TC8yVmpUTXMwcGE1TEtuVzUwQ3RpOVo1?= =?utf-8?B?MmFBV2pIUzVKazM2Y3lKTENBaTQ1L29BWUlNWFNxQnRVYUYzaDBhQ01pTm50?= =?utf-8?B?bGxwdlFrbytzeUhnOThwK0dCSklqZGNUSFJDZVRWYVRzYjlsdVBlZGFMV1ZD?= =?utf-8?B?OTdCc0NBZksrZVJUNWd5Z21JQ3htaENnVmVaUWQ1NGl5SVBWRUNDMjdjRjVs?= =?utf-8?B?SjNXNk9Xa0lUK1czRmdySjk0L1kwUlI4UG0xVTNoZnhZTEs1MXRGMkZXVkU1?= =?utf-8?B?bnZ3V0V2QkIrU0xnWkFhS0xPYU5ySEFYM1B5bjRYdCt3TzFIOXJnMXROR21y?= =?utf-8?B?UVZ4cE5ZRXhmNEFpNjFKenlYTEFEMjVaaTlHaUkwdHgwUS9wSHppeUI2K0NX?= =?utf-8?B?ckhJZStpdzhhbG9kUEJWOEE4WU9TcS8wUHJQVlhudmcxZ3Fha1JLT0VnSzZ3?= =?utf-8?B?bVM3cGpzeGpDd2k5dHpPY1g0R2xQTXM3eVRJcEZkd2pLc1VOY1BnM0NNUGY2?= =?utf-8?B?ZlJwOFRkekZUWDdrWkRuSjZvWkd5dWZZVHg4T1hmQ3ZsUGNOSDROZ1A3dEQy?= =?utf-8?B?VDlPcG5kS1ZLazN6eE53VWtuKzlUQnFqRk9PVHhZOTBLUUN0UEhiUnJyWEtN?= =?utf-8?Q?SyYbQVsUglvuogXEUo?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 3c12b514-a3ba-4eea-979a-08df120748b3 X-MS-Exchange-CrossTenant-AuthSource: IA0PR12MB8374.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Sep 2026 02:24:20.4722 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: HKsvlYwX6onBWxi3rfWuJ7rRMzPsLuzNJldGgPOSrAsNOodFbjLLiFWqx7+naphA X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS0PR12MB6486 page-based ->private flag helpers are used in the compression path, where large folios are not enabled. They can use folio versions with page_folio(). The two remaining users in data.c and segment.c can use fio->folio instead of fio->page (two are in a union). Drop page-based helpers after the conversion and rename PAGE_PRIVATE_{GET,SET,CLEAR}_FUNC() and the PAGE_PRIVATE_* flags to F2FS_FOLIO_PRIVATE_* to match. Convert the folio/page union from f2fs_io_info union to folio only, since no page user is left. The folio helpers do a plain read-modify-write where the page ones used set_bit()/clear_bit(). It is fine because the converted code either holds folio lock or, in f2fs_compress_write_end_io(), matches what the non-compressed code does in f2fs_write_end_bio(). Assisted-by: LLM Suggested-by: Tal Zussman Co-developed-by: David Hildenbrand (Arm) Signed-off-by: David Hildenbrand (Arm) To: Jaegeuk Kim To: Chao Yu Cc: linux-f2fs-devel@lists.sourceforge.net Cc: linux-kernel@vger.kernel.org Reviewed-by: Tal Zussman Signed-off-by: Zi Yan --- fs/f2fs/compress.c | 35 ++++++++++++------- fs/f2fs/data.c | 2 +- fs/f2fs/f2fs.h | 99 +++++++++++++++++++++-----------------------------= ---- fs/f2fs/segment.c | 2 +- 4 files changed, 63 insertions(+), 75 deletions(-) diff --git a/fs/f2fs/compress.c b/fs/f2fs/compress.c index ce88092d9ce26..09d9b8d0fdcce 100644 --- a/fs/f2fs/compress.c +++ b/fs/f2fs/compress.c @@ -1064,13 +1064,15 @@ static void cancel_cluster_writeback(struct compres= s_ctx *cc, =20 /* Cancel writeback and stay locked. */ for (i =3D 0; i < cc->cluster_size; i++) { + struct folio *folio =3D page_folio(cc->rpages[i]); + if (i < submitted) { inode_inc_dirty_pages(cc->inode); - lock_page(cc->rpages[i]); + folio_lock(folio); } - clear_page_private_gcing(cc->rpages[i]); - if (folio_test_writeback(page_folio(cc->rpages[i]))) - end_page_writeback(cc->rpages[i]); + folio_clear_f2fs_gcing(folio); + if (folio_test_writeback(folio)) + folio_end_writeback(folio); } } =20 @@ -1078,11 +1080,15 @@ static void set_cluster_dirty(struct compress_ctx *= cc) { int i; =20 - for (i =3D 0; i < cc->cluster_size; i++) - if (cc->rpages[i]) { - set_page_dirty(cc->rpages[i]); - set_page_private_gcing(cc->rpages[i]); - } + for (i =3D 0; i < cc->cluster_size; i++) { + struct folio *folio; + + if (!cc->rpages[i]) + continue; + folio =3D page_folio(cc->rpages[i]); + folio_mark_dirty(folio); + folio_set_f2fs_gcing(folio); + } } =20 static int prepare_compress_overwrite(struct compress_ctx *cc, @@ -1281,7 +1287,7 @@ static int f2fs_write_compressed_pages(struct compres= s_ctx *cc, .op =3D REQ_OP_WRITE, .op_flags =3D wbc_to_write_flags(wbc), .old_blkaddr =3D NEW_ADDR, - .page =3D NULL, + .folio =3D NULL, .encrypted_page =3D NULL, .compressed_page =3D NULL, .io_type =3D io_type, @@ -1370,7 +1376,7 @@ static int f2fs_write_compressed_pages(struct compres= s_ctx *cc, block_t blkaddr; =20 blkaddr =3D f2fs_data_blkaddr(&dn); - fio.page =3D cc->rpages[i]; + fio.folio =3D page_folio(cc->rpages[i]); fio.old_blkaddr =3D blkaddr; =20 /* cluster header */ @@ -1476,9 +1482,12 @@ void f2fs_compress_write_end_io(struct bio *bio, str= uct folio *folio) } =20 for (i =3D 0; i < cic->nr_rpages; i++) { + struct folio *rfolio; + WARN_ON(!cic->rpages[i]); - clear_page_private_gcing(cic->rpages[i]); - end_page_writeback(cic->rpages[i]); + rfolio =3D page_folio(cic->rpages[i]); + folio_clear_f2fs_gcing(rfolio); + folio_end_writeback(rfolio); } =20 page_array_free(sbi, cic->rpages, cic->nr_rpages); diff --git a/fs/f2fs/data.c b/fs/f2fs/data.c index 21f396ebe22ca..ca8232a9095f8 100644 --- a/fs/f2fs/data.c +++ b/fs/f2fs/data.c @@ -2923,7 +2923,7 @@ bool f2fs_should_update_outplace(struct inode *inode,= struct f2fs_io_info *fio) return true; =20 if (fio) { - if (page_private_gcing(fio->page)) + if (folio_test_f2fs_gcing(fio->folio)) return true; if (unlikely(is_sbi_flag_set(sbi, SBI_CP_DISABLED) && f2fs_is_checkpointed_data(sbi, fio->old_blkaddr))) diff --git a/fs/f2fs/f2fs.h b/fs/f2fs/f2fs.h index 2f7ab5888b078..85937de3d7016 100644 --- a/fs/f2fs/f2fs.h +++ b/fs/f2fs/f2fs.h @@ -1357,10 +1357,7 @@ struct f2fs_io_info { blk_opf_t op_flags; /* req_flag_bits */ block_t new_blkaddr; /* new block address to be written */ block_t old_blkaddr; /* old block address before Cow */ - union { - struct page *page; /* page to be written */ - struct folio *folio; - }; + struct folio *folio; /* folio to be written */ struct page *encrypted_page; /* encrypted page */ struct page *compressed_page; /* compressed page */ struct list_head list; /* serialize IOs */ @@ -1613,27 +1610,27 @@ static inline void f2fs_set_bit(unsigned int nr, ch= ar *addr); static inline void f2fs_clear_bit(unsigned int nr, char *addr); =20 /* - * Layout of f2fs page.private: + * Layout of f2fs folio->private: * * Layout A: lowest bit should be 1 * | bit0 =3D 1 | bit1 | bit2 | ... | bit MAX | private data .... | - * bit 0 PAGE_PRIVATE_NOT_POINTER - * bit 1 PAGE_PRIVATE_ONGOING_MIGRATION - * bit 2 PAGE_PRIVATE_INLINE_INODE - * bit 3 PAGE_PRIVATE_REF_RESOURCE - * bit 4 PAGE_PRIVATE_ATOMIC_WRITE + * bit 0 F2FS_FOLIO_PRIVATE_NOT_POINTER + * bit 1 F2FS_FOLIO_PRIVATE_ONGOING_MIGRATION + * bit 2 F2FS_FOLIO_PRIVATE_INLINE_INODE + * bit 3 F2FS_FOLIO_PRIVATE_REF_RESOURCE + * bit 4 F2FS_FOLIO_PRIVATE_ATOMIC_WRITE * bit 5- f2fs private data * * Layout B: lowest bit should be 0 - * page.private is a wrapped pointer. + * folio->private is a wrapped pointer. */ enum { - PAGE_PRIVATE_NOT_POINTER, /* private contains non-pointer data */ - PAGE_PRIVATE_ONGOING_MIGRATION, /* data page which is on-going migrating= */ - PAGE_PRIVATE_INLINE_INODE, /* inode page contains inline data */ - PAGE_PRIVATE_REF_RESOURCE, /* dirty page has referenced resources */ - PAGE_PRIVATE_ATOMIC_WRITE, /* data page from atomic write path */ - PAGE_PRIVATE_MAX + F2FS_FOLIO_PRIVATE_NOT_POINTER, /* private contains non-pointer data */ + F2FS_FOLIO_PRIVATE_ONGOING_MIGRATION, /* data page which is on-going mig= rating */ + F2FS_FOLIO_PRIVATE_INLINE_INODE, /* inode page contains inline data */ + F2FS_FOLIO_PRIVATE_REF_RESOURCE, /* dirty page has referenced resources = */ + F2FS_FOLIO_PRIVATE_ATOMIC_WRITE, /* data page from atomic write path */ + F2FS_FOLIO_PRIVATE_MAX }; =20 /* For compression */ @@ -2681,86 +2678,68 @@ static inline int inc_valid_block_count(struct f2fs= _sb_info *sbi, return -ENOSPC; } =20 -#define PAGE_PRIVATE_GET_FUNC(name, flagname) \ +#define F2FS_FOLIO_PRIVATE_GET_FUNC(name, flagname) \ static inline bool folio_test_f2fs_##name(const struct folio *folio) \ { \ unsigned long priv =3D (unsigned long)folio->private; \ - unsigned long v =3D (1UL << PAGE_PRIVATE_NOT_POINTER) | \ - (1UL << PAGE_PRIVATE_##flagname); \ + unsigned long v =3D (1UL << F2FS_FOLIO_PRIVATE_NOT_POINTER) | \ + (1UL << F2FS_FOLIO_PRIVATE_##flagname); \ return (priv & v) =3D=3D v; \ -} \ -static inline bool page_private_##name(struct page *page) \ -{ \ - return page_private(page) && \ - test_bit(PAGE_PRIVATE_NOT_POINTER, &page_private(page)) && \ - test_bit(PAGE_PRIVATE_##flagname, &page_private(page)); \ } =20 -#define PAGE_PRIVATE_SET_FUNC(name, flagname) \ +#define F2FS_FOLIO_PRIVATE_SET_FUNC(name, flagname) \ static inline void folio_set_f2fs_##name(struct folio *folio) \ { \ - unsigned long v =3D (1UL << PAGE_PRIVATE_NOT_POINTER) | \ - (1UL << PAGE_PRIVATE_##flagname); \ + unsigned long v =3D (1UL << F2FS_FOLIO_PRIVATE_NOT_POINTER) | \ + (1UL << F2FS_FOLIO_PRIVATE_##flagname); \ if (!folio->private) \ folio_attach_private(folio, (void *)v); \ else { \ v |=3D (unsigned long)folio->private; \ folio->private =3D (void *)v; \ } \ -} \ -static inline void set_page_private_##name(struct page *page) \ -{ \ - if (!page_private(page)) \ - attach_page_private(page, \ - (void *)BIT(PAGE_PRIVATE_NOT_POINTER)); \ - set_bit(PAGE_PRIVATE_##flagname, &page_private(page)); \ } =20 -#define PAGE_PRIVATE_CLEAR_FUNC(name, flagname) \ +#define F2FS_FOLIO_PRIVATE_CLEAR_FUNC(name, flagname) \ static inline void folio_clear_f2fs_##name(struct folio *folio) \ { \ unsigned long v =3D (unsigned long)folio->private; \ \ - v &=3D ~(1UL << PAGE_PRIVATE_##flagname); \ - if (v =3D=3D (1UL << PAGE_PRIVATE_NOT_POINTER)) \ + v &=3D ~(1UL << F2FS_FOLIO_PRIVATE_##flagname); \ + if (v =3D=3D (1UL << F2FS_FOLIO_PRIVATE_NOT_POINTER)) \ folio_detach_private(folio); \ else \ folio->private =3D (void *)v; \ -} \ -static inline void clear_page_private_##name(struct page *page) \ -{ \ - clear_bit(PAGE_PRIVATE_##flagname, &page_private(page)); \ - if (page_private(page) =3D=3D BIT(PAGE_PRIVATE_NOT_POINTER)) \ - detach_page_private(page); \ } =20 -PAGE_PRIVATE_GET_FUNC(nonpointer, NOT_POINTER); -PAGE_PRIVATE_GET_FUNC(inline, INLINE_INODE); -PAGE_PRIVATE_GET_FUNC(gcing, ONGOING_MIGRATION); -PAGE_PRIVATE_GET_FUNC(atomic, ATOMIC_WRITE); +F2FS_FOLIO_PRIVATE_GET_FUNC(nonpointer, NOT_POINTER); +F2FS_FOLIO_PRIVATE_GET_FUNC(inline, INLINE_INODE); +F2FS_FOLIO_PRIVATE_GET_FUNC(gcing, ONGOING_MIGRATION); +F2FS_FOLIO_PRIVATE_GET_FUNC(atomic, ATOMIC_WRITE); =20 -PAGE_PRIVATE_SET_FUNC(reference, REF_RESOURCE); -PAGE_PRIVATE_SET_FUNC(inline, INLINE_INODE); -PAGE_PRIVATE_SET_FUNC(gcing, ONGOING_MIGRATION); -PAGE_PRIVATE_SET_FUNC(atomic, ATOMIC_WRITE); +F2FS_FOLIO_PRIVATE_SET_FUNC(reference, REF_RESOURCE); +F2FS_FOLIO_PRIVATE_SET_FUNC(inline, INLINE_INODE); +F2FS_FOLIO_PRIVATE_SET_FUNC(gcing, ONGOING_MIGRATION); +F2FS_FOLIO_PRIVATE_SET_FUNC(atomic, ATOMIC_WRITE); =20 -PAGE_PRIVATE_CLEAR_FUNC(reference, REF_RESOURCE); -PAGE_PRIVATE_CLEAR_FUNC(inline, INLINE_INODE); -PAGE_PRIVATE_CLEAR_FUNC(gcing, ONGOING_MIGRATION); -PAGE_PRIVATE_CLEAR_FUNC(atomic, ATOMIC_WRITE); +F2FS_FOLIO_PRIVATE_CLEAR_FUNC(reference, REF_RESOURCE); +F2FS_FOLIO_PRIVATE_CLEAR_FUNC(inline, INLINE_INODE); +F2FS_FOLIO_PRIVATE_CLEAR_FUNC(gcing, ONGOING_MIGRATION); +F2FS_FOLIO_PRIVATE_CLEAR_FUNC(atomic, ATOMIC_WRITE); =20 static inline unsigned long folio_get_f2fs_data(struct folio *folio) { unsigned long data =3D (unsigned long)folio->private; =20 - if (!test_bit(PAGE_PRIVATE_NOT_POINTER, &data)) + if (!test_bit(F2FS_FOLIO_PRIVATE_NOT_POINTER, &data)) return 0; - return data >> PAGE_PRIVATE_MAX; + return data >> F2FS_FOLIO_PRIVATE_MAX; } =20 static inline void folio_set_f2fs_data(struct folio *folio, unsigned long = data) { - data =3D (1UL << PAGE_PRIVATE_NOT_POINTER) | (data << PAGE_PRIVATE_MAX); + data =3D (1UL << F2FS_FOLIO_PRIVATE_NOT_POINTER) | + (data << F2FS_FOLIO_PRIVATE_MAX); =20 if (!folio_test_private(folio)) folio_attach_private(folio, (void *)data); diff --git a/fs/f2fs/segment.c b/fs/f2fs/segment.c index 63b712d3d599e..8c156e1fd37d0 100644 --- a/fs/f2fs/segment.c +++ b/fs/f2fs/segment.c @@ -3803,7 +3803,7 @@ static int __get_segment_type_6(struct f2fs_io_info *= fio) if (is_inode_flag_set(inode, FI_ALIGNED_WRITE)) return CURSEG_COLD_DATA_PINNED; =20 - if (page_private_gcing(fio->page)) { + if (folio_test_f2fs_gcing(fio->folio)) { if (fio->sbi->am.atgc_enabled && (fio->io_type =3D=3D FS_DATA_IO) && (fio->sbi->gc_mode !=3D GC_URGENT_HIGH) && --=20 2.53.0 From nobody Fri Sep 25 11:05:58 2026 Received: from DM5PR21CU001.outbound.protection.outlook.com (mail-centralusazon11011011.outbound.protection.outlook.com [52.101.62.11]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 55AD13242B8; Mon, 14 Sep 2026 02:24:39 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.62.11 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789352685; cv=fail; b=pMy7n3ipYuF1JfoGxOOfpwHwFJ/QlWzWmauFOV8CZPoD/iqaXztBzyFJJ83LG1O5NJMVXhAv6jlUBWuEPTsUVTDNfDBPXoD+tVgPZgBmnXM1n4LE0XxkqYKMwaOihV7rUEU5EzKzaKWxUYIP06r/vJ+TmYQfKSiaQ7L8gdb9LBQ= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789352685; c=relaxed/simple; bh=kD3cEqxI/VPgz7aIqtpKmXEcSDY1J8m5719wxmgu7jM=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=MtVkHhXLffwz9sXnru8DdawqoTirsZsmqRJW7Oa+9Lq+JJwRh2uzq0f8Bii79BQFwGxU38B+fxTgxhClA+M6WGlbmsAsJwO/rq81UXs/ARGA/Ysn6UTC+3sN7Wq8g4gYGhS28mS/wWDdzF0Hh21HGZsq/WBN/O9911DXgU/vQh4= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com; spf=fail smtp.mailfrom=nvidia.com; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b=RgvAuRWW; arc=fail smtp.client-ip=52.101.62.11 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=nvidia.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b="RgvAuRWW" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=Y4kNAGv4P3i+CApyTQFH7HQYZ/0S5yKKDL7+7LHgyTc2ImMHs+hXb/DdRacxnfUzr6+3SvPCDAjStWCD1IxO5GSgUr6guKG0PWScrt6AwuiVhQUx32E3bs6GY38G2W2vUUH0I6DmbKw8j8KdMaNG4eUrBneusFlj/uPLvBK73RHE2xe+lPk8DJhGAlcRRMuznerXY/ceq5ukJqd334rlMVZF3ZC3l8PUe1AgECIbUGp/XqIDU4dJdUbHvGPG3lcI5F9xYA2A9tXreQYCl3UL39dTy2QeUVyRVRnimOLS1dIOQGkWTqxRNwdXuwQodLf9nTWepKE45havsTQNlSNgPw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=xVv9wxA/M8gednBaRD1HGziV0QOHZmyR40hMEBPFV00=; b=NGaWiExv13SDw2gFL80ipk6P7zhnllXvouDvJnK5nZ9b6ThRITZIamFPdTssIuwV9jvZMrnzDWWgHjLgCI8v75MVenI3RbMA+KoVsxF1b/aifaGTR8dOBMA2aHF6s4K0/e0LutIK7bjmnY7jtnfYqaPrZJQjSNqVszStZcJRvhihe4O1L13fVDk7O/jH8DYudqaYPApebxKI/N6Z6Vsr5DA0QBZWjpypOf4XePRbKlL6y/GOsq3vFrPFmg2jECmwf5hFIA6mnhVgTz5vVOrBRt1tQjAmMi69zo68Z7rv8QgMA2xN3yhIo9Swk/GLOluFf1tQdWKAmP+EkPj1TCd+6g== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nvidia.com; dmarc=pass action=none header.from=nvidia.com; dkim=pass header.d=nvidia.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=xVv9wxA/M8gednBaRD1HGziV0QOHZmyR40hMEBPFV00=; b=RgvAuRWWtK+Iul9CpKWeIbk4iCO/+jzOcVeVD35wiMJC6x4aqkDtDG2CqtJvmIqVG+zpby6vdVLpL2yJH7Xt4Il9/jC1Odp1h4BCEh4BK0eA5yyQ0J8+nF9nZBssYF3qDY6DcqdYmutwrJvCViXhPFGo8s7ubErvs2WZfMgZj2yl383Bo99twu1vhcWoaUMqiYCj7Hp5rNSIA22pH7H3/4/lh23w0insMwD8NtfaP98O56054X0W7SsZ2iniDBxMScEUwW9JOFBEg/nVYSUF63sqhD161N8tYIir3/eKqUzUuUstQKYL2QxcizTdaCMV5eV7yVnW0caR7e5FRfIGwg== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nvidia.com; Received: from IA0PR12MB8374.namprd12.prod.outlook.com (2603:10b6:208:40e::7) by DS0PR12MB6486.namprd12.prod.outlook.com (2603:10b6:8:c5::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.406.12; Mon, 14 Sep 2026 02:24:21 +0000 Received: from IA0PR12MB8374.namprd12.prod.outlook.com ([fe80::d85f:4c87:ae84:3f16]) by IA0PR12MB8374.namprd12.prod.outlook.com ([fe80::d85f:4c87:ae84:3f16%5]) with mapi id 15.21.0406.007; Mon, 14 Sep 2026 02:24:21 +0000 From: Zi Yan Date: Sun, 13 Sep 2026 22:24:06 -0400 Subject: [PATCH v4 08/16] erofs: mm/pagemap: add readahead_folio_last() to avoid folio->private Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260913-remove-pg_private-v4-8-848550f7574e@nvidia.com> References: <20260913-remove-pg_private-v4-0-848550f7574e@nvidia.com> In-Reply-To: <20260913-remove-pg_private-v4-0-848550f7574e@nvidia.com> To: David Hildenbrand , "Matthew Wilcox (Oracle)" , Andrew Morton , Muchun Song , Lorenzo Stoakes , "Liam R. Howlett" , Vlastimil Babka , Mike Rapoport , Suren Baghdasaryan , Michal Hocko , Baolin Wang , Nico Pache , Ryan Roberts , Dev Jain , Barry Song , Lance Yang , Usama Arif , Gregory Price , Ying Huang , Alistair Popple , Johannes Weiner , Qi Zheng , Shakeel Butt , Kairui Song Cc: linux-mm@kvack.org, linux-kernel@vger.kernel.org, Zi Yan , Gao Xiang , Chao Yu , Jan Kara , Yue Hu , Jeffle Xu , Sandeep Dhavale , Hongbo Li , Chunhai Guo , linux-erofs@lists.ozlabs.org, linux-fsdevel@vger.kernel.org X-Mailer: b4 0.16.0 X-ClientProxiedBy: BLAP220CA0017.NAMP220.PROD.OUTLOOK.COM (2603:10b6:208:32c::22) To IA0PR12MB8374.namprd12.prod.outlook.com (2603:10b6:208:40e::7) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: IA0PR12MB8374:EE_|DS0PR12MB6486:EE_ X-MS-Office365-Filtering-Correlation-Id: 3b0577a3-d1f6-4fec-74dd-08df1207493d X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|23010399003|7416014|366016|376014|1800799024|22082099003|18002099003|921020|10067099003|56012099006|11063799006; X-Microsoft-Antispam-Message-Info: LXmdquqRakWVVHTOu2q8VGwFGarhn7aOPvcmKTPzfQvdT6LHGfpqTjDAhKu8hDyUMVCLw7ccnH5iHZOCbSeWr5mccNZsYQl8jFwrbHIp47FRTIJN2W0kGM+SuitZTp3dpWVQZ6m0fqD9CW9kwZooH9lJUNU9SIu3s9kpmIjt6+cSrqm9v5B2aDZMViFfK2KrT6PQJQhpg6B6A6RFIUKiD6LSISyfAG/cKJ2kGXzvF5RhWbwZTjQjr07glltdDaDSwf0vHzfImAHODImyLnqOy+JRfAi8FtfdySN+7UD6Hau08xAFc0wmP+pjsvzKDFG0o79N3XOiyLuHc7HLN3Hqip+C2cZGFumihKswebONkGb/u0lbY7GhkSGLWaz7k2bUUDHqiPijt8bdoy8lVNtMJzzAVXD24bHM/aDAyJ17PEwnfz2+vR5FBP/LxyxjBNUCr+J1EMXWiXHkHPw9wVAO21TFofCE11w2Nzlwbex6G+jjybU097UIoUO4ZdeCSbDswGVuHS9TOYUvPEXfLV3tMIfI7t/GslP48mDMvBgxNjxgCminpR0swe520zA5aKb87DBqB6YQ8UweLDrokz3cDD7mIjMzYO2n6/7+ziLalArSNt1jHx1yOzNphI5MWQkIFvnVNg7q2tqFbNUiKzMijwuZEN1+FJxteD80sDHfYwju5TuKN42SU+sM6/ZGALPJ2xs0g6mbWNNtlbnZiZvGVw== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:IA0PR12MB8374.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(23010399003)(7416014)(366016)(376014)(1800799024)(22082099003)(18002099003)(921020)(10067099003)(56012099006)(11063799006);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?Q3AvWVV3bU1kVDZXQUFtRHR6YzBodEw3WkRpb011M3hySk0wNVFpZXpGdllS?= =?utf-8?B?eXNTbHkyRUdja0hDVGJFMmpQMFBiNWxmdU92b1g4aDA1VGZxRXE3ejlhSy9C?= =?utf-8?B?R3JxNHJJbzZNdHVUK2FnVURpUjhvZUZjcklhcUFPYXQ1ZCtRTlpDdGNna29y?= =?utf-8?B?em9zbkZKbTd0eWpHZjZMR1UvVjgreS9HeUJQbEFsQUFsK0ZjWGpCWU13UnBa?= =?utf-8?B?ci9sdVVVdzBhSHViUkZkaWEzdUJ0dVdZWEVaM3NBZUVDMjN6SWhlekVFMmpI?= =?utf-8?B?VVlJSy9GNmptdGRJRUNRYjZuUW9ZKzBBZVRONzFYUFIxaEU3dGxCZU1TT29s?= =?utf-8?B?eU1kSkl2SEpCc0dNVDh2WndwK1JwYmNpUU9jVkkwanVjL3hyR3QvUE12QzJv?= =?utf-8?B?Uk9zdjExaTJFWVo1TlFlbzlqL0JIajQyRWU2V0EzejBCZWZtQ2J0bEFVWVJq?= =?utf-8?B?MnR0cWxuYVphOG4wUmNLMzNNaXBWeEszZ0NnSXFXcUNhUFByVkp0eGdxclhH?= =?utf-8?B?SzBTUHNDdmIwaEd5ZmllMzBiYVdxdjlFNG5TUnpyYUE1Y1lQdlhlbWtqeVFU?= =?utf-8?B?UUFvWWQxN1VFNW9hOVF0S3dqZ3J4SGZuUlNQVUlYbVFVS1JMWm4zeVF1NGRI?= =?utf-8?B?dms1VVFGd3pGekdROGd5dS9lU1pJS0Qrek84clhNZFZzVUNRbmR6Ulg1Nnh5?= =?utf-8?B?ZHJWZUMzY2lHZ2xMSzVIRFgwMksxODVZLzlCaGZWWW1xejRlb3VDbTNYbTJY?= =?utf-8?B?WU5rVlQxZU9nZEVZSjB6NXNIbmxmSUYrV2pXOC9KbEsxVXh2UDg2MmZROHJY?= =?utf-8?B?bjIySlR5Tk5UNVFXcU9qQmRBME9nZCtMQVJGVVNUYmdhNVJ2MWFmSERLM3dM?= =?utf-8?B?akEvME1vTU5laUZIWXVPWFljYmZCTG53cTVEMHZ4SFdtQWFuOTJCaldsZlR2?= =?utf-8?B?V2FhclpzVDcrVkhYeXFMMmV0WGZTaHJTZjcwU0xId2xIbnppNFp3SU9PLzk2?= =?utf-8?B?K1p2TkxmbEFSOVg3L0ZlOElNYW45cXVXZUp6ZU8zcmE0dWlPUUtyTlU3ZVRF?= =?utf-8?B?eklzRlFBa3dHQzFWNUQ4ZkVRKzh0L2U5Tno1VkJmU2NrT3dBejFHNm55clIv?= =?utf-8?B?L25ZYmJsSlZ1OVU3UjV4dFgvM1l5VkNDcnJxUjNUc2VCSFFVVGFTSzZnNjBp?= =?utf-8?B?RnBtQVRBTFl4R3l2Q0VEczRQR2M0ckdMakx4UjFmVHNRUXJZTStQUjBZSSs3?= =?utf-8?B?UkVxKy80N1NJR2R0cWNSZmczWUg1NUsvbE9zc0U3ZGRSVFpYUUVpTzRXb2x1?= =?utf-8?B?NmZvanl3U3pjZHRIYS9DcEZsTXN2TXhEV3NHSGhtbEN2NHY4Y0kvWnIzK09a?= =?utf-8?B?SWxGTEFVc2xKazI3TjdnLzBDazEyODdTK2VIM3VjZFNLbXVUN2crY2l5bURS?= =?utf-8?B?emdzakhWZUdvMGthTUF2NkVsVC9LUTltSjA1a280ZFJIMnBxKzlhWDZXT3RX?= =?utf-8?B?VElBUEgwUFg4RVN3SHJFVnFkbE4yOTkwbXhpSEFnUnZiOVRqclB6MFR1Ylh6?= =?utf-8?B?SzNSZjhYTUcwMUdoUFBZc28vblZtaEpSZ2VjRU1yanljRG9pWTFsQnd6Zjgr?= =?utf-8?B?d2RhbFJNUW1vRHIxZFQzTzFmNDJxUzY5QUl0b1g0eUF6QWc3d0RVcUpLZlNV?= =?utf-8?B?TXFCMXUzZG1RUGV1dHdBSzI1NHhybzJYODYvaWZwUnpwTExyRUhkZFZBRHUr?= =?utf-8?B?TzlTb2cycmMzbndHWENVbzdPeXozcTdoZ09WVzYzVkVBWGJkUmtqbTRReXpT?= =?utf-8?B?N2ptY1cwc01DeGNyazUrTDd6Q1J6OHpnNW5hakZlOHBoSVQzWE9xcTYxS3pl?= =?utf-8?B?UzRjeUVveUw3RmhVSjRyM0JzOWFySHFoU2R6dmYyUGMwT1NOUElHOFV4a1dW?= =?utf-8?B?bXc5RXppbjFyaExhWjVTQ0Z2emVUc2Voa2xMN0lzVHR3L0dIOHBFY056Q2gv?= =?utf-8?B?d1h3VlJvZXAxQVUrNXVIeWloV3NET0NyUlFhbGZ5OHdRVmNJUU5RSS9MTnRV?= =?utf-8?B?aWlFcGl6OEhmM3pPTldtdWw3TVlCUlpFRTlDYlpZUHJHekM4ZE0xenpHMm03?= =?utf-8?B?amJGMUp0ZjhBRnNLUXNQSVZBN3B3TGZYQnVybDFQNXBUODV2S1MwM3RFZXl3?= =?utf-8?B?NkowbVVQSkc3RUdPcmUrem43TkRJVDNUK2czakl3M1djNkg5ajRPSm1mRGdq?= =?utf-8?B?TzJXSUVMNHE3YlM3RVFIVjQ5VE1rVGhNZjI2QXlpYXVkZXFzRHlnM2xmeVda?= =?utf-8?Q?5yMth6Dn8KZg4D5Oj0?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 3b0577a3-d1f6-4fec-74dd-08df1207493d X-MS-Exchange-CrossTenant-AuthSource: IA0PR12MB8374.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Sep 2026 02:24:21.3702 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: tLclKViQFBsmsz6LxOhuc56yLjJcbwjEednZGh54FN2MeVoXdjx9VioF0SS84/WJ X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS0PR12MB6486 erofs needs to traverse readahead folios in reverse order to achieve maximum performance by 1. reading all folios from readahead_folio(); 2. storing the prior folio pointer in folio->private; 3. traverse from the last folio to the first one. Add readahead_folio_last() to achieve the same function without using folio->private. __readahead_advance() helper shares readahead_control adjustment code among __readahead_folio(), readahead_folio_last(), and __readahead_batch() by checking new private member, _forward, of readahead_control. It prepares for a future commit that replaces PG_private checks with !folio->private checks. After switching the checks, erofs's use of folio->private without bumping folio refcount can cause unexpected outcomes, e.g., in filemap_release_folio(), try_to_free_buffers() becomes reachable. No functional change intended. Assisted-by: LLM To: Gao Xiang To: Chao Yu To: "Matthew Wilcox (Oracle)" To: Jan Kara Cc: Yue Hu Cc: Jeffle Xu Cc: Sandeep Dhavale Cc: Hongbo Li Cc: Chunhai Guo Cc: linux-erofs@lists.ozlabs.org Cc: linux-kernel@vger.kernel.org Cc: linux-fsdevel@vger.kernel.org Cc: linux-mm@kvack.org Acked-by: David Hildenbrand (Arm) Signed-off-by: Zi Yan --- fs/erofs/zdata.c | 13 +++-------- include/linux/pagemap.h | 60 ++++++++++++++++++++++++++++++++++++++++++---= ---- 2 files changed, 55 insertions(+), 18 deletions(-) diff --git a/fs/erofs/zdata.c b/fs/erofs/zdata.c index e1e25ca0d1904..78fd7d980e957 100644 --- a/fs/erofs/zdata.c +++ b/fs/erofs/zdata.c @@ -1898,21 +1898,14 @@ static void z_erofs_readahead(struct readahead_cont= rol *rac) struct inode *realinode =3D erofs_real_inode(sharedinode, &need_iput); Z_EROFS_DEFINE_FRONTEND(f, realinode, sharedinode, readahead_pos(rac)); unsigned int nrpages =3D readahead_count(rac); - struct folio *head =3D NULL, *folio; + struct folio *folio; int err; =20 trace_erofs_readahead(realinode, readahead_index(rac), nrpages, false); z_erofs_pcluster_readmore(&f, rac, true); - while ((folio =3D readahead_folio(rac))) { - folio->private =3D head; - head =3D folio; - } - - /* traverse in reverse order for best metadata I/O performance */ - while (head) { - folio =3D head; - head =3D folio_get_private(folio); =20 + /* traverse from last to first for best metadata I/O performance */ + while ((folio =3D readahead_folio_last(rac))) { err =3D z_erofs_scan_folio(&f, folio, true); if (err && err !=3D -EINTR) erofs_err(realinode->i_sb, "readahead error at folio %lu @ nid %llu", diff --git a/include/linux/pagemap.h b/include/linux/pagemap.h index 939f3a5e973f6..1e3462357aaa4 100644 --- a/include/linux/pagemap.h +++ b/include/linux/pagemap.h @@ -1415,6 +1415,7 @@ struct readahead_control { bool dropbehind; bool _workingset; unsigned long _pflags; + bool _forward; }; =20 #define DEFINE_READAHEAD(ractl, f, r, m, i) \ @@ -1479,18 +1480,29 @@ void page_cache_async_readahead(struct address_spac= e *mapping, page_cache_async_ra(&ractl, folio, req_count); } =20 +/* + * Adjust readahead_control to ensure next folio comes from + * [_index, _index + _nr_pages) afterwards and reset _batch_count. + */ +static inline void __readahead_advance(struct readahead_control *rac) +{ + if (rac->_forward) + rac->_index +=3D rac->_batch_count; + + rac->_nr_pages -=3D rac->_batch_count; + rac->_batch_count =3D 0; +} + static inline struct folio *__readahead_folio(struct readahead_control *ra= ctl) { struct folio *folio; =20 BUG_ON(ractl->_batch_count > ractl->_nr_pages); - ractl->_nr_pages -=3D ractl->_batch_count; - ractl->_index +=3D ractl->_batch_count; + __readahead_advance(ractl); + ractl->_forward =3D true; =20 - if (!ractl->_nr_pages) { - ractl->_batch_count =3D 0; + if (!ractl->_nr_pages) return NULL; - } =20 folio =3D xa_load(&ractl->mapping->i_pages, ractl->_index); VM_BUG_ON_FOLIO(!folio_test_locked(folio), folio); @@ -1516,6 +1528,39 @@ static inline struct folio *readahead_folio(struct r= eadahead_control *ractl) return folio; } =20 +/** + * readahead_folio_last - Get the next folio to read, from the tail. + * @ractl: The current readahead request. + * + * Like readahead_folio(), but walks the range back-to-front. The folio is + * returned locked with its refcount dropped; the caller unlocks it once I= /O + * completes. Compound folios are returned once, at their head index. + * + * Context: The folio is locked. + * Return: A pointer to the next folio, or %NULL when done. + */ +static inline struct folio *readahead_folio_last(struct readahead_control = *ractl) +{ + struct folio *folio; + + /* Drop the previously returned batch from the remaining range. */ + __readahead_advance(ractl); + ractl->_forward =3D false; + + if (!ractl->_nr_pages) + return NULL; + + /* xa_load() follows sibling entries, so a tail index returns the head */ + folio =3D xa_load(&ractl->mapping->i_pages, + ractl->_index + ractl->_nr_pages - 1); + VM_WARN_ON_ONCE_FOLIO(!folio_test_locked(folio), folio); + + ractl->_batch_count =3D folio_nr_pages(folio); + + folio_put(folio); + return folio; +} + static inline unsigned int __readahead_batch(struct readahead_control *rac, struct page **array, unsigned int array_sz) { @@ -1524,9 +1569,8 @@ static inline unsigned int __readahead_batch(struct r= eadahead_control *rac, struct folio *folio; =20 BUG_ON(rac->_batch_count > rac->_nr_pages); - rac->_nr_pages -=3D rac->_batch_count; - rac->_index +=3D rac->_batch_count; - rac->_batch_count =3D 0; + __readahead_advance(rac); + rac->_forward =3D true; =20 xas_set(&xas, rac->_index); rcu_read_lock(); --=20 2.53.0 From nobody Fri Sep 25 11:05:58 2026 Received: from SN4PR2101CU001.outbound.protection.outlook.com (mail-southcentralusazon11012053.outbound.protection.outlook.com [40.93.195.53]) (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 043A2311C1B for ; Mon, 14 Sep 2026 02:24:45 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.93.195.53 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789352692; cv=fail; b=Ow+vf+EUgPhtEqhoPFziXkWUEPcaiVQCm5vTLh7AGhNLD55smEf9rS4LP8r++aOkaaxLxSfP1jimCk6dfvlefJmDURjDfuyz+5PZHme0+xYIJvey1Mu28NSEuoqGU1k4BO7aT/cJUUJ2SLn4WfKw9Yc+ROrawF/swpWHhoaUoKg= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789352692; c=relaxed/simple; bh=DXnlObOK4S2W/X9o5/38a8yPz6iGlj3k0nH503Wbvfw=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=DPQmbCk4tdmhp3KK+T8tQF+lDRpz1HRAqVdrrFf9mxMOZ8B67H8HwDAW1TSEkanqL897UsCAU1g4WtUNKQI2asfLkvJO3usi1svT6zM2pGXTy9h+04VUQ9z1l1beHPuvyzKSvYDgzvZfj3MFdhvz0dv0H4/acVbUtB2HppGN4rc= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com; spf=fail smtp.mailfrom=nvidia.com; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b=HHAKigUw; arc=fail smtp.client-ip=40.93.195.53 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=nvidia.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b="HHAKigUw" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=pRZmuEgehrC1cz41bokAttP2SMJ60Zp+62B3kcdZ0ORilhcWfmzVyqY1Q/Z5aeqydB1YItreEmbLCCwBd20bDmB0ZigYCInqWek8lGl4nizGhMKlUgxRhZILeVwlI0Bqp22VpU4/wogUUD5eY0Ow9XAvsDDBKujRDD2ZTT8i2OmT39Ibb7UZ9IpTQq1gIfhufd0zvX2wMD7DA8C2pOGdrCFMBBqwqmlZOHt2SKem4swrJDmkNogtUHGPmBtVSm91L9tNT6ajif5rhDI7JAmPu/cyzTR7wM8QBTk98AYEP4zlOdtcMJPky5qAfls7v320QU3XTz+3GtnBo1yfCq7u3A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=5oQkgIZB8g4TSzZHu0Etfeypilmex6FsVP2ICiojaz8=; b=SIUmOOUjp9reMiWY4nCq7sAHMjs0IYOK78WI+hOp/QP9lClx4oFkawNsQpFUfZj/AINBiHsI+RmQGvEduc4hV5+Ov5myTb4d0bMx8JGY35gJHuQ18dp0Vs8uUeNfMqwhOSjkqgrdQMBCr6vvHLj4PMe8SQAeo9wz4wRiQ8Ut0Vxt8LB70JKGdg491cVBzKT2DhUxDCF9GJqXG/3Bf8j0HS5yLAV/FBiTbn/5h8TvJ0P7Hoim/O7LDlYtHdSzqTjdT0DITb639IDfM5pDzfK5FKl/QyMl/e/7wuoUbpCx0wJFphX5YoH9RZzVZtQiAexwAsCwJVr0U9qRfyfz4q5Bgg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nvidia.com; dmarc=pass action=none header.from=nvidia.com; dkim=pass header.d=nvidia.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=5oQkgIZB8g4TSzZHu0Etfeypilmex6FsVP2ICiojaz8=; b=HHAKigUwf2NyRqa5aM2Ij4bUzjLKHdvyH6PlKC0MraWmcNba5UHCEcEbXpOSRVDybXMgdJZ5UU8868qs+BMt3U/rDUbIe9l4MKBYMZniPKticDc/BoHRLc8KZUCuWpJUhK/iVjGvrgZhlTmIQqJZQvKWo5uOFKcX3+h7uHtSAGln8ywbhunNHb9SuA9DPKA8xyvWS/DZsNc8owuHilMDoVXl8TaNf4ZtjKH0ffaF2jcDsN/FpXu2NakBb9Aea64mq1cx/7FC9Bb/R3k4gR601dJaLq87IWEPGETEfpwov6x6BaOOyNT51GLNXuicneVWwsL9YwGdyLfloDvwdoiEPA== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nvidia.com; Received: from IA0PR12MB8374.namprd12.prod.outlook.com (2603:10b6:208:40e::7) by DS0PR12MB6486.namprd12.prod.outlook.com (2603:10b6:8:c5::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.406.12; Mon, 14 Sep 2026 02:24:22 +0000 Received: from IA0PR12MB8374.namprd12.prod.outlook.com ([fe80::d85f:4c87:ae84:3f16]) by IA0PR12MB8374.namprd12.prod.outlook.com ([fe80::d85f:4c87:ae84:3f16%5]) with mapi id 15.21.0406.007; Mon, 14 Sep 2026 02:24:22 +0000 From: Zi Yan Date: Sun, 13 Sep 2026 22:24:07 -0400 Subject: [PATCH v4 09/16] erofs: use folio_attach/detach_private() instead of direct assignment Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260913-remove-pg_private-v4-9-848550f7574e@nvidia.com> References: <20260913-remove-pg_private-v4-0-848550f7574e@nvidia.com> In-Reply-To: <20260913-remove-pg_private-v4-0-848550f7574e@nvidia.com> To: David Hildenbrand , "Matthew Wilcox (Oracle)" , Andrew Morton , Muchun Song , Lorenzo Stoakes , "Liam R. Howlett" , Vlastimil Babka , Mike Rapoport , Suren Baghdasaryan , Michal Hocko , Baolin Wang , Nico Pache , Ryan Roberts , Dev Jain , Barry Song , Lance Yang , Usama Arif , Gregory Price , Ying Huang , Alistair Popple , Johannes Weiner , Qi Zheng , Shakeel Butt , Kairui Song Cc: linux-mm@kvack.org, linux-kernel@vger.kernel.org, Zi Yan , Gao Xiang , Chao Yu , Yue Hu , Jeffle Xu , Sandeep Dhavale , Hongbo Li , Chunhai Guo , linux-erofs@lists.ozlabs.org X-Mailer: b4 0.16.0 X-ClientProxiedBy: BL1P223CA0016.NAMP223.PROD.OUTLOOK.COM (2603:10b6:208:2c4::21) To IA0PR12MB8374.namprd12.prod.outlook.com (2603:10b6:208:40e::7) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: IA0PR12MB8374:EE_|DS0PR12MB6486:EE_ X-MS-Office365-Filtering-Correlation-Id: 6b5d5a0f-e1a6-4725-199e-08df120749c7 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|23010399003|7416014|366016|376014|1800799024|22082099003|18002099003|921020|10067099003|56012099006|11063799006; X-Microsoft-Antispam-Message-Info: gsz+V3hty8/wfORFNw/Zm9vNNPQXcgwUtyW0zE9q+Nmb9u31IIi6lf7avr93nI85wg87rO6z0gIu2FzNx85urfiBMoQkKlSYZjI+65H8mw/f3pRM1Zw0W50DAw1VjLSUN3wggIXSTFKiveobpiZqiWcWaAJIK9AjfyAaRMVcalIrGeJUn2++mrAnsDASVUvrtKKTVfaYUFXEVtp1uzMWUHmuzb2wmtZRirUNT8T4jk6xU7crQTzFNE3gO7dCl5yXGhYLJVlmpbA74Crppog+ZO0VEnyiCb0QXuJN1oXWjzZcbr2ffH+x83ePPU+KICfRTorjau2IGSvTc9TrP+ty4KfgY6WHRSqJZLIVutSx8haCONhH2OP8T9Wl4g2USyI+La2gu3bVHmpRjCwbKrWuQ3tpJqYJV8yDWn/eT8pq0QCqlbEVAE+XGVYd3OnveFJxF5ctc57lHLI5gokiHYP9v2SdD8IoJTmvdWemBYtoB1SkjaW0HMYhcjfNHjaB8iKgSpx0NYycFWjyR0TVXO67/JOhjNvx0Ob+kIt7AzVaD95RdjQNMxAgqFMXvlL+gMss9qRUiCWXF7jJbrOn2Fx94LhwmpaZF/Ve/RXN9b5GlREyndzmraThIMipFSAuqjLvFSPW7eEePqqI8hVQIJXtGfTGP9Jw47cwfStApnJcdT10xdnjF1xccxjc86HY55E+2AarSYqCMaG0TAa1ve0H6w== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:IA0PR12MB8374.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(23010399003)(7416014)(366016)(376014)(1800799024)(22082099003)(18002099003)(921020)(10067099003)(56012099006)(11063799006);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?VWREUFdFQzljSVAzMWJ5OE8wbGFVTzFkZmtyeldiQjhPN2xhTmJxZlhTOGV5?= =?utf-8?B?enlaQ3Vhby9hbjRkQmJaU1UwbW5nb2lEODJIRkpHZzZIcU84NW1iaHZhZTFl?= =?utf-8?B?UkJmRmNEcDBNWDNWWmhkSHdEOERPRlg4Wmxoa0NIeCtpMFl5bzBFUm9SaHBW?= =?utf-8?B?aWNPSjNibEhGd1Y0dFBlSDFOSnZNSnEyZDBCYzJDbEJaUjA4WlUrY1REem02?= =?utf-8?B?RGtSNDlUU1AxOHRwaHBJTkVTRDNSTVRvczk5R3dXN0FjQ0ZCelRmL0Y4Ynht?= =?utf-8?B?bTc1NVlOTWMyS3hXMk1DNkowNmtzQTgvckFvZys5T25sOWtxMWh1UFFpOUpq?= =?utf-8?B?cytzUWwzYTE0QUJ2N2FPb28xNjJBWGptVXg0YWl0dHZtelB6YXZSWGxsUGZY?= =?utf-8?B?b0RTOS95Qm14NFpjUHJBeW9RS0c5UFFqcnpxT0xUNTVjWDdhSytaV2NVQTRO?= =?utf-8?B?UEltTVdHWG0vcDFaUU9yOG9qWHl3T003OGljdy85WllKM0ZESFByS1VRNGJk?= =?utf-8?B?TWp0RU5wcncvV2Z2anowcDI5a2xMQzJzL25mSmwwaCs3WHUwNGVvL0JXUWtH?= =?utf-8?B?L2JTYUJWVGJHZnRaU0VIdnl1TUN5cVFCOWluSG1LeXEyWWhVOHBUWjBmWlhv?= =?utf-8?B?TW1GWTBLdDFRajhaeEEvNjdqUWVJaWI1Ym9vWjAzeTlibHB6NzRaN2ZKdWl2?= =?utf-8?B?cmVwL0s0bkNSSXE1clhZM3FvWm83dnNqNEsyUGZKaWlRbEpJLzRTOUQ2QWJw?= =?utf-8?B?TWVzV1RpZVlkVTZEalluUjZuOEpXRmxMTC80RXZleDFOYTgvaTFVUzkwWnhs?= =?utf-8?B?azhCVjRnMkFkSE5yUENqY1V4ZjVaNm1XS2R1TEVnYU10VnlLZlhVaTJpS3hB?= =?utf-8?B?RE9WTnNScGlZMklpVUNmVlJtQ014cDhsMW1MbVkyeDZQQVB2S04yZVN0VW5l?= =?utf-8?B?U1VyYmJ1MHg0WTNIQ2ZWaWNhS2hCcXQybC9RWllHRHdJYWo1K1BZdHBBOXBT?= =?utf-8?B?aC94TWRteDUwQTNka1NtcTA2K0VybzBXOUt5SCtEZTN5bWJBbll1MjdCbzl1?= =?utf-8?B?WktNUm1yblNycFg3SjFGb1ZoWHRCa05sS0lUcXp4bnZReHhuQVlyYkFJYXFn?= =?utf-8?B?aXg5Z2lybEtZcWk2SWRRajlCSHhHTW83YkZnTEtIcG9icDNpeS9WdWZlL3Qw?= =?utf-8?B?ekVBemUwUHEyU20rd1cwamNhQVk2OElmRndnOEV4akhNSnZydVgwZVRIa0p0?= =?utf-8?B?aHhSNlUzY1JIRnJZOXF1Z0xmNmZlTVR0c29zK0dEampETThESzVvWU9hRWVI?= =?utf-8?B?eERJd1huQTVzRmMyRFBUeFdoQ0V1ZFc3bzF0SExuRlBIRktiYXlGR28rRE83?= =?utf-8?B?cGdPL0hXNUJrQTJJRG9WRnRpVnlFcFZqYVdUSWp1OTdwTExLWlMrVnUvOFRp?= =?utf-8?B?VnYyeExnZjMyYjhGY1ZLbW1KSDJWeUlrS1NCenE4OVJOY0tXMDBhaklTTWkr?= =?utf-8?B?blZ1THhTVWoxWExyZXdlbU1VREdLS0toSlQzdm1PY0txaE4vSERYMjNZL1FD?= =?utf-8?B?S21sdER3dXFBNFpJZWZJWWVnUTZEYVkvS0JKL2s0N1ZKbG5ucmhnbnBCQmVB?= =?utf-8?B?UXNjYnNxUkNTTDhOeTlQUUIrODkwbnFMZEVLaVJuUEptSjJNL3k0RXQ5cnpZ?= =?utf-8?B?SjhndkJzWVJFb1IyV0FHQjlsU1o4cVJOUkI5NmYxRUpzbVp6R2FJNzB6OGgz?= =?utf-8?B?dzB3a3c4RzdiYjdjVURhdGRRQlVJTG5YOHdYaCtEaTRsMm9EMnp0SEJnWUF2?= =?utf-8?B?cEdEc0pGNlV2ODJ3UkVaOGhDMUVsU3FSZVBNMFJFNWZGb3JabmQ0b0R2OGZr?= =?utf-8?B?Sm4vQ3ZESUwyeXJyNjV5dmlRUDZ5WXdyUlFSYm9VWUxza2tLUDFCenh2TjdH?= =?utf-8?B?NStoN1J0eVUwcW5UZXI4Uy9RNnVrdlQ2aEJZUUptUEVXbzlDSy9MOU05bzZX?= =?utf-8?B?T2NsVGROSDZ6Q253ci9JWUVDNFBteC9yUTBpbmpsall2Zm9iZTV0b3JLSksv?= =?utf-8?B?YktmT0U1WHdXSzRydU15MmFEN0tSM2pUSkMxUktaNExTOTlPQjlWWDJKa1Ru?= =?utf-8?B?bHZXMlFjOCtxQS90VTRDb1lKd3ZqWnFzSStGbTFhSmFXTVplZTZ2STkyRTZG?= =?utf-8?B?R05TNEtqdmQ4cU1PTTMwVDdSRUtNK1cxWldyTnQrNHVKK25kNXh5OE8yV0l3?= =?utf-8?B?N2F4aWVXRk1aR3ZpbG1qeDlvaXFJdXVmOFVaTjRJUmEzempDQlhkeUo5Ykhm?= =?utf-8?Q?ZEpmxUiT47cUJVjHlm?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 6b5d5a0f-e1a6-4725-199e-08df120749c7 X-MS-Exchange-CrossTenant-AuthSource: IA0PR12MB8374.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Sep 2026 02:24:22.2746 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: /x3fAVW9z31WTZwfJpYVgtLQ2SIugzlsh32Y/pLrrZnUi5RgbwPVxJlzmOzRrcUz X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS0PR12MB6486 erofs_onlinefolio_init/split/end() use folio->private without setting PG_private or increasing folio refcount and it works. But after PG_private is replaced by checking folio->private in a future commit, it can break folio_expected_ref_count(), since the folio has private data without elevated refcount. Change them to use folio_attach/detach_private(). Folios during this process are locked as they are in the process of readahead, so no parallel migration/folio split can happen. Furthermore, because folio->private is used to store in-flight I/O counter and the counter reaches 0 when all I/O completes successfully without error or being dirty, ->private=3D0 causes folio_detach_private() to not drop the elevated folio refcount. Solve this issue by using bias=3D1 for the counter, so that ->private stays non NULL throughout every attach-to-detach process. Add a macro EROFS_ONLINEFOLIO_BIAS=3D1. While at it, fix the comment about ->private bit layout and add EROFS_ONLINEFOLIO_COUNT_MASK. It prepares for a future commit that removes PG_private. Assisted-by: LLM To: Gao Xiang To: Chao Yu Cc: Yue Hu Cc: Jeffle Xu Cc: Sandeep Dhavale Cc: Hongbo Li Cc: Chunhai Guo Cc: linux-erofs@lists.ozlabs.org Cc: linux-kernel@vger.kernel.org Reviewed-by: Gao Xiang Signed-off-by: Zi Yan Reviewed-by: David Hildenbrand (Arm) --- fs/erofs/data.c | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/fs/erofs/data.c b/fs/erofs/data.c index 0885b1f2fc925..f71c7b51bb720 100644 --- a/fs/erofs/data.c +++ b/fs/erofs/data.c @@ -239,19 +239,23 @@ int erofs_map_dev(struct super_block *sb, struct erof= s_map_dev *map) /* * bit 30: I/O error occurred on this folio * bit 29: CPU has dirty data in D-cache (needs aliasing handling); - * bit 0 - 29: remaining parts to complete this folio + * bit 0 - 28: remaining parts to complete this folio, biased by 1 so that + * ->private stays non-NULL while the folio is attached */ #define EROFS_ONLINEFOLIO_EIO 30 #define EROFS_ONLINEFOLIO_DIRTY 29 +#define EROFS_ONLINEFOLIO_COUNT_MASK (BIT(EROFS_ONLINEFOLIO_DIRTY) - 1) +#define EROFS_ONLINEFOLIO_BIAS 1 =20 void erofs_onlinefolio_init(struct folio *folio) { union { atomic_t o; void *v; - } u =3D { .o =3D ATOMIC_INIT(1) }; + } u =3D { .o =3D ATOMIC_INIT(1 + EROFS_ONLINEFOLIO_BIAS) }; =20 - folio->private =3D u.v; /* valid only if file-backed folio is locked */ + /* valid only if file-backed folio is locked */ + folio_attach_private(folio, u.v); } =20 void erofs_onlinefolio_split(struct folio *folio) @@ -265,14 +269,14 @@ void erofs_onlinefolio_end(struct folio *folio, int e= rr, bool dirty) =20 do { orig =3D atomic_read((atomic_t *)&folio->private); - DBG_BUGON(orig <=3D 0); + DBG_BUGON((orig & EROFS_ONLINEFOLIO_COUNT_MASK) <=3D EROFS_ONLINEFOLIO_B= IAS); v =3D dirty << EROFS_ONLINEFOLIO_DIRTY; v |=3D (orig - 1) | (!!err << EROFS_ONLINEFOLIO_EIO); } while (atomic_cmpxchg((atomic_t *)&folio->private, orig, v) !=3D orig); =20 - if (v & (BIT(EROFS_ONLINEFOLIO_DIRTY) - 1)) + if ((v & EROFS_ONLINEFOLIO_COUNT_MASK) !=3D EROFS_ONLINEFOLIO_BIAS) return; - folio->private =3D 0; + folio_detach_private(folio); if (v & BIT(EROFS_ONLINEFOLIO_DIRTY)) flush_dcache_folio(folio); folio_end_read(folio, !(v & BIT(EROFS_ONLINEFOLIO_EIO))); --=20 2.53.0 From nobody Fri Sep 25 11:05:58 2026 Received: from BYAPR05CU005.outbound.protection.outlook.com (mail-westusazon11010031.outbound.protection.outlook.com [52.101.85.31]) (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 89FDF31ED81; Mon, 14 Sep 2026 02:24:45 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.85.31 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789352694; cv=fail; b=nYfiIQKhFKyNvOGQ7rc+tMfFX74gp4h6uWHYiKaMBouHZT4t8RIsFxVxaC7ydLRcJjE3xnfos8lGrA1x+ONzL6Ao4hCAV+1L0qSfnZOYYqrRTFj3YzdYexKuLym24zshD/vYJTSw7hVvqrvOzkU8gomwzps3y1nmhsCcs+/DH3A= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789352694; c=relaxed/simple; bh=vWkCV8CGPb35Xm1RmMIyDB6t8L1Tl75RaRkyg9UnTic=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=YJ/HshTh9Z9Bk1Etga/R8iNEJ0My6cl8nZHCls88GVYOqhxCJfOqEutmunSOee3OsDDkK669UJXwXXo5Ck4NkPT6WnUG0RCnH+Tv1Aw5ld9XLXAZFQuU9pR+F5FZd8scRgdZZReuOJpWyvump57F/LdVIUXruHXxqxi4QLsI/HY= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com; spf=fail smtp.mailfrom=nvidia.com; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b=AKqE7vTg; arc=fail smtp.client-ip=52.101.85.31 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=nvidia.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b="AKqE7vTg" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=HJpINlq/Q+TkUEpgVhyAvSwfZhrbTDvw9qiojGaqY9XJwGS36uQtCtdeD14bMmU+ibvpceWc02h2ZOMBBYa0YCgzVlHh9oRXRPmUtJqG5xgG9lGR7HdLWTHj8mNKYTFq3w8qLG2Z3VoIN9sSwmuuhLHmI4MrpgJ9w+qxt7gEBFKWbZ8pwZ8DspEH1lBoOsKyFW+qVKM2VtXqu5j2gMW8qy3OuUWQawKHuv5QRzboWVnvtHsldAFAo7dVZ3n0avc7EfjrKUHFNQi69vGotPqLUtFjQPAYBQTteaMNJqG2evUn4Sedd9bSlHW715BQ9d7TZaLi58o3xlEV0o1CupLyKA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=2dCTXKqGClVZty2pusptUW7fOs0+Pn2ZhRQI1rlt53k=; b=a1q9UNf3fzFbo72NICrgPZAJnYDbpv9nvRBx2V2P5yMZ7mB2G7ugL0nnFQb2uhX2dMZMUSqrhkIfBF3EVwSgF0xZEd2cox05ez5VJnQWgULo64dQroXWfO81UNEzrRj+vz+VT3A2tAajc8umc7WSVgwVkiTuj4DZfwPvWaIrix61VmiiSswp0i8vakvJVm9NiCcmMNu0L3erRm6DTt93zQR2iQPXpL7xYsjdW1VrF1hjPWTfnNTPgX8hECE8cGtZJ6HAehRXjMNZI4zD8iwGlbmoVAh/it6AnF8RwASYizRjnQCtVH3m2fFluqbnPiEmV57xORiCu+cmhFpKlg0rtA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nvidia.com; dmarc=pass action=none header.from=nvidia.com; dkim=pass header.d=nvidia.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=2dCTXKqGClVZty2pusptUW7fOs0+Pn2ZhRQI1rlt53k=; b=AKqE7vTgs/KVmLNlntiWrqIILEfl8aTRj9eKBB5qdo7xSQtSE6T+LpEWbF9DQqO5Y/KWGDGopgFC95UgOL3AZD5qgzBVDL4ScgJP8zuC5e7frkREHJjuB2nY3xsbnyn9fiEenheoexFPR7Ytx/II4Slfv8ypjEriOZ0coxUIfzyKotdbUFsfek29uF8dLzaF1i49ys4NQ+Xue113wmRTs85INsWsjoOQQuz1zVybNROXp1AnWTvpeCGiTSSszQqDbHPa5I5cUnvyQQAkd2mIRefPLpNBP1ru/frKuY3YRONWcs7HLKIL7/jR6V9W3WrKSuqV+XeaQBMv+CD0eXT7AA== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nvidia.com; Received: from IA0PR12MB8374.namprd12.prod.outlook.com (2603:10b6:208:40e::7) by DS0PR12MB6486.namprd12.prod.outlook.com (2603:10b6:8:c5::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.406.12; Mon, 14 Sep 2026 02:24:23 +0000 Received: from IA0PR12MB8374.namprd12.prod.outlook.com ([fe80::d85f:4c87:ae84:3f16]) by IA0PR12MB8374.namprd12.prod.outlook.com ([fe80::d85f:4c87:ae84:3f16%5]) with mapi id 15.21.0406.007; Mon, 14 Sep 2026 02:24:23 +0000 From: Zi Yan Date: Sun, 13 Sep 2026 22:24:08 -0400 Subject: [PATCH v4 10/16] mm/page-flags: check page/folio->private instead of PG_private Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260913-remove-pg_private-v4-10-848550f7574e@nvidia.com> References: <20260913-remove-pg_private-v4-0-848550f7574e@nvidia.com> In-Reply-To: <20260913-remove-pg_private-v4-0-848550f7574e@nvidia.com> To: David Hildenbrand , "Matthew Wilcox (Oracle)" , Andrew Morton , Muchun Song , Lorenzo Stoakes , "Liam R. Howlett" , Vlastimil Babka , Mike Rapoport , Suren Baghdasaryan , Michal Hocko , Baolin Wang , Nico Pache , Ryan Roberts , Dev Jain , Barry Song , Lance Yang , Usama Arif , Gregory Price , Ying Huang , Alistair Popple , Johannes Weiner , Qi Zheng , Shakeel Butt , Kairui Song Cc: linux-mm@kvack.org, linux-kernel@vger.kernel.org, Zi Yan , Steven Rostedt , Masami Hiramatsu , Jan Kara , Mathieu Desnoyers , Matthew Brost , Joshua Hahn , Rakie Kim , Byungchul Park , Axel Rasmussen , Yuanchu Xie , Wei Xu , linux-fsdevel@vger.kernel.org, linux-trace-kernel@vger.kernel.org X-Mailer: b4 0.16.0 X-ClientProxiedBy: BL1PR13CA0346.namprd13.prod.outlook.com (2603:10b6:208:2c6::21) To IA0PR12MB8374.namprd12.prod.outlook.com (2603:10b6:208:40e::7) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: IA0PR12MB8374:EE_|DS0PR12MB6486:EE_ X-MS-Office365-Filtering-Correlation-Id: 954a18cc-1532-4c0a-bed1-08df12074a57 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|23010399003|7416014|366016|376014|1800799024|6133799003|22082099003|18002099003|921020|10067099003|56012099006|11063799006|5023799004; X-Microsoft-Antispam-Message-Info: UAkwPdu4UsNwrnSEMrCrJe5U+L2PKbvA44f2HfG3kmMdrbdV0BM5SMKLqriOE7Sdq+y1RgXHldtq6i+RbpLRrXD0WFkTVXBTIa7c+XCy1UZLX1g1LMnOQ10CGW5ufIzyWx0AU8Q04U0U2kgHW1MN+mzvKVBFapVilLmmk9lDCxSAGxQdS4hSk52zg4NkBTuH6uZaViuBtpRCr7EVUzRV5iCqim2rdi5uICLGIbf2ZIlZ4smjncS1ikcfL0DhBKvVn3qyFFNOEWk0p6IdWid3xcl4dEckIIeF1c853szno8Xp+J1fHxe2YSLhkaV09d3AKj0Lq6A4CXa4pFVTq6uxYHE9l//kiiLkt1uX2uso3aDNaFt4s1B0vzLdMhWiSbZkFCL/QwLlDIl3mxoqorC2MLDfwqjgbWjBoSKCoV9/p6S0OVtvR9D3tZwM9TpbARpW41H6AxVD/mfd2KLvW1ZfUP69JXudFNLBObLhAGkB02EMrTBhraD1If3MbN2dKJlRRMymgIM5TuYC8OKw0tU8SGabMMaQyL2dToo6+m9nz7HVwFrA/HiQK77w2EYtpZl4PzDAIcRNUvR8iyKpbaVihF1wjvYLgHzlEcMC5jdym6HZZFvOnlfDS57jeBzUueG8SYTsaxsRGMmiMHDZNEXXxWyvxAroQOpv6z9G7FJf5UhF4lMA28QFolH5wMUROHfxr4d4Cf1QoHV2sFf25lzPug== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:IA0PR12MB8374.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(23010399003)(7416014)(366016)(376014)(1800799024)(6133799003)(22082099003)(18002099003)(921020)(10067099003)(56012099006)(11063799006)(5023799004);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?OHMxY3lMdFI4VVdqZTdkZEErZVNiZWM0VWRRMjI2WVdSLzdHZUtUZlBxWXhz?= =?utf-8?B?bWtpTlpqMEhPdUh3RVNER3JtMGZDT3dRK3I4UGE4UFBWM0ZxcVJHWTQzZUJC?= =?utf-8?B?eTRNRHQ0SUlpU3VzREVhcGp1a2VwQXlxS3A4cVU0RVBmQVdGckFlcDlLYnFn?= =?utf-8?B?U0NhTjdZS1NGRzBTd0FFOVdLUzNxWlJDWDEwSWF1VXZOTnBqV3IzNm4za3E1?= =?utf-8?B?RlRWcnhqTFBjZno4NllmTWQ0YmJlR2FBSHZMRWZaN3pvTjdCckJSOHFqNEJF?= =?utf-8?B?WVYyeHJDRTJzQ3ZaTGxkWjhENTJPVVNyMDhWdWNodmhOd3BZVWRYcmhMbXNv?= =?utf-8?B?MnJjOWpGWnBicytoQWFWeXJTUkVOK3g4bC9MTVJpbEh1c2FUWnNhbzhhZ09n?= =?utf-8?B?dE1IRmNNWXQzY3FJWFhWbThoV3R6RWZEY0FNK1V3V2t1bzVNeDE1SFQvRG95?= =?utf-8?B?eG93akt2NnEvV2lqVk5RQXo2ZUZaTDNCT0VGZHFEemIvZWViRjlmc2hxbkhx?= =?utf-8?B?Z0wxRk5LUkswN1ZPSW14aGZLVWNLTGxPb3UrSEZCTCt2d0w2NTNKTmt2Tlox?= =?utf-8?B?alJqSjFaUU9SR0dSNk5HQ1R0ZHZGT3p3QmYwQ1JhTDUyN0JxNXN3ai9IakI3?= =?utf-8?B?bzJ2QURkRzloRHNVSFFPR2g4ODB1OHVwVUE5Z3dMdy9lNVpuaC9Pbm9jRXh3?= =?utf-8?B?SlI4WEM2MUczb2owWFRwK1RLNkFJVWd6L0Nudlc4Ylo3MHZncnM3RGxpNmdp?= =?utf-8?B?LzNtS3Q5OFgvb1ZSSGFKUjhjWEh6M2Q2OU0vSGp2OU1pQS96blEzYURIMjM4?= =?utf-8?B?WG43U1hDemV3bWZETUtRRFFrYTNlbjlocjJybW8xWmdHQWh5MnFUd1Nab042?= =?utf-8?B?QXB3N2pNN1hwM2FTSnRReit2c2NCUThQYmR3cEhxTExJQnVCaWFZdWtHMlZJ?= =?utf-8?B?OFYzSkhqa3NQWlhxS2ZUd2lGanhBTms3K0ZEUG9YemlNYzloaXVCMWdzcFRZ?= =?utf-8?B?aHZQUUhNbjNYREt0dmNaL2NNQ2lxT3VnUURDNWVTcmRQWmNMREc4d3NBU0tX?= =?utf-8?B?UlRsVFVYVmI2VllVeDEvTWVqbVR1dGUxMmtwWUdwNGxlMklxOWplZ1JRbHRI?= =?utf-8?B?djVuWml3c3l4ektodEEwMVpLaUVuOHJCY1ZIeURsdHBRem1VN2lCVnlrdmRj?= =?utf-8?B?OFpxZU8wdndwem1vS3JMVytZdHRJRkI3U0ZNZmY1bjIrRjhhTHFEREh1M0Rj?= =?utf-8?B?WUZ5dWsrRzV4QVQrMTBtSm91NWdMOVJXYk1yTnh0bVhtYXROeVFRRis4eDBU?= =?utf-8?B?aUwyMWV3R2FwSURhVTFUa2F3Ym5yeVJ1SFQwdm1mdFdNamM3VHJrSktBZ2Ft?= =?utf-8?B?aFZ6WHdrbXFsRnNmS1BxLy9XaDYrQmRKa1Y0Y29ZazVNaXB3VjZJZnlZdXNn?= =?utf-8?B?WGl6ZC9mMWNYaWJ3YlVJMDJxSGFmUC9Zb1V1RGFNbDBHSGt2NEJKRXh2OW9t?= =?utf-8?B?ekVZMkNidTdZVWlOZHpScGVJTVVzREd0YWwyS2ZyaGVMTUYzT2VxaTRzT3Fn?= =?utf-8?B?bGovdmZSNzFDcVVjaWQwVSszOFhrRFBZa0tSaGo5bmxmcTRMdVN1WFdJcXB1?= =?utf-8?B?SDVERkRLQ2VlMXpPaUhPZkg0NXpJa0hQM3d1WTNydVM0dVRRdzdGaVNJdkJ4?= =?utf-8?B?RUhsUlJqUGJCVGRVWWI4MjhMNzZER0NWN2xROS82d0hyaEhMcDR2ZmxKVnBI?= =?utf-8?B?QW1qMnVrekJhYmNPSzdNVzhOcSs3c2ozdzEyZUVtNHhEWVZmTWdrRldiRStI?= =?utf-8?B?b3llZEkxbExZOVNad2tUNlRFRml2Tm5nbXNhT1pMSTBJZE15elpHaDY5bll1?= =?utf-8?B?RHYraGo5aDFkUVpxSTNRbzJGem8rNFBFUHdPR1pPbW9kdFZQWEV6dHZIRklp?= =?utf-8?B?M0liTDhhemVHQmJ1Z3UrUjZvWWE3aHNMVi9iQ3dhZFNXRW96RlhITUk2b3Zu?= =?utf-8?B?VU9ndzdsUDQ3WDJ2RU5pWE9QVFF2M3IyOURkcnlmTDVnU2JNNlV3VTBJbks0?= =?utf-8?B?VkFFVjdwTVZxZHlobE1ESmdYTmdNKzUzM1dMZkdnREg3Q2dqTTlZSHo0Q2JQ?= =?utf-8?B?Y1V1UzAvRE9za0pOR1ZvV3BCby9idkVEU3J6SmlUaU54SWhBZjNrVjFabWZS?= =?utf-8?B?MDNBem5TckI2RjNDMGJuTU1rZmE4REQ1UWszcUR0Rk1mdFJPeTJKTlNMM0NO?= =?utf-8?B?TXlyY25GbHAvRzl6dkxCZFM4Q0NJTTNjcnlZMSs5MmEwcGUrZVlTMGd3M2dt?= =?utf-8?Q?CPXHhQ6P9tWYaoG4ow?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 954a18cc-1532-4c0a-bed1-08df12074a57 X-MS-Exchange-CrossTenant-AuthSource: IA0PR12MB8374.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Sep 2026 02:24:23.2369 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: Fpm28CY/KUZT0iwmeXlIK9RvNfroZD+RH2aN4C9JsQt9tC3vDVv6Ovu2geUH5iZh X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS0PR12MB6486 After the changes of the prior commits, page/folio->private !=3D NULL is now equivalent to checking PG_private. Stop checking PG_private on pages and folios and use page/folio->private instead, except swapcache and hugetlb folios, because the former uses a field (swp_entry_t swap) overlapping with ->private and the latter sets its flags in ->private. Exclude swapcache and hugetlb when the code is meant to check PG_private only. PG_swapcache and folio->swap.val cannot be set/clear as a whole, so excluding swapcache with folio_test_swapcache() is not reliable. Instead, use folio_test_swapbacked(), since PG_swapbacked is stable when a folio is added to/removed from swapcache. Add a helper, folio_has_attached_private(), for this check. folio_expected_ref_count() can be called without folio lock, so annotate folio_test_private() with data_race() to avoid triggering race condition checks. While at it, annotate folio->mapping too. Add data_race() annotation for other lockless callers too. folio_set/clear_private() and Set/ClearPagePrivate() become no-ops. PG_private is no longer checked at page free time. Remove KPF_PRIVATE since PG_private is no longer used. Assisted-by: LLM Signed-off-by: Zi Yan To: Andrew Morton To: David Hildenbrand To: Steven Rostedt To: Masami Hiramatsu To: Lorenzo Stoakes To: "Matthew Wilcox (Oracle)" To: Jan Kara To: Johannes Weiner Cc: "Liam R. Howlett" Cc: Vlastimil Babka Cc: Mike Rapoport Cc: Suren Baghdasaryan Cc: Michal Hocko Cc: Mathieu Desnoyers Cc: Zi Yan Cc: Baolin Wang Cc: Nico Pache Cc: Ryan Roberts Cc: Dev Jain Cc: Barry Song Cc: Lance Yang Cc: Usama Arif Cc: Matthew Brost Cc: Joshua Hahn Cc: Rakie Kim Cc: Byungchul Park Cc: Gregory Price Cc: Ying Huang Cc: Alistair Popple Cc: Qi Zheng Cc: Shakeel Butt Cc: Kairui Song Cc: Axel Rasmussen Cc: Yuanchu Xie Cc: Wei Xu Cc: linux-kernel@vger.kernel.org Cc: linux-fsdevel@vger.kernel.org Cc: linux-mm@kvack.org Cc: linux-trace-kernel@vger.kernel.org --- fs/proc/page.c | 1 - include/linux/kernel-page-flags.h | 1 - include/linux/mm.h | 20 +++++++++++------ include/linux/page-flags.h | 46 ++++++++++++++++++++++++++++++++++-= ---- include/trace/events/pagemap.h | 3 ++- mm/huge_memory.c | 3 ++- mm/migrate.c | 2 +- mm/page-writeback.c | 3 ++- mm/vmscan.c | 2 +- tools/mm/page-types.c | 2 -- 10 files changed, 62 insertions(+), 21 deletions(-) diff --git a/fs/proc/page.c b/fs/proc/page.c index 260772b20bd99..f90e1030825e9 100644 --- a/fs/proc/page.c +++ b/fs/proc/page.c @@ -232,7 +232,6 @@ u64 stable_page_flags(const struct page *page) =20 u |=3D kpf_copy_bit(k, KPF_RESERVED, PG_reserved); u |=3D kpf_copy_bit(k, KPF_OWNER_2, PG_owner_2); - u |=3D kpf_copy_bit(k, KPF_PRIVATE, PG_private); u |=3D kpf_copy_bit(k, KPF_PRIVATE_2, PG_private_2); u |=3D kpf_copy_bit(k, KPF_OWNER_PRIVATE, PG_owner_priv_1); u |=3D kpf_copy_bit(k, KPF_ARCH, PG_arch_1); diff --git a/include/linux/kernel-page-flags.h b/include/linux/kernel-page-= flags.h index 196778a087c4d..fe5ab6e50bd70 100644 --- a/include/linux/kernel-page-flags.h +++ b/include/linux/kernel-page-flags.h @@ -11,7 +11,6 @@ #define KPF_RESERVED 32 #define KPF_MLOCKED 33 #define KPF_OWNER_2 34 -#define KPF_PRIVATE 35 #define KPF_PRIVATE_2 36 #define KPF_OWNER_PRIVATE 37 #define KPF_ARCH 38 diff --git a/include/linux/mm.h b/include/linux/mm.h index 969594074fd2d..c9aad2c39fd9c 100644 --- a/include/linux/mm.h +++ b/include/linux/mm.h @@ -3004,9 +3004,9 @@ static inline bool folio_maybe_mapped_shared(struct f= olio *folio) * @folio: the folio * * Calculate the expected folio refcount, taking references from the pagec= ache, - * swapcache, PG_private and page table mappings into account. Useful in - * combination with folio_ref_count() to detect unexpected references (e.g= ., - * GUP or other temporary references). + * swapcache, private data (folio->private !=3D NULL) and page table mappi= ngs into + * account. Useful in combination with folio_ref_count() to detect unexpec= ted + * references (e.g., GUP or other temporary references). * * Does currently not consider references from the LRU cache. If the folio * was isolated from the LRU (which is the case during migration or split), @@ -3044,10 +3044,16 @@ static inline int folio_expected_ref_count(const st= ruct folio *folio) ref_count +=3D folio_test_swapcache(folio) << order; =20 if (!folio_test_anon(folio)) { - /* One reference per page from the pagecache. */ - ref_count +=3D !!folio->mapping << order; - /* One reference from PG_private. */ - ref_count +=3D folio_test_private(folio); + /* + * One reference per page from the pagecache. + * Use data_race() since folio might not be locked. + */ + ref_count +=3D !!data_race(folio->mapping) << order; + /* + * One reference from filesystem private data. + * Use data_race() since folio might not be locked. + */ + ref_count +=3D data_race(folio_has_attached_private(folio)); } =20 /* One reference per page table mapping. */ diff --git a/include/linux/page-flags.h b/include/linux/page-flags.h index 462e89e055485..08988877331ba 100644 --- a/include/linux/page-flags.h +++ b/include/linux/page-flags.h @@ -577,7 +577,23 @@ FOLIO_FLAG(swapbacked, FOLIO_HEAD_PAGE) * for its own purposes. * - PG_private and PG_private_2 cause release_folio() and co to be invoked */ -PAGEFLAG(Private, private, PF_ANY) + +static __always_inline bool folio_test_private(const struct folio *folio) +{ + return folio->private; +} + +static __always_inline int PagePrivate(const struct page *page) +{ + return !!page->private; +} + +/* no-ops during transition */ +static __always_inline void folio_set_private(struct folio *folio) { } +static __always_inline void folio_clear_private(struct folio *folio) { } +static __always_inline void SetPagePrivate(struct page *page) { } +static __always_inline void ClearPagePrivate(struct page *page) { } + FOLIO_FLAG(private_2, FOLIO_HEAD_PAGE) =20 /* owner_2 can be set on tail pages for anon memory */ @@ -1169,7 +1185,7 @@ static __always_inline void __ClearPageAnonExclusive(= struct page *page) */ #define PAGE_FLAGS_CHECK_AT_FREE \ (1UL << PG_lru | 1UL << PG_locked | \ - 1UL << PG_private | 1UL << PG_private_2 | \ + 1UL << PG_private_2 | \ 1UL << PG_writeback | 1UL << PG_reserved | \ 1UL << PG_active | \ 1UL << PG_unevictable | __PG_MLOCKED | LRU_GEN_MASK) @@ -1193,8 +1209,28 @@ static __always_inline void __ClearPageAnonExclusive= (struct page *page) (0xffUL /* order */ | 1UL << PG_has_hwpoisoned | \ 1UL << PG_large_rmappable | 1UL << PG_partially_mapped) =20 -#define PAGE_FLAGS_PRIVATE \ - (1UL << PG_private | 1UL << PG_private_2) +/** + * folio_has_attached_private - check if the folio has private data attach= ed + * @folio: The folio to check. + * + * Use this in code that may encounter swapcache or hugetlb folios but only + * wants to detect attached private data. Swapcache stores swp_entry_t in + * folio->swap, a union with folio->private, and hugetlb stores its own fl= ags + * in folio->private; both are excluded. + * + * NOTE: For swapcache, folio->swap.val PG_swapcache are not set as a whol= e, + * so folio_test_swapcache() is not reliable to exclude swapcache. + * Use folio_test_swapbacked() instead, since it remains set when a folio = is + * added to/removed from swapcache. + * + * Return: true if folio->private is set and the folio is neither swapcache + * nor hugetlb. + */ +static inline bool folio_has_attached_private(const struct folio *folio) +{ + return folio_test_private(folio) && !folio_test_swapbacked(folio) && + !folio_test_hugetlb(folio); +} /** * folio_has_private - Determine if folio has private stuff * @folio: The folio to be checked @@ -1204,7 +1240,7 @@ static __always_inline void __ClearPageAnonExclusive(= struct page *page) */ static inline int folio_has_private(const struct folio *folio) { - return !!(folio->flags.f & PAGE_FLAGS_PRIVATE); + return folio_has_attached_private(folio) || folio_test_private_2(folio); } =20 #undef PF_ANY diff --git a/include/trace/events/pagemap.h b/include/trace/events/pagemap.h index 36c3a90f0acca..304652d6d8f2a 100644 --- a/include/trace/events/pagemap.h +++ b/include/trace/events/pagemap.h @@ -22,7 +22,8 @@ (folio_test_swapcache(folio) ? PAGEMAP_SWAPCACHE : 0) | \ (folio_test_swapbacked(folio) ? PAGEMAP_SWAPBACKED : 0) | \ (folio_test_mappedtodisk(folio) ? PAGEMAP_MAPPEDDISK : 0) | \ - (folio_test_private(folio) ? PAGEMAP_BUFFERS : 0) \ + /* data_race() is used to read attached private locklessly */ \ + (data_race(folio_has_attached_private(folio)) ? PAGEMAP_BUFFERS : 0) \ ) =20 TRACE_EVENT(mm_lru_insertion, diff --git a/mm/huge_memory.c b/mm/huge_memory.c index 30b7c63b0e359..8f4bcdccd8f35 100644 --- a/mm/huge_memory.c +++ b/mm/huge_memory.c @@ -4845,8 +4845,9 @@ static int split_huge_pages_pid(int pid, unsigned lon= g vaddr_start, * For folios with private, split_huge_page_to_list_to_order() * will try to drop it before split and then check if the folio * can be split or not. So skip the check here. + * data_race() is used to read attached private locklessly. */ - if (!folio_test_private(folio) && + if (!data_race(folio_has_attached_private(folio)) && folio_expected_ref_count(folio) !=3D folio_ref_count(folio)) goto next; =20 diff --git a/mm/migrate.c b/mm/migrate.c index a369d0c95c386..b7b92925a28c3 100644 --- a/mm/migrate.c +++ b/mm/migrate.c @@ -1327,7 +1327,7 @@ static int migrate_folio_unmap(new_folio_t get_new_fo= lio, * free the metadata, so the page can be freed. */ if (!src->mapping) { - if (folio_test_private(src)) { + if (folio_has_attached_private(src)) { try_to_free_buffers(src); goto out; } diff --git a/mm/page-writeback.c b/mm/page-writeback.c index eeab25d6ce364..0d754a678eac2 100644 --- a/mm/page-writeback.c +++ b/mm/page-writeback.c @@ -2705,7 +2705,8 @@ bool filemap_dirty_folio(struct address_space *mappin= g, struct folio *folio) if (folio_test_set_dirty(folio)) return false; =20 - __folio_mark_dirty(folio, mapping, !folio_test_private(folio)); + /* data_race() is used to read attached private locklessly */ + __folio_mark_dirty(folio, mapping, !data_race(folio_has_attached_private(= folio))); =20 if (mapping->host) { /* !PageAnon && !swapper_space */ diff --git a/mm/vmscan.c b/mm/vmscan.c index aaceed4759eeb..c2eb8fa9d5e50 100644 --- a/mm/vmscan.c +++ b/mm/vmscan.c @@ -1029,7 +1029,7 @@ static void folio_check_dirty_writeback(struct folio = *folio, *writeback =3D folio_test_writeback(folio); =20 /* Verify dirty/writeback state if the filesystem supports it */ - if (!folio_test_private(folio)) + if (!folio_has_attached_private(folio)) return; =20 mapping =3D folio_mapping(folio); diff --git a/tools/mm/page-types.c b/tools/mm/page-types.c index 7fc5a8be5997f..47e4781c5fc38 100644 --- a/tools/mm/page-types.c +++ b/tools/mm/page-types.c @@ -73,7 +73,6 @@ #define KPF_RESERVED 32 #define KPF_MLOCKED 33 #define KPF_OWNER_2 34 -#define KPF_PRIVATE 35 #define KPF_PRIVATE_2 36 #define KPF_OWNER_PRIVATE 37 #define KPF_ARCH 38 @@ -131,7 +130,6 @@ static const char * const page_flag_names[] =3D { [KPF_RESERVED] =3D "r:reserved", [KPF_MLOCKED] =3D "m:mlocked", [KPF_OWNER_2] =3D "d:owner_2", - [KPF_PRIVATE] =3D "P:private", [KPF_PRIVATE_2] =3D "p:private_2", [KPF_OWNER_PRIVATE] =3D "O:owner_private", [KPF_ARCH] =3D "h:arch", --=20 2.53.0 From nobody Fri Sep 25 11:05:58 2026 Received: from DM5PR21CU001.outbound.protection.outlook.com (mail-centralusazon11011011.outbound.protection.outlook.com [52.101.62.11]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 52DF8318BA6; Mon, 14 Sep 2026 02:24:45 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.62.11 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789352694; cv=fail; b=MwdLO3lIiW/9NjSZqApcgzHqqQWIaShU3/eA+/127GYEAvX11PEzoAiEdgJ3+AIjigaWy8zpZSgagiPgfA06HBJdMdYQ7S73Hnv7NAea8sYgynJJ7ONPquofMEyab61ClxKmBcTWjPcPi6cl4HbQsw/VfbHer0CuwhkufORLBdE= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789352694; c=relaxed/simple; bh=SqRQvZmOoOsQmY27s0Ol0Xec3p7fygf4FypSBNyKyGY=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=IENO9wtHx2QpVYTucn4ABhOtSnKAJMF0o6P/x+8QLCb9fNxF0HVYFot/AZvivDUVIogT878/UnIqFe4nji9d/l45JGErliOE0ih1S0cxqzg5I6lZpuX+z1U9LHU8kYkg4OJnxF5Zqy26LnYrglPooskUKg6Uu9KfKBjeREwkRRA= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com; spf=fail smtp.mailfrom=nvidia.com; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b=p0DQslNu; arc=fail smtp.client-ip=52.101.62.11 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=nvidia.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b="p0DQslNu" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=LM9M2Qdhm3GMwseAMMjt+SNQGVsvp52i3pQtaE5QTCnEXRzTa8GroZAgYgKAaMBqj+39q6Uxkv4vPq9LwSji55DosdtS84CcVxWLNNM20CENfwF3COkofeOoUwxnPIEWWfZB591xhoYWfJWz8wFct9rfe/kpCvo98YTOI4r1plEIxWusikpN3OXIy0ECSr0RiGCKhomUR5tv3TqY594afPlfc51fsnP/6PK2N26n93H2rXE+LcWmBGSrlhCKbfyo5E5Es+YHObdKcNhGYky1dqQaunR+Nv5wPKXPgYZyml5xxbqqkrY13SLxJtD4h6/5kWv5fb84gXK188AIKahobA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=Pxl8REd7pjZ/pxg+5RJBiZwMjGvhapxp0OyAm4Ema5Q=; b=LMAoMAyLz8M0UiVKlZHeUt+wVzUEv5GOA0XSGEplhVk3+j6yG71jeDjClr7U8uBsFeTwTKz2DgvIE6muMSCu1/W+Yh8+WlvgC/EOKy1fsApvAkxnegvgGS081oUjnz6j/LBSkLXMvkk27Qaq8W9KrYqaMNRGCcv8DoujFW7hNoLEGU9hixvRdupLnBT/xSuqfN7dsHfE9ybB9QhBuJnLvBM8tI7hxyOzb6A2RB8ptDYZx3Ri01AAZYvIPZ2C0JMEmLsDsBcutlCdptDbbj5+rn7gEMoBsexZixXskr9jJEKiKppQQkNxECkZZLH/n+xilzS5Wl/XUwdmofxe7aX3Jw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nvidia.com; dmarc=pass action=none header.from=nvidia.com; dkim=pass header.d=nvidia.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=Pxl8REd7pjZ/pxg+5RJBiZwMjGvhapxp0OyAm4Ema5Q=; b=p0DQslNu6b2Rasu6b42A1pguk18eeW5x4AJ3ewZzlc05GsX62B+sodBgUzWh81Ixo65NArzhngmO/d2p2zQmLUErO7+In2XVYY3kKQ2DLYjXzD668zyVV7hhR2UHnLQlrYFJbqNCUY5xK85AbRnqP10II/DMeYbADfL/LPAm8ITY3eF3S1Rp4e3/SM+Qi3hMqfs04MnQFqSqasJZ6IyHdP8FsAhjnTTEqKeiGwZ1S8Qliyx6UapemT7laMKCAURTYgwVDGke0A1HRaDq93XZ+Fb+xGLlTP06vdJTqAAWEALouDRnhJYkH/RElgmpRr4sd0D8Cl06Jaq74REkFAwYpQ== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nvidia.com; Received: from IA0PR12MB8374.namprd12.prod.outlook.com (2603:10b6:208:40e::7) by DS0PR12MB6486.namprd12.prod.outlook.com (2603:10b6:8:c5::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.406.12; Mon, 14 Sep 2026 02:24:24 +0000 Received: from IA0PR12MB8374.namprd12.prod.outlook.com ([fe80::d85f:4c87:ae84:3f16]) by IA0PR12MB8374.namprd12.prod.outlook.com ([fe80::d85f:4c87:ae84:3f16%5]) with mapi id 15.21.0406.007; Mon, 14 Sep 2026 02:24:24 +0000 From: Zi Yan Date: Sun, 13 Sep 2026 22:24:09 -0400 Subject: [PATCH v4 11/16] treewide: remove folio_set/clear_private() usage Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260913-remove-pg_private-v4-11-848550f7574e@nvidia.com> References: <20260913-remove-pg_private-v4-0-848550f7574e@nvidia.com> In-Reply-To: <20260913-remove-pg_private-v4-0-848550f7574e@nvidia.com> To: David Hildenbrand , "Matthew Wilcox (Oracle)" , Andrew Morton , Muchun Song , Lorenzo Stoakes , "Liam R. Howlett" , Vlastimil Babka , Mike Rapoport , Suren Baghdasaryan , Michal Hocko , Baolin Wang , Nico Pache , Ryan Roberts , Dev Jain , Barry Song , Lance Yang , Usama Arif , Gregory Price , Ying Huang , Alistair Popple , Johannes Weiner , Qi Zheng , Shakeel Butt , Kairui Song Cc: linux-mm@kvack.org, linux-kernel@vger.kernel.org, Zi Yan , Trond Myklebust , Anna Schumaker , Jan Kara , Matthew Brost , Joshua Hahn , Rakie Kim , Byungchul Park , linux-nfs@vger.kernel.org, linux-fsdevel@vger.kernel.org X-Mailer: b4 0.16.0 X-ClientProxiedBy: MN0PR05CA0019.namprd05.prod.outlook.com (2603:10b6:208:52c::26) To IA0PR12MB8374.namprd12.prod.outlook.com (2603:10b6:208:40e::7) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: IA0PR12MB8374:EE_|DS0PR12MB6486:EE_ X-MS-Office365-Filtering-Correlation-Id: 6d7e7703-464d-48d7-f4cd-08df12074ace X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|23010399003|7416014|366016|376014|1800799024|22082099003|18002099003|921020|10067099003|56012099006|11063799006; X-Microsoft-Antispam-Message-Info: q+gLqFu8heqleHJV/1a1J7FOrMr8ZveeBoOa6QVH+Q79ZGOBHdbE0D5D0uiHNFhX1C2ySmbLqgQAGKAynzNXL/ypjxzIBZeIS9Zy7UP87WmxIasiEZhI+FBiCXWu/SaykkCtlWEHm8QqT5uJQZ7RMC8muWTO4AYegp6ySkfoSN2lFiSZZQwEdYQaA8c1y/D521YXzyPeIu+obXv/Ed7lV/ySZjanFpCuuP6HBm/FQ63+V85NSm4sh8T7lNsBBuoLTM0mStvR6hshUcQgXCQuVeD+4cthZybRGL/Qq116tlGBjcRsDFc5PZ1IDFrnp3SqvpdPG3V38TL30UTi53Wv3NBokXHpBaFgFX7qOhNq+i/kSlJBH7SaiYc9qtCUzPyn6jS4N7AZwkdYe75lRIN4n6RiFhk2lGL2qXIK8Ymu6ysu+BPTJFI08dDjnVfgqebAvk5EodxnMyvJvYJFUW4/wQxYsZf7eP8kOS7T5jK2VkcoxxVkAsaNr9GFxQxr052gEwJOzjMzm/49fRsyI4/en0l12eYgHs+jRQ2v2LlSkONJKeaLUwThW7/cNeJsja1P6ZtJwV6H9eM4dBpboAE+7wKbv7kadRmc4bZq8kZAJKIJTMuWK7n+c7snNyDK1qXr6fP+SxpFWJwZq6dep3KDufPq+CONEYnQ9gPoy4NJgYhCWjSXBZFZjCDQ9evJlChaOftG73Z0LiMcqqY13CtF4g== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:IA0PR12MB8374.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(23010399003)(7416014)(366016)(376014)(1800799024)(22082099003)(18002099003)(921020)(10067099003)(56012099006)(11063799006);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?ajFvMkZvNGNqaWRDS0FiTmJtNFVONlJlbWZ4NjlreTNoVWF1d2xZbXlEckVU?= =?utf-8?B?TEU4em1wRmdQckl2amIvOTh0VUlGL0JKVkVVSWVPYlhrendFdnNsVEN1bUlx?= =?utf-8?B?YkRtUEtpNnRIc0JRUSt5Rmp3SDBDYjByK3ZYeU0yYzQzMVRYZUdWSmZpZU83?= =?utf-8?B?aEVNcEVCa1JKVXA0ckRqc3ZhZDVoUlQxYnAzWkNvZ3JueEM0NzJZdXA4RUV4?= =?utf-8?B?K0FGN1p3TjZKKzdCaFh2LzdrajFMVTFXM0Q1dmFIeUZ0VFZKTE9yVkNiL291?= =?utf-8?B?Y3pPS3NBdU5PYllKZXRSZmlBeEUrQWpnVG1UT3kyN09OU2Jsby9PU203eDFZ?= =?utf-8?B?RXF4cHJHdHZRdC9taTZnWXZaZ3pyd1dta2N5TUdGbzZ2MldhNlZHbmFZTzd4?= =?utf-8?B?RWlKVmJHRHN1MjlMcTk5Z3I5a1BkeGVHcGhSUWJHckc2Ui83c1MyaFZPSlV1?= =?utf-8?B?LzdJZnErUmlGVUo4UkdUeWZ3Y0VmMThpRlcwMzgzY1c0U2pvQUJJeVBXRVY0?= =?utf-8?B?dVRLMSswWEZsSzVMYitrVWdMN2R2SGU3dGhobTFUaWFBYWZlYjgyRGlCdTBC?= =?utf-8?B?eDdMRlozbzBaZzFNUEdJbk9UWXBPYkFiR2JRUE9XSURSSnJMcGlrLzl3dmdi?= =?utf-8?B?RU9tUlYxb04rK0Y5N3BrejFZWDZpeWoySlZGZnFtMDVHZ3p1ZERCbEQ2cG9s?= =?utf-8?B?TVpxczdvZDVXK1lSc3hwN0lOS0V5bk00UEpkWHI5V25aM2IyWEgyaTAwWmpi?= =?utf-8?B?WUVCdHR4MCtVbDQ1SDQ3MlhJanBFVVVDaVVpd3RsNE9yaERGaFg2dlFTdWgw?= =?utf-8?B?WlozT2t6NGJPV0tsSDRVQytaTGV0S1pFMGZ6V2g0dWJIOXIvd2srRVVmSmVD?= =?utf-8?B?a3VLR2wyNzVVUXVBbkx6dStXV1ZnTnhXMFY4VktFcmhtUlRZcUl2bys0ZUtG?= =?utf-8?B?Tmg2ZVBlRkR5VEM3ZEQ1bTdQTEpaZEcrUnlFbXJ4S09PRzdZQkR0NjQ1bmha?= =?utf-8?B?eTQwSWxiS0dyc1lMQUVCb2I2c0JQOUhEMlZYcXBsL2pZNldOeHltSXM2ZWk4?= =?utf-8?B?NTZ1UEU2TGVqMlJlYjI4NHhhbU9COXVCQjFiTTZ6ZFRxcUx1YkozcTBVYWlu?= =?utf-8?B?VWkwVGZ2by9sM3NkL0ZJM0NXcG9KQjE5KzBQaTJJYjh6NVBCemhham1ieVN3?= =?utf-8?B?ZGlvU3dpQ2tpMlRHZkovTlRNTFFXOG1HMDFCQmxlN1VWU05rdDQ1eDdrblRw?= =?utf-8?B?bTFtQ1dLQ0swWXhQN21WbmZER25sVWF0TEp5bWROYXlNcGgxTTJOVEI3SEJ1?= =?utf-8?B?M2pGbWVkOTVHdlhnMlhJMGxGanc1emVzakEwR1A5OVFHaUNWK3l4V1l4N0Vl?= =?utf-8?B?RysrVHBScHNEc2xRZHNSd3pXWEEvOHdnTFp4bkZCc0ZTYWFrUk83d0U5QnZ3?= =?utf-8?B?Qm0xQmJYd21uS1RQL3BJM0VQV1lRblllbWVDanVUWC9YWXJzZDFPbEVYNU01?= =?utf-8?B?RGs3YVhsYmhtSTR4VGNaZzl1WXk5ZmRBcWRXKytYVFVnek1PSlEzOE84cHho?= =?utf-8?B?UjRBNDdGaVI4RlpZMkt3WnduWWNVUWR2SS9memNmVWdjbmNZNWN5NU1SMXZB?= =?utf-8?B?ekt2OEJncW90Z21wWDNpd0FqNkxLTmd2cW9zZzZSTXhQT2xGNStGUDNiYjM4?= =?utf-8?B?TTA5OVdYYlJzSklXdGVqeUpjVnJkNzBsRE9DVFJlalVDaG9VL0ZrNGd3T2tF?= =?utf-8?B?K0QzclVWTFVSQ2U2QzhwY1V5dDRGc0VMdVJkRHRIcXJIZEtpa0dsQVVRa2Mw?= =?utf-8?B?eFNEYXcxY2E4MTRTblhsSnBGb3FnQTFDVWFFYXUyc0FlTjVTNGVac2pVUmdj?= =?utf-8?B?V3JVVElpeEpSWjlsRGRZZ2pKdnVWVmVzQy9ObHNoTWVVaU5kRnVpamlhNkxw?= =?utf-8?B?ZlJQdXI2RHllQ0cyU0xQSWlHZ05VWWhaMmRYUlIwYUVGSm9iUy9jc2E4aFRx?= =?utf-8?B?UlB6N1FGKzJIc2UyV2hWZjhMaHVxckd0Y1BYMVI4YVIwY0hLZTlQVTFDU1gz?= =?utf-8?B?ZisvbDBFblMxQkdWY2pMd0Yva2F4dmIzcis2UTNQNUZTQXkyOTFjbUxraW5Q?= =?utf-8?B?WU1IY1lTNUxNcVBURnE3akVYT1J5Mzk4R0YrQXprTEtYMWo0Q1d1aU1XeElT?= =?utf-8?B?SGpjSjRNdC85VmJmSGQ2WWF3RExSMzJzQlBjU0V0V1lGa3MyWEtmNlI3NGl3?= =?utf-8?B?MVlueVBPNzdvRWlyWjB2Tm1IWm1kSW5vRTlqOVFDUmgxdXM3cXlUYXJTMFM3?= =?utf-8?Q?1QBu428U+UxwQK14U1?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 6d7e7703-464d-48d7-f4cd-08df12074ace X-MS-Exchange-CrossTenant-AuthSource: IA0PR12MB8374.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Sep 2026 02:24:23.9942 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: AQEinLwrvbyOXbZW5X63oJizCJcxy8SNDUBLwikmM8TDk7IPgbCIidbAU8KxxU8+ X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS0PR12MB6486 They are no-ops now. Remove them. Assisted-by: LLM To: Trond Myklebust To: Anna Schumaker To: "Matthew Wilcox (Oracle)" To: Jan Kara To: Andrew Morton To: David Hildenbrand Cc: Zi Yan Cc: Matthew Brost Cc: Joshua Hahn Cc: Rakie Kim Cc: Byungchul Park Cc: Gregory Price Cc: Ying Huang Cc: Alistair Popple Cc: linux-nfs@vger.kernel.org Cc: linux-kernel@vger.kernel.org Cc: linux-fsdevel@vger.kernel.org Cc: linux-mm@kvack.org Acked-by: David Hildenbrand (Arm) Signed-off-by: Zi Yan --- fs/nfs/write.c | 2 -- include/linux/pagemap.h | 4 +--- mm/migrate.c | 1 - 3 files changed, 1 insertion(+), 6 deletions(-) diff --git a/fs/nfs/write.c b/fs/nfs/write.c index 623e7ef1f73d5..b6967b5286691 100644 --- a/fs/nfs/write.c +++ b/fs/nfs/write.c @@ -717,7 +717,6 @@ static void nfs_inode_add_request(struct nfs_page *req) nfs_lock_request(req); spin_lock(&mapping->i_private_lock); set_bit(PG_MAPPED, &req->wb_flags); - folio_set_private(folio); folio->private =3D req; spin_unlock(&mapping->i_private_lock); atomic_long_inc(&nfsi->nrequests); @@ -745,7 +744,6 @@ static void nfs_inode_remove_request(struct nfs_page *r= eq) =20 spin_lock(&mapping->i_private_lock); folio->private =3D NULL; - folio_clear_private(folio); clear_bit(PG_MAPPED, &req->wb_head->wb_flags); spin_unlock(&mapping->i_private_lock); =20 diff --git a/include/linux/pagemap.h b/include/linux/pagemap.h index 1e3462357aaa4..bcbb0afe1a681 100644 --- a/include/linux/pagemap.h +++ b/include/linux/pagemap.h @@ -594,7 +594,6 @@ static inline void folio_attach_private(struct folio *f= olio, void *data) { folio_get(folio); folio->private =3D data; - folio_set_private(folio); } =20 /** @@ -629,9 +628,8 @@ static inline void *folio_detach_private(struct folio *= folio) { void *data =3D folio_get_private(folio); =20 - if (!folio_test_private(folio)) + if (!data) return NULL; - folio_clear_private(folio); folio->private =3D NULL; folio_put(folio); =20 diff --git a/mm/migrate.c b/mm/migrate.c index b7b92925a28c3..7e3a81f069744 100644 --- a/mm/migrate.c +++ b/mm/migrate.c @@ -835,7 +835,6 @@ void folio_migrate_flags(struct folio *newfolio, struct= folio *folio) */ if (folio_test_swapcache(folio)) folio_clear_swapcache(folio); - folio_clear_private(folio); =20 /* page->private contains hugetlb specific flags */ if (!folio_test_hugetlb(folio)) --=20 2.53.0 From nobody Fri Sep 25 11:05:58 2026 Received: from SN4PR2101CU001.outbound.protection.outlook.com (mail-southcentralusazon11012053.outbound.protection.outlook.com [40.93.195.53]) (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 3B3112931FB; Mon, 14 Sep 2026 02:24:52 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.93.195.53 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789352693; cv=fail; b=TpRN8tXIcMtRmXMpAmC0d1ceVRApfVwpThLf1W96E4G9ZnDL47tCHRo5kTbjfuAzAzzNbP6KMETPzI8uGyVnGk2hd77R2ugJt2mtDLNxkJ87pVBeHQGVvx1H2D/7iHCFMe/3trflHlQWgizD4BZ2SV3FSdl521zrUw+PPiS1QbY= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789352693; c=relaxed/simple; bh=JMBejRr0zTQ/2NO8yv4Fj1sDn7IaKJBHaB1LZW/VBJ8=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=ohIn6oHQEGXzof3V6/xDy3uxF0wP10dzlJm5g74ZuASCW2MJ+4lduydj7eXSPO17HMNQ7n76NHkfh2AZNSJdWg7htfeOJwmGNYb1OLcyYNRgGBwv57naIyofRUFk6lc6cn5U6RWULLiCdX8smt5aXKNkHU9mtEDrpAhFahk0v4Q= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com; spf=fail smtp.mailfrom=nvidia.com; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b=QXQzfwwv; arc=fail smtp.client-ip=40.93.195.53 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=nvidia.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b="QXQzfwwv" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=PaxXNSpI6TODkYWL9shT0vl4zVvRZsU+hApWY4o0a0astCV9Vus1mkqQFdaU6JSazBR4GgH7q+0MWyBSMWd3UpU1W40M6R4uIPO4YOSaAICjFO0WEqQQBc3uHVwY7WEYaUrTKnXIzPLd3FfN5gtT9jSts3bKxAoRseGp1j6TvpheFIGRIyi3FIV2WRaUGU/Pj3lT/ReBISrkGtYlTv9t/qmqfoi50zAun5q+paMGMrDllYG2idfidTY2CSIfkMeM1cvqCk8au5ba6x79GYn9LwafF+bLBy5KQZKT2Pm2J2Y9wm5W2BR1ucgzBjPn2P0jnbl8sBielTjYseTh35LtUQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=L+d+Fji1lSsUnU4WZ0rfh9rKpMGcZbpGtwR072r+wQ4=; b=hNlQCAMebmy2Owuw7vknKupQ4MyVYBduboEBx58pL5GawuCHdtimym4bsAgIr7ovfcCwD4CAJb1Eb6a5yukqyzkRSxud4tovz2KbOj4rbI3msUKOiEpOO81gKEvW+rGbNCpW6iYmXB/TeH/nGuQyuZOfwuY17XLTcvFBKkhc6EJaUKnb3ipb8q2vHrAWadBoM2NONvEd0OazhRQAvRa+rA7qjLxMOHcCCD7U0B9Ga9jPfkIRN9wwfhJ9dxIGSi0+Kpsw15iAzG3MCSi/ay/gbH/tKvC6UjcszXdh+DQxwkNxywkY91o1/4WUu2AvG3qRCVBoYEXDvqWP83RoAHsHXQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nvidia.com; dmarc=pass action=none header.from=nvidia.com; dkim=pass header.d=nvidia.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=L+d+Fji1lSsUnU4WZ0rfh9rKpMGcZbpGtwR072r+wQ4=; b=QXQzfwwvw2Hp7PQX8HtDr4GVw1KpPjlrQTnFYsZhMnmjwmzYgDG/niZsk+RYVbp1KyYYmRkIX0Vv86gmEC4/8nmu3slVWXb9O7TvEHGCHfFy53kOtId+I+q07TNQP9ehyvU6BCLmvriJRNEFPslpclGVhoF1+MLvLbRkG/0c/CWCoYDFt1QIK5Q0Wt2UDgqEbhMV7qGO5HhzDwHkAyZq59KG2agGxpxz+eApe9xjDE9kDIg67a3JelNNJyINnCsSkS0KG02dwVXVXoeoZJeNT90M7u1jDgp3030MXKyIBc14qRLgJQO/OeeQOLZjpQSXgqLtauYXYkkBhYdoZCUvOg== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nvidia.com; Received: from IA0PR12MB8374.namprd12.prod.outlook.com (2603:10b6:208:40e::7) by DS0PR12MB6486.namprd12.prod.outlook.com (2603:10b6:8:c5::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.406.12; Mon, 14 Sep 2026 02:24:25 +0000 Received: from IA0PR12MB8374.namprd12.prod.outlook.com ([fe80::d85f:4c87:ae84:3f16]) by IA0PR12MB8374.namprd12.prod.outlook.com ([fe80::d85f:4c87:ae84:3f16%5]) with mapi id 15.21.0406.007; Mon, 14 Sep 2026 02:24:25 +0000 From: Zi Yan Date: Sun, 13 Sep 2026 22:24:10 -0400 Subject: [PATCH v4 12/16] ceph: replace PagePrivate() with page_private() Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260913-remove-pg_private-v4-12-848550f7574e@nvidia.com> References: <20260913-remove-pg_private-v4-0-848550f7574e@nvidia.com> In-Reply-To: <20260913-remove-pg_private-v4-0-848550f7574e@nvidia.com> To: David Hildenbrand , "Matthew Wilcox (Oracle)" , Andrew Morton , Muchun Song , Lorenzo Stoakes , "Liam R. Howlett" , Vlastimil Babka , Mike Rapoport , Suren Baghdasaryan , Michal Hocko , Baolin Wang , Nico Pache , Ryan Roberts , Dev Jain , Barry Song , Lance Yang , Usama Arif , Gregory Price , Ying Huang , Alistair Popple , Johannes Weiner , Qi Zheng , Shakeel Butt , Kairui Song Cc: linux-mm@kvack.org, linux-kernel@vger.kernel.org, Zi Yan , Ilya Dryomov , Alex Markuze , Viacheslav Dubeyko , ceph-devel@vger.kernel.org X-Mailer: b4 0.16.0 X-ClientProxiedBy: YQZPR01CA0105.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:c01:83::22) To IA0PR12MB8374.namprd12.prod.outlook.com (2603:10b6:208:40e::7) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: IA0PR12MB8374:EE_|DS0PR12MB6486:EE_ X-MS-Office365-Filtering-Correlation-Id: 9f00df2f-b336-4c40-407f-08df12074bc5 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|23010399003|7416014|366016|376014|1800799024|22082099003|18002099003|921020|10067099003|56012099006|11063799006; X-Microsoft-Antispam-Message-Info: v6ra46yqbCE0QGthcSarjn/f7barJW+D+ar9eW3EGkkpT2vRkqv8njqWvw1Xpt3qvxRpN0yPikqv9ljbTIiEEwlkRybo1ZVyGuHZOBE+ALGYoClWjIlOzeAELkGBY5DkM385sRofRQd5wM1t+1oAbMgz1TAFUeIwixYHz9R8WzHSf4HPaqbP3iPyxI+DW83OLkwACAT3W/sJ9/5XR2/fYkxO2dONoAEess/A+l0akOUc/pflsJce8x14SGHzNZBreGbGFf515fX2o3SLDNXNZnYflM76jXqSN1iEvE35ljtTFACaKwgHDyV82gUkbCEARmIJbNEXT/fng67QBfjA4hzU1JytDLYSqdsm+4wBMhqn176UBjJiEm67vcIk/qqw0372iV0VNdfzcj/MFGd2UWMZt3NUJg7nO/hn/xgmX7eSyTcjJpd23h5ExnkPbWb8SmyYH0LmIrBuKqE0mmWA4AxGWrr/U8jPg8MfnyEMJ0Bz5+HLGIbFUwDVo/G3ptKeL7e8iP+liePFgpf0ugeTl6tssmhAO7EOALd5jLEuWOc9ufsmXm7BsV8vtz1xHTm9Anbspy25t5cGZLHwAwA9Q7gVbBWkvsZNDvxiRMeoIVCutQ9liDkaDDLQ5G/EnNxOQ5oeuQjelwpxcB94LmURrab8Ri+VWaXbk8GNlrCg2fPAEW2Ls49UZW5KPwGAfFk1TYQ6ZrxR5rlmlz6AC1yGQA== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:IA0PR12MB8374.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(23010399003)(7416014)(366016)(376014)(1800799024)(22082099003)(18002099003)(921020)(10067099003)(56012099006)(11063799006);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?WHo1OXdJY25NK2NhNHIrU2xOQTUvTWNOVG81U20reTluYkV2MFFmbEYyMkZZ?= =?utf-8?B?djBDQndkemtob2JaeUtSYjQ0b0NWQ3U2UmdxU1krTWlYdFJyNjBCaVpsL1hX?= =?utf-8?B?bTFGYVhhYmFNQU5rQi9XZGVmTGg5dE52NVZMNlhvYnVkb0lEdDI4ZmxrM1Bl?= =?utf-8?B?UjJ3Sy9HTlpLZHBrTloxU1VFS3h2NmFrOE4xc1N1ajJKWDVNamxyMFQzMzVk?= =?utf-8?B?TVluMFlYeGkvZEJQNGwwVmZiOWFDOCtTd3pwd3pvUWlwdnFTejVReGlWVXRx?= =?utf-8?B?Yk5TeWZOcS9pSVhLSnZQTFBXV0lCTXhKYVA0NkJ6Z2ZsS1J4YlN6V01TVXhi?= =?utf-8?B?ZjBET0tPSmNsZzB4WDRpWEpYS284QXBlejRSa1F6Wm9XdlRBM0JkRTNFTWZ0?= =?utf-8?B?TWh5K2NoRTZKWkxVY3krWWVTb01CTHRmS3hMZUt2WEJmbTRWUUhsZEN4UCs2?= =?utf-8?B?ZVEzajc3SUV1b0J0SnFLT2ZxRktieUlEeEVTaXY1Y2twN3QvTjVUYnhNckky?= =?utf-8?B?bjZ1Y2ZEbWw5V3VjQ2xPbzRtdmlVTHA2b21WUkhVSFdzQU1OT3FaM1BONExu?= =?utf-8?B?dVh6NjNpeVhjbVM2Z3JuRmMxOVduOER4MS9SV3lCWExXRm1kN09IQ2JyNmhp?= =?utf-8?B?MUpya1YzeFdNVmk0U3JCRjVHcnJ6M3hrd2xMbmhNeUV6eTlrTWNKYndiR3V2?= =?utf-8?B?c2xVMkJWbzNyZkluMGdndFpIZWc5TytvNHZpTy82dXFCQ3k3TkNzQjFMOTJj?= =?utf-8?B?Rmx4c2RURk4yUWhaWE5hVnlJS1U1ZExTbG0wazRxU2FVRjRQWVRyNDFMTVdj?= =?utf-8?B?Z29qUm0zTWkyYTJmbXlvUHVsbzlMMzNkckZFbm4zamFEbjJ4STVOTFBKdEJM?= =?utf-8?B?WU94WDFZVis1SitzcXlSZWxwcHJEaXcxV0lPTnA0SEoveWRPRGxqdFllMXZ3?= =?utf-8?B?SmQrcjQzanIrRmJhZ2FZUVkzcDNNd3JiWXN3UDFNWTNlME1FQjh3Z1cyeG1O?= =?utf-8?B?NEpCYWljdC9FNTFRcDdtOVFGV0xxR1kzUU1SeDdicVRYdjlZRytSUlM2cHY4?= =?utf-8?B?NW4wNnFSaS9Qb2g5eVJPU0NabXU1cVZnbkd3aVlacW5YYml4ekJKeURRSEw0?= =?utf-8?B?elE5RFQweVJVSzN4bVFhQ01VZk9xN0pkRkF5eGVaOGUrZ2hGb3Mwd3pWb1hX?= =?utf-8?B?YlBVQUNiSG1jd1pDNGUzUklBQVRvbjAyY0M5OGZIYXQva0I1SmRlSmF3UFhH?= =?utf-8?B?RnFzQ0ZVNE85cFJuaXRiVUpqWjVQcDNXUzgwTkFxWWJ6VkpISEY0ZGhhLzIy?= =?utf-8?B?ejFJNVpaa3BDRHhEYk5uVDVhVVpCOHdNMXVyY0UrZks4VjU2WGdZdVNkd1FU?= =?utf-8?B?ZFE1cDVMZDNZWUJydFRlZTZqNFVES0dURk9TSzZRZ0hBcGlYVUVaSXJlVTM2?= =?utf-8?B?OC92TkZOd3kyR2o3T0U2R1JhcUhZZ0FHaCt1N3EyVVp3NmlEWWs4V0owMTZP?= =?utf-8?B?eFM0Z0ROeThDeDBjSzUyc0NmMkN6eVloSGRFWVljd0VwakIvMHcwMnpkZXhx?= =?utf-8?B?d3p2K2lEeW44Y1lxd0VieFlsVnlXMFdaWFEwZ0MvYUtWajVwS1NueWF4UnlD?= =?utf-8?B?alZocGN1MmhTKzJDMExSakYxRTNOZ2lFRFVGMlhYQW1mLzN0K3RxYU5FY01O?= =?utf-8?B?cjYxN2xmWUx6cmw5bGtJaFZnMlg3VmIvbkZNb1dOVzBMZ1hCQXZ1QTFjcDc5?= =?utf-8?B?Sk1SUG5iQzJzZ1BLcHMxREtJelh4bGoxQUFBMENHM3pDbmozWVM5VkFtalo0?= =?utf-8?B?WkRRcnVDTmo2YWlNNzVRSDQyN1hhbW10ZzdWTGF0S2Y1RmRzcytQeVZpYWxq?= =?utf-8?B?NzMwL3VBTnF3TnByU1pQbTYwUnpTdWlWeFlFSTAvV3oyNzdmRWZGNk05d2Mz?= =?utf-8?B?WU93V1AzbFFyODV3RzhPNmsxYXQzNXcwV2p4RUVTNThvaU45NGxkcXlFdVNp?= =?utf-8?B?U3A4dTFLOUZYdGdiaE9Gd0V6bnlvWUVERll0RDZJZjAxTFNYd0ZIZ3BFSHpN?= =?utf-8?B?ZzZJWENnZG1kWjBxZXpsQUcyUEE2TVlqK2VwVy9kNDV4TWhzcGFyZ2x5NU8z?= =?utf-8?B?VkZ0OEx0YjhqM2J2b21WakQwaEdDVVpkWGdGY2dUaVI3aXJhSHBxQ3NwNysz?= =?utf-8?B?RkxOYys4RXpyVmtBdVFIbDFhUjdmd1Z1TGFuZ0FhWHd6SnBUbFhBU2M0cTI3?= =?utf-8?B?OGJGbTExZFZkVlhWY283ZGxsUHltOGRjQVcvWU92enFxOWhNenJpSlFzdmNm?= =?utf-8?Q?hEqtmjcYTjEXGjx3Oz?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 9f00df2f-b336-4c40-407f-08df12074bc5 X-MS-Exchange-CrossTenant-AuthSource: IA0PR12MB8374.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Sep 2026 02:24:25.6209 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: OV0da6kPseDRK56Gd2i1gI5DktRQTbIqvNy5D2Eui1HX5lRUQVxiEfVJQaAaTcpK X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS0PR12MB6486 PagePrivate() is going to be removed along with PG_private and its implementation is the same as page_private(). Assisted-by: LLM Signed-off-by: Zi Yan To: Ilya Dryomov To: Alex Markuze To: Viacheslav Dubeyko Cc: ceph-devel@vger.kernel.org Cc: linux-kernel@vger.kernel.org Reviewed-by: David Hildenbrand (Arm) --- fs/ceph/addr.c | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/fs/ceph/addr.c b/fs/ceph/addr.c index 657c2cb0f8811..1aca181d28c62 100644 --- a/fs/ceph/addr.c +++ b/fs/ceph/addr.c @@ -70,9 +70,7 @@ static int ceph_netfs_check_write_begin(struct file *file= , loff_t pos, unsigned =20 static inline struct ceph_snap_context *page_snap_context(struct page *pag= e) { - if (PagePrivate(page)) - return (void *)page->private; - return NULL; + return (void *)page_private(page); } =20 /* @@ -124,8 +122,8 @@ static bool ceph_dirty_folio(struct address_space *mapp= ing, struct folio *folio) spin_unlock(&ci->i_ceph_lock); =20 /* - * Reference snap context in folio->private. Also set - * PagePrivate so that we get invalidate_folio callback. + * Reference snap context in folio->private. Setting folio->private is + * what gets us the invalidate_folio callback. */ VM_WARN_ON_FOLIO(folio->private, folio); folio_attach_private(folio, snapc); --=20 2.53.0 From nobody Fri Sep 25 11:05:58 2026 Received: from SN4PR2101CU001.outbound.protection.outlook.com (mail-southcentralusazon11012053.outbound.protection.outlook.com [40.93.195.53]) (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 F2D43316199; Mon, 14 Sep 2026 02:24:53 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.93.195.53 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789352699; cv=fail; b=rR8Oe2cKPRXmAqiHDpomJpDivWMEwYPNYf/W/sebGmF6/VHO/X93PZPHqbzXLmQWWpCjloztA5jTRh7JtsybsYceznt/9UesZcF6KLCOZwtD5ufc6BFzA1GGhMwExIDCCaSzWzHBiZpVDgimDW6IuiDdvob110hhKJQngQwNC04= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789352699; c=relaxed/simple; bh=agCJizruJlF3nAug7gTmM1DQyo8eSIniBSYyIXSc3WQ=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=cH15i0zBYo4R9jbQVsHOVhmwpRRok1FyVHEM92lFBiOgwBjq7/GZk1gnf7OkLekqAd/EHnyP7JJ8zvi4J4SlThabDxvCM3ZaPzW48Vpx1L3RyXlHPrENfOSaf4kVTlTkoRFsgSySWCkI++UiOfaOtog5l+WIavUBQGhficFPLt0= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com; spf=fail smtp.mailfrom=nvidia.com; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b=qs2DllZP; arc=fail smtp.client-ip=40.93.195.53 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=nvidia.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b="qs2DllZP" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=a63Py/DwKtXFomzQlH4jTIpgUWzlquj5phRgrYkm4f4EXKMkptLsIqfARIqnQIyjco3UX4UPgPhng9fCr9nZdkAyQltFRXBia1UXlZwKqLqPYNkQzhbD7RqJi9w/RoiO+RqNxivuMwGGuXvCMWRGgJywe8YySepMPvYWK9KUyLKpVD7pXyHpqYXIqmGfaKKyQ2T6YfU8eTFltX15QyHsHk8iqn5o4LyExpvcR/j0Kopw87SHCCUKaIbP9EHDNfVEOUBX92Q3qGPSpdhLQxKPhbsf2Nu6cNRKJjBMMdA9W3DR0BhLaYuERTvbUMbWbKSxzDCNdwFQo4adgDTb5xPWOw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=LDlA0+heN6S6+Mwdl/1woktOf81BfLWp8uGIODOxyhM=; b=w3huh+7Rwtjf9BjgkwWCfo9tHdy/LOPCpsXMIH6+PKDo6h7XNSAW40JmnAYsueXmkRLfkobpxmwAn9Nfv8Meu7geeP2UFX4tPy7HcN+k9/gex1jP8PjoAoxCmUf8BoZg5l+u5PFCnjAmcxohbPprqBLFe3kJUif8n0WviWXBulmPg5u2bdClIT7Erjc6SZj6D+CXeslK6mgk7CWhPIAl2DgmSxFs9GvlkEGtNOHGIE/D7ageeuO7u59zijNHMPJ1RgXNWUktiom4/Mw3oB4wll6pbZ2mjHvR0vACgtkrfBJeFlmNmY4dLMCNPba14xsFZstfT0pAqBYn0BoFWkHByw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nvidia.com; dmarc=pass action=none header.from=nvidia.com; dkim=pass header.d=nvidia.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=LDlA0+heN6S6+Mwdl/1woktOf81BfLWp8uGIODOxyhM=; b=qs2DllZPGLK4i+Wz5sQ1qJM/kSXDiah71w6Be8YhF5sq5zTUP7KohQ5OvpKxGtgdslglFQ8Rw6iyBEjNejsIYU8KJFhG4ICsKsOJyQ/oEu1q10TKU8Zu4ZKvTV5uZRAqWdPTCVmaoQ9CxnhC4aWjYOhWP6JIVbaeDy/5NBKNqcem4BY3ru9TMbKzWWjQbD5DqLWKq+GU7R44xmoB5qS2tVAnVpc9ToiE8Zfsd1L5qE7FCNXxiwB1dAMuM8Kg8y22jf6hFKaDVkIQGMi1++FSt3EOl4ovSSTJ6Toxl2yJ5Is9VrnXleiqXOQy3EsAK8Z9cO15M3XlcOnhhx6/SIEO6Q== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nvidia.com; Received: from IA0PR12MB8374.namprd12.prod.outlook.com (2603:10b6:208:40e::7) by DS0PR12MB6486.namprd12.prod.outlook.com (2603:10b6:8:c5::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.406.12; Mon, 14 Sep 2026 02:24:27 +0000 Received: from IA0PR12MB8374.namprd12.prod.outlook.com ([fe80::d85f:4c87:ae84:3f16]) by IA0PR12MB8374.namprd12.prod.outlook.com ([fe80::d85f:4c87:ae84:3f16%5]) with mapi id 15.21.0406.007; Mon, 14 Sep 2026 02:24:27 +0000 From: Zi Yan Date: Sun, 13 Sep 2026 22:24:11 -0400 Subject: [PATCH v4 13/16] md/md-bitmap: replace PagePrivate() with page_private() Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260913-remove-pg_private-v4-13-848550f7574e@nvidia.com> References: <20260913-remove-pg_private-v4-0-848550f7574e@nvidia.com> In-Reply-To: <20260913-remove-pg_private-v4-0-848550f7574e@nvidia.com> To: David Hildenbrand , "Matthew Wilcox (Oracle)" , Andrew Morton , Muchun Song , Lorenzo Stoakes , "Liam R. Howlett" , Vlastimil Babka , Mike Rapoport , Suren Baghdasaryan , Michal Hocko , Baolin Wang , Nico Pache , Ryan Roberts , Dev Jain , Barry Song , Lance Yang , Usama Arif , Gregory Price , Ying Huang , Alistair Popple , Johannes Weiner , Qi Zheng , Shakeel Butt , Kairui Song Cc: linux-mm@kvack.org, linux-kernel@vger.kernel.org, Zi Yan , Song Liu , Yu Kuai , Li Nan , Xiao Ni , linux-raid@vger.kernel.org X-Mailer: b4 0.16.0 X-ClientProxiedBy: YQZPR01CA0018.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:c01:85::11) To IA0PR12MB8374.namprd12.prod.outlook.com (2603:10b6:208:40e::7) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: IA0PR12MB8374:EE_|DS0PR12MB6486:EE_ X-MS-Office365-Filtering-Correlation-Id: fdcf1796-5981-417b-1b85-08df12074ca4 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|23010399003|7416014|366016|376014|1800799024|22082099003|18002099003|921020|10067099003|56012099006|11063799006; X-Microsoft-Antispam-Message-Info: 2ESeYIuP4ZkDLgDsg3iO8tptM8WKRcM92E0wQguGTZ3DStqA46D4apTLVZ/PJo0WXzKk697WXW89vNP4BofzuejrgiFoIDxfMaFuDhurjkoONbQyasKU1pRYMgYQgj1+gnALt46D9FWjFobq7LWiPL7/gjz8ZJY/2lxZgnmWY49Mk2Abo6SWrarq48EnsSfP0Xd2WbU1k+K0nT/sx2DkpviN0kYzCVHPiEwdQyu+d+AfHqM82tof+kG1SPq+gyW+3f2x6IzxITC9+wKCoh6m20a0Dj4m1u2TkofJTjD2WDoeHJOrS5vfsMSIBFnf6oiYGuoGE+hQDmcLO3eqGli32aLYLCnCoxt/9smsMQ4e5AMr5dwpSmHkf2bqYk3t9BpZgsdfKyy1ZlXu7MG4ala4FaZrSLAHQTJbf35LIg2/qTKBZbiBzTMWr9TgLz2L8FDhpBlooRdnemrtaY/6q3FCkTWLdKG9UrBapUpY7z264UHfS5ZopH6tHFe7obcJPd2vIGbnyuhe+Juu3Pqppv9z86yxikZ26bGtNEjXWD5t4WjybMqmSqlr1giMUamVGkywrsuAMyDGOVJzViv2FbVX2/hNa4PHUGboR4PnWiXFdu2hO/06ounF6ohGyafxulnxspeehBIN5h60OsWyN/HtV+nbWylWCrmUNz6CjlT8ETSf/rtpTUPpqQPUy0+wzpLi6M/GFWeVNhs1rRMlSCToRA== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:IA0PR12MB8374.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(23010399003)(7416014)(366016)(376014)(1800799024)(22082099003)(18002099003)(921020)(10067099003)(56012099006)(11063799006);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?c0RVd3JFV1hrVjRkRWxIT3NhVkYweTZKWlFSYTQrT0diSUorNkcrQy9RRkNS?= =?utf-8?B?U2tWdVF4NWRDVDl5NnU3b1NycE83MTh0QjdrckZ6Nlc3OWNiVko5YW1TNHNh?= =?utf-8?B?WlV4WDZkRXo1Zy9teUxIc3dLd1BDU0gwSXlqeVNlWW5HWDJFMk9TZTRUa3Ir?= =?utf-8?B?Z0R4akNUbW9BUWprWkt1OFVRa3lzeEoxc09QdFZ5YlhOTWpJS3dQcklqQ09s?= =?utf-8?B?WUppbWZIczY5UHZ2M2t4ZksyZzltbGtjbW1wLy9DNVRPbjV0eS9zM1NLUHE3?= =?utf-8?B?N3RiT05weDAyWGFlUmdHdjEySTNmVEY3RVdCT2U0dVVuWU1zSXBKYWxNdEdv?= =?utf-8?B?WElIdjdRY3lTZGI1dW1YL3h1THVPU0k5NlRJcitmdTV3VURqb1VZM3YvR01E?= =?utf-8?B?TkdXbGJqUnpTUFplYU5sZFlGWHdLWU43Q2JUS21VczEydmFRNTgyTkdjQ0Jm?= =?utf-8?B?OTN1MFcxai9MdGtQMVpEY2oyd1JWQnhtbXdRN3JFT2w5T0FHUnVvWkRwSzBN?= =?utf-8?B?RkJCcGJuRG1rK1ZqT3JqSkh3eE5KTUZ0amNkRFJFWWUwZWVwTGtaNTZxTDN0?= =?utf-8?B?dEpPU0dhc2ttY0xnbTdMQzZGak8yaFlna29EUFJWWUNnUFJIV3N2QmpVMEZm?= =?utf-8?B?TjN4MmZ0ZlZUSkJFcWhVSGw5bDdrcXppM2tjMTNXdWU3K0ljbjNJbm16aThV?= =?utf-8?B?R2FDaE1BcGxwVTJnakg0ZzNPWmt0amFlZ2lmVDQ5U2Ivams2VlQ1YmFBTUVJ?= =?utf-8?B?MDRaNEt4ZVVHOXFGWVVaODM2TVFoNHpNVkREamxUclQ2QS9hb216bDQvc1cx?= =?utf-8?B?MHkrWk03Y1FOV3Z2YTBYa3RheWl6Tzk4dXhyUGlUZXFOUldvY3ZTNmNGcC81?= =?utf-8?B?T24wQTkyZmxFcEhkU3V2QUxzc0hmaUVEd1FKQjlXOTJDL2NyT3FNeVl2T2Mx?= =?utf-8?B?YXloVTNDQnZrc2lvQUlYRkNLS0toWlNtUndYMnprU2NLSlN1a054cDBpOUZt?= =?utf-8?B?NXp5R2VLaXR2NEdWOGFjTTJGemIwbVRnSnVSVFpKdFowcjdicDl5ZmVScnlQ?= =?utf-8?B?T0ZFNkRwWmRveGVqbUlKVTNoam1CdTJkb3JkQ215SkllOHZyN1RVaStVYjhr?= =?utf-8?B?bE1QSXZWL0J2dHBLa1djdnJsY3UrT3diSVJVUVg2KzNsVDNiTmhkVUoxY3Rs?= =?utf-8?B?RG1GeTVPQWpaejVTZUhxUjNhdTI0dXk5enA1NFFHZ3doQmtWTjNqVmRnb2xU?= =?utf-8?B?cCtiNjZTZ2F1dUt6QzlFVCtjQ0xpK1dseU9TSjhWZDI3TDRLZ3JZVTU4Ykpz?= =?utf-8?B?Q1FESHZFOFd1N1BBbkg2ZG9DUGhYYWVON3hYYTBoT20vSzBpRlV1RkZzbFpz?= =?utf-8?B?elNjcHpCVDg0YXYxSXNPbDZDY2I2SDlpYW0rRHhlbU05UGZCcTVuS2lWQnFU?= =?utf-8?B?VWl5NFFjOWtEdWVMdlcvRlNtZFJHZ1BxMTdwb0N2ZEpOMFo4SHQ1Qm5icWV1?= =?utf-8?B?ckJCT2Rnem9iVHZkQ01kOUZiOFYwL1laRTgwdlBVUm5LMUtQOTVtTmNaQmxa?= =?utf-8?B?ajZtNWErcnB4UC9WSncvdE0zeWJrY2RaQ0p1Ry9qWGg4UVNLSEI0OThQUFlT?= =?utf-8?B?ckEvb1RQR2hxZ05qL3g1QmY3TnBxLzYwYllzUndkZFBEVURJZjBNRXZoajU2?= =?utf-8?B?aFZPWHBzMEhIdXRTbFZYUURRZTlXS3Y2SW9RcE93VkJHdGlmdVNCamZuY0E3?= =?utf-8?B?aU84ZjR4N0g4YVlVTnN5NU0vT0o5SlFiWmNFNmdFak1jTnc5N1JKNEVmTVpI?= =?utf-8?B?aVN5K2IzU3B3QmlnQjFKMWZsbThyYXBhdFJZOTZPdkhDSXM5QnBJZkJxSm1S?= =?utf-8?B?K0E0cmtsOTU4bEovMjN3U2VaWUFjQVZkNXB0bVFJSjhtbGV6akFWWDJFSGgw?= =?utf-8?B?Y0dPdFlRSC9kMk9yM2pqZ2ZqeXExaGRydkVoZzVyRGRZMXNVd1VDNEIzWmZs?= =?utf-8?B?a1M0Z3AvUnpLd1UrM2dOYTBETTczMkRiU1VrWGtoaXpKTlZsRzZHNHRpYzN3?= =?utf-8?B?V2RrZWJUME9rY0NQSWZPeVduQ3k4a1JGc2tzb21WclQ5cCtHYXhQai9ldGsz?= =?utf-8?B?Y0lxNk5EaEpFOXp6NVFOck1Gekt0TnBqd0RXcEwvai9ST09QNzlZZkowUGFj?= =?utf-8?B?WDhUcVdtalNDTUY5a2RMQmpZbGI3WGpFWHZza0Y2dFlWWW1KaXhyYmc5cUFp?= =?utf-8?B?b2FzOWdLcnNpakdvVnVYS250NndPYklSUXFHOVRGOForU3pYUUdYRm1FUXAy?= =?utf-8?Q?2M5CGcr3+iRO7INCei?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: fdcf1796-5981-417b-1b85-08df12074ca4 X-MS-Exchange-CrossTenant-AuthSource: IA0PR12MB8374.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Sep 2026 02:24:27.0889 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: A8ng9Hh9bZ+G7m4k0tWWuATt+BI90ojwCx/55N2zYfaJ0CmlGtRuMPj9cLB7w7dq X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS0PR12MB6486 PagePrivate() is going to be removed along with PG_private and its implementation has been changed to match page_private(). Assisted-by: LLM Signed-off-by: Zi Yan To: Song Liu To: Yu Kuai Cc: Li Nan Cc: Xiao Ni Cc: linux-raid@vger.kernel.org Cc: linux-kernel@vger.kernel.org --- drivers/md/md-bitmap.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/md/md-bitmap.c b/drivers/md/md-bitmap.c index b8325cb09a371..84122834b6108 100644 --- a/drivers/md/md-bitmap.c +++ b/drivers/md/md-bitmap.c @@ -535,7 +535,7 @@ static void free_buffers(struct page *page) { struct buffer_head *bh; =20 - if (!PagePrivate(page)) + if (!page_private(page)) return; =20 bh =3D page_buffers(page); --=20 2.53.0 From nobody Fri Sep 25 11:05:58 2026 Received: from DM5PR21CU001.outbound.protection.outlook.com (mail-centralusazon11011011.outbound.protection.outlook.com [52.101.62.11]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id AD0BA3254B3; Mon, 14 Sep 2026 02:24:54 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.62.11 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789352696; cv=fail; b=D+NwnPK/2RqZ8jaPUfgbM0BOVNLnDO0yApxCmVAjLS8o18eEWs9SyktcYHnUsAS4YZsP7ZqUhQn3CEv4hcx47Qo+WPyDVOvW9dHaWUPk1eBEek4j5T5Ijy+tbB9VWu+nTAyrAhHvaL1A119maAmJAmrECkcKyqShpy+582cJcAM= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789352696; c=relaxed/simple; bh=CZXKL3AuFqC0stMI2NR6nbvxmFGZcvbHWKBePqH8hfQ=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=FmdGUhX8/w2inPzg1KoqGHRXgvffPr4XlYsDtsI3zq+miPxo4c55VVO+7/oug58IJeaieTXQdzjUjoN20YtAy2SlOeNLo7czC1vV1N8OHv4fe/BiOqWeXQQ1SmI9zZZj7OM6mvDMyhCnWNdk7q5om0fgXMVvVuZZjDodhER7qk0= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com; spf=fail smtp.mailfrom=nvidia.com; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b=JmmhIZ1o; arc=fail smtp.client-ip=52.101.62.11 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=nvidia.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b="JmmhIZ1o" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=vAvmQ3TfVMnJfuM2O80vtht1sccQtuzzHuYOeyuvI1wSKmzyc5505Rr7eQAwULHYAP15slSXBZDJnMg8hU/5GLsa2JuiLsMOG+Y03bAcpRxNdu8FPZ17CErftTJxIsRoNv26uVGKVJ1Szu2GFroak+QHD9enzbQarEfNLTo2QuU86pcXk9XPAnUFsC8fgAv0QimD63bCTF+FX/z57EsZZnP1pk2QBsubQoBHubRhWOg9TSFthmzjd+mbJ1PnTmyqg/zIU2aOfNEP7unE/gzcOSGxjmGdCzran1arpmf6/m2gpeaVWBVlJ0zZZi+LdEN3lFMLCWLREJgnQ/APY9sxWQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=VtR909bQ6Q+E0z0K+MmOpIKOSp1OMThZiLeXMQNGKro=; b=YmNPWWKBZWym7wPi96EcVlIkY59+2X6s5Qudd+quC2Nr/qdS94cH1xl4XSz9LTsmLbYxb+r82lxAPeVbjwPDSHpZtufGn32TGPBPqW1U9X2Id9/qJ8BPSPN+Xko8qZDv36jtQ42APGPBDeK+8la8BsgpO7pSFMShFalpWwAUjRDZSIPRXd/+jVAW78JVPGq0y/MOEQY4UHJ7WMi0fiRdZkUaJidY7VYDc54o8716wv96unSLKfqTeNWIgjkFAxhXe9xUOMe4g7OPVDTqCYr7UDOm9xle2ZxEGjJHRxlXZGvuTwzry1oAoADA/RvPsUHut5C67VJqGqhZcC+CDMAzzg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nvidia.com; dmarc=pass action=none header.from=nvidia.com; dkim=pass header.d=nvidia.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=VtR909bQ6Q+E0z0K+MmOpIKOSp1OMThZiLeXMQNGKro=; b=JmmhIZ1oCwlJr7xHTFXh3bCKXYVyM+7mcy0YrsmLvIruQEUpieYBuzVD1r/yoOSB0LvBbdB2R7GaPOEyYbPb9dSCIN06/dXmNrxtVeDi+yRJXPsm6bJEfZ5sJEfJzHb02phFSR0/zqh+C80sxQ6Hs31pXA5H6lIgIJNrtx80E1xOgVckO6wHiBNX9x+MbCwN1IBmg8kL401DN0imv0KdJiridZMMEkj2pYBK5dvxA1b7xX7wLx+4lrUsy+9oAocSR54sZZ+ky2RxK338VTtNHS6U2m10fV1REU/vxjjvhDWoH4+An2qYsBpc8B013OKkn0Nuvef7whfWTSZ7phRruQ== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nvidia.com; Received: from IA0PR12MB8374.namprd12.prod.outlook.com (2603:10b6:208:40e::7) by DS0PR12MB6486.namprd12.prod.outlook.com (2603:10b6:8:c5::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.406.12; Mon, 14 Sep 2026 02:24:28 +0000 Received: from IA0PR12MB8374.namprd12.prod.outlook.com ([fe80::d85f:4c87:ae84:3f16]) by IA0PR12MB8374.namprd12.prod.outlook.com ([fe80::d85f:4c87:ae84:3f16%5]) with mapi id 15.21.0406.007; Mon, 14 Sep 2026 02:24:28 +0000 From: Zi Yan Date: Sun, 13 Sep 2026 22:24:12 -0400 Subject: [PATCH v4 14/16] buffer: replace page_buffer() with page_private() and delete it Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260913-remove-pg_private-v4-14-848550f7574e@nvidia.com> References: <20260913-remove-pg_private-v4-0-848550f7574e@nvidia.com> In-Reply-To: <20260913-remove-pg_private-v4-0-848550f7574e@nvidia.com> To: David Hildenbrand , "Matthew Wilcox (Oracle)" , Andrew Morton , Muchun Song , Lorenzo Stoakes , "Liam R. Howlett" , Vlastimil Babka , Mike Rapoport , Suren Baghdasaryan , Michal Hocko , Baolin Wang , Nico Pache , Ryan Roberts , Dev Jain , Barry Song , Lance Yang , Usama Arif , Gregory Price , Ying Huang , Alistair Popple , Johannes Weiner , Qi Zheng , Shakeel Butt , Kairui Song Cc: linux-mm@kvack.org, linux-kernel@vger.kernel.org, Zi Yan , Song Liu , Yu Kuai , Jan Kara , Li Nan , Xiao Ni , linux-raid@vger.kernel.org, linux-fsdevel@vger.kernel.org X-Mailer: b4 0.16.0 X-ClientProxiedBy: YQZPR01CA0109.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:c01:83::15) To IA0PR12MB8374.namprd12.prod.outlook.com (2603:10b6:208:40e::7) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: IA0PR12MB8374:EE_|DS0PR12MB6486:EE_ X-MS-Office365-Filtering-Correlation-Id: ebfb2132-5502-40d2-9f1a-08df12074d7e X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|23010399003|7416014|366016|376014|1800799024|22082099003|18002099003|921020|10067099003|56012099006|11063799006; X-Microsoft-Antispam-Message-Info: qa+sMDLKj6ZR6txcfEpFQjOBSZmDa31mur1nw1M/M9KOizkExzDubtsOkyonuqXFKBUeZyu1BDyuC9CxA5Eht2l7Sa7U94CIfKp+6SvSGZWeRTEkJKCsPyM6fO2PQtV5TeKdVvRbpzyOpgTTdgCJnxwnGnM0Rm9SE1j9y23bgkaEjaZ1VxJ561layOdOumgnh2DF3uGrq1xpU/fx08SQ00maANq9eEbllqIFmQuNRSgy0po5WqFZsXVHdJlrOGb2bfRtDtA4D5erOPonIlLCGNA68x0fOnmWvQzVDnURZ4rTimcePtQDeXUF9LkqRI6cDM9nbKdOSBoghNRaHkfVmT9mep93V8iRhxzOfpTuB2WHc/iLi+pzp2+aH6B98HhK2lkJHDIDGfQsgaQ97n8fqpwFST/VZn3DFer1IJBirRdHjKOaWt65Q/LPUewstVfqRnO5huvQFru/ICNjIrJcxo74ZMLYM22xY+dIsox1N3DcxNK6+fsn/d8Iq12UfERZz4pHjBZjRlt7/FR1Wp/yUI5X8+FddeDAa4vqePfTa0eU5l35nSuSqaMHksNSDIIdFVoE1ASsbL62eK2uAmp3NtaNkVKKkanGlSzfJkNsCz8mV4EoyOI15oTIsFzfIzyhods8CRyyuHLtp89EDxhDxM69rVvuQ0vb894MxocL0VuPG1j4vKVV4IU21eQCYHBhpbiJeVDo/RMdkevotcsg+w== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:IA0PR12MB8374.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(23010399003)(7416014)(366016)(376014)(1800799024)(22082099003)(18002099003)(921020)(10067099003)(56012099006)(11063799006);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?Z1JtVHVvU2NkclBDdW5udEg2UHlLc3ZoK2M5QUdDakNyK1A5NHpDenZtV1l0?= =?utf-8?B?eUxtMHRhV1FLbGpGSXdqamw5NzRiNE13NkNsSXJ0dUM2UUtWM0RCdzZiK0tt?= =?utf-8?B?L2FNcHJrT1VMWnlSU0p4NVJqNDNjZVJ4Tzd2WlgvNUtPZVg3dm01d2ozU3dH?= =?utf-8?B?Ymx3Z01UK0svZFRPMXJBb2hNd2pwQ1d6UlQ4cnRpR0VoeGFVbHBkMzRHTWV5?= =?utf-8?B?NlltS2ZlbnMwbHUyQ3dFT1JMbmRqRFNTSVM3M2lremVPVWlFL25rcWcxTkty?= =?utf-8?B?ejV2WEVtTXIrMGVFMW0zbFR1Z2p3dWZzaS8yUHgwVHI4UytFMkxQMHordVZQ?= =?utf-8?B?aU51dnJFZ1NZTG5DeE1DZVB1Q0xhdzBZZUwvR0dzWWhXc0Z0MExaT0NFNjFY?= =?utf-8?B?emRPTEZuUGs2blNYQ3VydkdxQklwREV4NktjZ1ExQldhRkJ3c3BFLzFLckR3?= =?utf-8?B?NGpSQW5hbXRJekRWcnFCOVBxeXdSMjFhcE0xNURRUUZKbGM0RmdNVUhRVThu?= =?utf-8?B?aFZhRWgvakwzZ0hSSDJnYUJqQjNIYWdFazNnTlVYajJVeVlHZGZHamFIU1NS?= =?utf-8?B?M2srR1ZmVFlhVTZCN3J3QlJVQ0JTSWs1WFRkZlpuNkxmT2FDYXdKUjhVM21G?= =?utf-8?B?cjNFZkIrSkVsTitnQWJFS3ZObmkyK0N1ODlUNGluK1BrL2RZVEo3aHNsVTFs?= =?utf-8?B?TkdEV1FJMFZMbEpIZFozMHppVHpnZnd6Q05GU3hTeVpqV3pOZVhScXJZanlu?= =?utf-8?B?NFZIZ25Rd3lKQ1dZUEEvVzE3RmNrMTRmeGl5RVJ4RTNuQjB3YXo0U2ZDTjhL?= =?utf-8?B?eHllUmlGL09JeFU3TjhITGtCSUFlSFVqYXpkMTdxRnRiWTJ1c29HVmVKR2VI?= =?utf-8?B?bzI4elA4MVE3R1c0bkxqQnJFc09tRHQ2bGZIUXhBSUJJSHZMQXhLTVFjWWNO?= =?utf-8?B?S0FYMkhGR2NwenJPTUxRT0NOMjRxZERPYjNlUk1EME41czJHYUtDWDc3WHY2?= =?utf-8?B?QSthZTlid1hVbU9vckQ0QkVPV2hmOWU2V0dKWjZoK2liMHRhQTJzYmNyd1cr?= =?utf-8?B?Zm9oY0YxRkNNaGlhUzF5aUtqSFhFVi85aXNHa3lyOXNIb3N6TnYwVDE1cjNQ?= =?utf-8?B?eWxLVHNsMnk5NzdTeDFzN0txS2JPLzZZbm9nOFRnSkFBWUkxbXZDUkZ6Mmhp?= =?utf-8?B?NTlQM0crdStyaTBJUXhDYnhrSG5FSXEwOVpKWHhwVEJVUktkdW5MNGJ0aHNU?= =?utf-8?B?VjJBQ0wxYUxXV1NjeGNXL3FjVnRrbHIySndRT0RCNXVGK0JwZWh2eXh2WC9M?= =?utf-8?B?OUpzVmlaUit4Rm9oZU12bmVLdW5EZlNnUTRwZjZBVzFvOWRWaXd0TFd0VHVo?= =?utf-8?B?K3daeTRtZ1BVSVBUaks0UnRzOGZwUUJEa3RkUzViMjlMb0xxV2dWM3Z2UnQ1?= =?utf-8?B?Q2dzTk91MHEwYWIwclBTR2tneVArZHRzTElrRVZUa2RBa3M0UGFzVDRMSHRN?= =?utf-8?B?aHNpQVdSU1pmeTBqWjhoU2grU290Z051Y05sRDRvcFVHdzA0dUlYbTAyaS9U?= =?utf-8?B?U1NxNjZiQUpXMmtSR3J4QnNMY2FOQUdIY3pkQlJsUGFzck4yZGZPQVUxRHJs?= =?utf-8?B?QnNhYTFaOGJ3L1lzRXdKSkhkdjliUWx1VWtiVVhwRzBFd1FKQkVqS0ZBN2g4?= =?utf-8?B?TU1EWGNxeTFRcmhrcW5TT0ZUekltMVNhRnZzZXg2eXBjdWRHbS80clJNNW1C?= =?utf-8?B?eDNmR0lvYVpQa1FsNTY0eFMwZGppVlZ1cng5cmpqZ1Y0eFVoYTNjMCtoV21u?= =?utf-8?B?c2xQVWYvMUpoMTVzRmxTNXUyV3I3K2g5WTJ2NUlUUTNpL2lUczVOZmU3T2Q4?= =?utf-8?B?TW5remJVb0Q2TUhweHV3SDR2OHlrNzB5ODJxSnJKZGp2UWJadmVLREJwZ2VV?= =?utf-8?B?M1djUk8yMGJQaGNnMmVSdFJoNFo3d3VRSDdpTVdtWExDMkd0a1dGY2NRUVMv?= =?utf-8?B?VFFpSGtTQVgvbzMyVTRIVWZsUVZVVE9KbjhxUkN2Zlc0ckEyNEduZVJDaVM4?= =?utf-8?B?a3YzQWY0SHljSGxlMXpyWE5vUXliK0VTY1cyem5jMDB0cXZabU96RWtENDhE?= =?utf-8?B?ZWtia05KSDhIYlJXSDZUbWNMcS9TU2pNSERFZDF3d2JrS0RReE10cmY3WDha?= =?utf-8?B?Q3A0M0VJOFN5M1NVaDZkNnpHZVZaTE1nYjNHMWZ2amJmOVFFaHFmdERBZ3ow?= =?utf-8?B?cUFiR0gwTmYyV3l1K3E0T2ZXMVdEMlVQK0JqOHp3NXJzb05oSzFFS2JVbVo1?= =?utf-8?Q?0nFtVCgLq0Khk26YK3?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: ebfb2132-5502-40d2-9f1a-08df12074d7e X-MS-Exchange-CrossTenant-AuthSource: IA0PR12MB8374.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Sep 2026 02:24:28.5141 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: I20d4jRgRAZMfTWsr85Dx7FEo4nNa9qvZROXBVqxuDxIuxKWE5ooHeBlOJ5+myid X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS0PR12MB6486 Only two users (in md-bitmap) use page_buffer() and both can be converted to use page_private(). Convert both and remove page_buffer(). Assisted-by: LLM Signed-off-by: Zi Yan To: Song Liu To: Yu Kuai To: Jan Kara To: "Matthew Wilcox (Oracle)" Cc: Li Nan Cc: Xiao Ni Cc: linux-raid@vger.kernel.org Cc: linux-fsdevel@vger.kernel.org Cc: linux-kernel@vger.kernel.org --- drivers/md/md-bitmap.c | 7 +++---- include/linux/buffer_head.h | 6 ------ 2 files changed, 3 insertions(+), 10 deletions(-) diff --git a/drivers/md/md-bitmap.c b/drivers/md/md-bitmap.c index 84122834b6108..7b706d3e54901 100644 --- a/drivers/md/md-bitmap.c +++ b/drivers/md/md-bitmap.c @@ -516,7 +516,7 @@ static void end_bitmap_write(struct bio *bio) =20 static void write_file_page(struct bitmap *bitmap, struct page *page, int = wait) { - struct buffer_head *bh =3D page_buffers(page); + struct buffer_head *bh =3D (struct buffer_head *)page_private(page); =20 while (bh && bh->b_blocknr) { atomic_inc(&bitmap->pending_writes); @@ -533,12 +533,11 @@ static void write_file_page(struct bitmap *bitmap, st= ruct page *page, int wait) =20 static void free_buffers(struct page *page) { - struct buffer_head *bh; + struct buffer_head *bh =3D (struct buffer_head *)page_private(page); =20 - if (!page_private(page)) + if (!bh) return; =20 - bh =3D page_buffers(page); while (bh) { struct buffer_head *next =3D bh->b_this_page; free_buffer_head(bh); diff --git a/include/linux/buffer_head.h b/include/linux/buffer_head.h index fd2c7115c0542..e47fbd0387b69 100644 --- a/include/linux/buffer_head.h +++ b/include/linux/buffer_head.h @@ -175,12 +175,6 @@ static inline unsigned long bh_offset(const struct buf= fer_head *bh) return (unsigned long)(bh)->b_data & (page_size(bh->b_page) - 1); } =20 -/* If we *know* page->private refers to buffer_heads */ -#define page_buffers(page) \ - ({ \ - BUG_ON(!PagePrivate(page)); \ - ((struct buffer_head *)page_private(page)); \ - }) #define folio_buffers(folio) folio_get_private(folio) =20 void buffer_check_dirty_writeback(struct folio *folio, --=20 2.53.0 From nobody Fri Sep 25 11:05:58 2026 Received: from BYAPR05CU005.outbound.protection.outlook.com (mail-westusazon11010031.outbound.protection.outlook.com [52.101.85.31]) (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 D38FC3264DD; Mon, 14 Sep 2026 02:24:54 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.85.31 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789352701; cv=fail; b=AQEJfw1MlPVJ3Fs1hUwwXBMz0MkyBmCReDTsR9YaJ4o0YI1e7Uk1uij/WWAbinr4Evken0YhieOE5OIrSyI8HK2mrHB1AiwCnT6LHwvIsBZGNZ4oB7bAxY4wN+e7Xc1rgKEETxpypuvOhYKREXGRi4IDZgagdfAazk00e0s9YQw= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789352701; c=relaxed/simple; bh=jyCIZqHaHzMDVDMThSlBvPJYGCb9JGU/pfktsnaSDzA=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=Pi4OQkLYte14nTEJOSWWde6Lo+mYM6uLz9ipRpg9sOFgpZ7xv443n1sNo7EbQiN86cacHZpbQKtM9CcmeF1tJVbgjtyQ9kKj7YLS/GqtK5gHCZj5jf0h0nVyA4K9gPbGtTLyJrab2v61IYMiNbcRnHkB2hGywLbVB78XExqnk7U= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com; spf=fail smtp.mailfrom=nvidia.com; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b=ReZ14c4O; arc=fail smtp.client-ip=52.101.85.31 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=nvidia.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b="ReZ14c4O" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=R6bGCTxDMPwV60AzamER/kUR7rVPMtTtVxGFCh472WBc/Kpa3zBHT17zeXG9lOg6PhmQSbV5gR8YKIKFpaFF5FY21NTWvhc5ZPV1t/45axlTx0fAmSropPRNJ1D6CuQzBWSTlO+yU5IsAKX/Xf9xi3CyC5Jrzs92fEqCj3z6D+bq+Nflq75K07j8/qpamNH2KgeNp3JsOHUPKNlLgTBwpnPHSIbdngeoxqoICZsuhxE7OnL+yC1mQN8ZnMLCh4Dpydksjd6nCxRzL3Q6kS3qBZJFOLPkQWcOQIy/osGvQAyZVlqWoz9oIOIlWHIOtptc3KdRMZXIyRDTV216Y5dP9w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=jzt3NPvDi10W6qHzF15o3z+l2gytr2fjHobdhoCYeR0=; b=EdUKePzIzHmIu8udwGbfMNVDuuWhAIAAb5pozu0lUOKnnI9cxiXS0MIOY+0LfaUBojX4cAklYP3H8RQSTi57DdU1VR29hHpP5T2j7C/eiMZB8/Ggkbm4iiGeAFdxRxuBSEhkiijfkEgY2sQcrwMu3/e/47ZryggSn0BLzJeowJ+z3kd8VaxbpkDpulvifgjcvwg37UIJcUwRcUU28MboQ3uVyudIEpGPkugkp36+zwL3nHAnsMDUfLZ8aNtCLyJYTRKfu9KCv0wk3AVRj+Esdbg9A6fyUhHs2tvUCnjdIlykmgtXNKV3LpvZcZMve6mMqcrRuyvxazeA3Uo9TeMboA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nvidia.com; dmarc=pass action=none header.from=nvidia.com; dkim=pass header.d=nvidia.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=jzt3NPvDi10W6qHzF15o3z+l2gytr2fjHobdhoCYeR0=; b=ReZ14c4O4X3A/GKYC2jLLzyc/FyBuPtpqTNKl155CVXuEvj8VW80TYHyrAxJ9CWVKzDoiQYFnaV0zWO85fN8VQOZqYPHy07BV6YSwxP/uYVJ66Y9IpPcCQC7l+GDDLsY+nPEjop1rwZxuexDk6WA8bL7My9zKXt32MCWJiiGHGK+Zv638qpcdRNP6fKUbjbrUYcmAyhR2eXkdQ1O9r6xT/Lv+W4yywISQ3C7gO0Ck6bbSY/1K5oJd94obcmZz4Om0hQO8NNBHO5r32dQUxua7QwpeoTnRVE2FTHt/PlxdbNhdoo8BV3LL9NTTRX0F1q8Hz6tw6xRRbUqvIsdlXKLEg== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nvidia.com; Received: from IA0PR12MB8374.namprd12.prod.outlook.com (2603:10b6:208:40e::7) by DS0PR12MB6486.namprd12.prod.outlook.com (2603:10b6:8:c5::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.406.12; Mon, 14 Sep 2026 02:24:29 +0000 Received: from IA0PR12MB8374.namprd12.prod.outlook.com ([fe80::d85f:4c87:ae84:3f16]) by IA0PR12MB8374.namprd12.prod.outlook.com ([fe80::d85f:4c87:ae84:3f16%5]) with mapi id 15.21.0406.007; Mon, 14 Sep 2026 02:24:29 +0000 From: Zi Yan Date: Sun, 13 Sep 2026 22:24:13 -0400 Subject: [PATCH v4 15/16] treewide: remove PagePrivate() and PG_private from comments and docs Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260913-remove-pg_private-v4-15-848550f7574e@nvidia.com> References: <20260913-remove-pg_private-v4-0-848550f7574e@nvidia.com> In-Reply-To: <20260913-remove-pg_private-v4-0-848550f7574e@nvidia.com> To: David Hildenbrand , "Matthew Wilcox (Oracle)" , Andrew Morton , Muchun Song , Lorenzo Stoakes , "Liam R. Howlett" , Vlastimil Babka , Mike Rapoport , Suren Baghdasaryan , Michal Hocko , Baolin Wang , Nico Pache , Ryan Roberts , Dev Jain , Barry Song , Lance Yang , Usama Arif , Gregory Price , Ying Huang , Alistair Popple , Johannes Weiner , Qi Zheng , Shakeel Butt , Kairui Song Cc: linux-mm@kvack.org, linux-kernel@vger.kernel.org, Zi Yan , Ilya Dryomov , Alex Markuze , Viacheslav Dubeyko , Trond Myklebust , Anna Schumaker , Richard Weinberger , Zhihao Cheng , ceph-devel@vger.kernel.org, linux-nfs@vger.kernel.org, linux-mtd@lists.infradead.org X-Mailer: b4 0.16.0 X-ClientProxiedBy: YQBPR0101CA0319.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:c01:6c::19) To IA0PR12MB8374.namprd12.prod.outlook.com (2603:10b6:208:40e::7) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: IA0PR12MB8374:EE_|DS0PR12MB6486:EE_ X-MS-Office365-Filtering-Correlation-Id: adfccd7b-253d-4087-7851-08df12074e44 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|23010399003|7416014|366016|376014|1800799024|6133799003|22082099003|18002099003|921020|10067099003|56012099006|11063799006; X-Microsoft-Antispam-Message-Info: 3xx3GClA1nOEPzZvDyfHbYC0HBFFz2N+1tdMfUvNPmaMX71b9gNM+Yqd99pYqxJk2i5ifEo3yxnUiBNmQaSlgNjKXchq1F/9Vd+o3mmLkF3PKt9xgdoLtx++HlXXyZHUv3naZPylNooSeD0EGE8mHvsw9vbgNNnTbvwB0Xrkold7WPjnjZ1eDP8Qu17xtuMFNR/hh0OAIvn/Z5guOW2RMpXKRknuWvMFKXNZY2OZQTfg10qQxpEovJ+Z538BQ8IsnRJn+n7dN/yEXYAOgIIIK/EyW7cSGIJcGXQQ9BOD6EzU2Do6TRjgauhumTfZmfmU1ZZvjdE7qpQPVBOvNA5T1qU8PSnuEILBNB2HfxfCJElvkdreXIJ3W9UfphPWdMZbbW7p3RQwiWt2uQv2D/cQC1nCMUrMFVFQvaaMfX0pRPnsbMlbYySVGN9h7Hq+FCWqz2ssa3OqOCCCC0R8NFl2msZso3ULaFX5Iw2brN3LSTmqTQR4J0QzpsoZpf5SLJZmEn8My6relfd5Y4WNh5UIsgkXwLlX3sUP6ZRUBRyAbZt0dVKtpbVBUhpp4nTtazhoRIh4s0gXFzlRZfvQuXkswZAAmhAsR5NHQE2q05JrmfWwk4N4TiELcpd+t5GB4VLobid4RN9J4GiHhNyyUGPh3Pm5EnKEaXZ7CiSoLtV2KuGVN/D+owsPhUVmcChuq66RSPzB3HAv5VD/rM6a/MYHGg== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:IA0PR12MB8374.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(23010399003)(7416014)(366016)(376014)(1800799024)(6133799003)(22082099003)(18002099003)(921020)(10067099003)(56012099006)(11063799006);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?NkNnS214aDBqQ2V0MzFnb0dwUlFDYktGR0ZPK3RET1hQL1Z6OGppYXBaOTYv?= =?utf-8?B?RFg1ZVRYMS9mM0dHRHpITWZ0c0NzZnYrcXdOaEhVZVdYL0VZcUM3M1VlK00y?= =?utf-8?B?S0lnVDhkc3diQnBPT2diUWJqMEVUeVZvcnIzYmNEL2prNm5JR080V24rbm5k?= =?utf-8?B?NzFCaUM5eGJhb09IdXZ2NDIwa0szelUyK3B2V2xNU1FYSVFzMlhGZ1h3WUMw?= =?utf-8?B?eWE3TU5TNXpFNUprbStmZHhLbjVSUUlDbGNVSzExT05NbHhaNTlRTTlYOFlE?= =?utf-8?B?emhQL21Pekg2ZlpOWGpBc1A4d2FpaUJoYXhBdGFUVzN1SS9JbE5qVzliRUpz?= =?utf-8?B?TkhlWVNDaGFZWForV0JpUEw3amx6NTI0dkpWNEticzNRdGxWZ2pOQW5TRmZ4?= =?utf-8?B?OGZlOWZ0VW5qNmR3ZkFSSlNINDQxUFdwV0hOUXNZcWw1UmljMUxvY282UytI?= =?utf-8?B?VElBaG4yZVhIcG83bHZ1K21jTDF0RmIwazY5S2xFZ0xDZ2I5MVRxMGVacVB6?= =?utf-8?B?dW1yQlJXRHpkbDNKYjlVSndMOWdxcG9mc0JEeHdQbXF2cXNPdWlZajlLdzdO?= =?utf-8?B?TGF1SWpyL2FiYUJYSC9OQjhNcS9KZklQT2FySk9kUHNVWTdpTmNsRWgwbGY1?= =?utf-8?B?WkplaWc3aURzcVlPajNneldkR3g2Mk02WUk5cGpudGluVUQ1Vm1WUU9KRjlW?= =?utf-8?B?WXc5dVpoT3JJcjdwUlVmV1Q0Yjl5UWJOZkxGaWFOV0RCVWJaVmM0QW5ldEVW?= =?utf-8?B?endSK1hLenowVVpjRnpSazBScldyY1JMVW1NR2xaSG02K3JubU9vcGNCR1Fv?= =?utf-8?B?cTZLcnZXZXNHekZxMW51Um5LNEtEVGtaZCsweTRRaVZ2VkpwOGdWVXZNajVU?= =?utf-8?B?ZUZkMGJLR0tsQVVxM3k5S0dBeVY1Z3NxR0RkUW52WlIwT2J6M25zZWluQjJU?= =?utf-8?B?dDdQWUN6d1dCYWFCT2toaUFvQzFuQWVkdlBvZkhQdCtMRjhsVTZuaUI4RDJR?= =?utf-8?B?b3c3Qyt4VWZ1OHRiMHRKU0RWT3h3dzNlTk1TYmdUTzhicjEvZU12TlJTNTFW?= =?utf-8?B?ekI3S1F3eUt4WVdwdW9NVXFoQitrZkN3Uk5UYVI1cGJjZlRIcTB4QWpqMkw5?= =?utf-8?B?L2QyeGU0dmVvZEhVaG5QQ0Z0YzVjLzJKNnllZ0xhUGZMaHk1SndDT2RldDdr?= =?utf-8?B?dTV5MXF0WXBtTTUzWEJuT1VzRUlvVEdDMWpqbyt2QWpINHVndExJbmN4c1lu?= =?utf-8?B?TllYRE01UjRYNDFqR0phdGJWL0xCZlFzd28xeHZYVE9zZC9nK0Juajd6NHow?= =?utf-8?B?TzBIZ1dCQTl2aitEVGFEYStDNUlSTkdEVWdWSmxndmNyRXRScG5zeHVwVU5H?= =?utf-8?B?NTdLTlZYdXBtWXBqMHc4R0pYSVUvOW9XUmZQQVQ2bk1RYU00MGphVyt4VG5r?= =?utf-8?B?WjFlbUNHYW1xQzB3RU9LM3lZRndzaWlvY1U4bnRXaXZFekRqb3Q4dDRaREJF?= =?utf-8?B?SWxkS2o1QmQ2TWdBTzFSL3VrWDVlQlJaVkU5a2F2M1pyRnBPVVhWWml3bFZE?= =?utf-8?B?SjAwZTdLZ0dYYTg1TW5QZFFmaSsxakgzTWExeVNxWnFsUE41bVR1RXpkdTBM?= =?utf-8?B?YmJ3eXM3cnd4S0RHQ1IxdHNNOUlOdzl4dTdDSXkxZnlaNzkzQStEWmRvRlh1?= =?utf-8?B?cEI3ZDUzLzk4cnBhdUY4VUw0OFRoZHhIQ0xEQ3NpZnpFR29ybXIzVDE3WExG?= =?utf-8?B?YjdmRnN4aWhYT0ZBVVd5RDZaYW1wMWlWTnZtU0R3aUZ5K2l3VFVDbndReWtW?= =?utf-8?B?enowUXY5anAxWlczU2xGL2pnc05oVElNeDlQaEtYMXZDQU5GVzloNndJL2lC?= =?utf-8?B?amNxRlZhOHpWL25VREtzak1YQ3NDREFEMEtha1FxT3FsMjFNNVB0VGlWVDZU?= =?utf-8?B?TThpdjhJd2NWeHR5OVdOZWRkcU0xK1BTQk1VejdUem5SMndEK1I1OUJPODRh?= =?utf-8?B?bFRQb1hIdWJKRUhzNkxaN3JML1VITTZDamErMERhbngwaEp0aGpkR1d2T0cr?= =?utf-8?B?ZzYySUN4ZDJwR1dJdWlVVHREUmFoMWJ2L1hPMmZ1UHlpSk1TNVpLaktERlpF?= =?utf-8?B?OXZhRHY1VHgyUEkzRzRKazdKbG5hZWxKYmtJTnp0MWY5WXpYaXZCNk9DdzZN?= =?utf-8?B?Um0wVENGR2cvaXhwaDZQRTFubG9meVdyVVM5SFR1K2E4blB5V1hjTEdPQ0NF?= =?utf-8?B?dFNIektKK0pVMzQ1aUFCMFowYnJRb0VMR2dKaHBKSTd0aFR6VmxGRlJJTDNl?= =?utf-8?Q?pyHpbr8XZLdCPGQgSj?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: adfccd7b-253d-4087-7851-08df12074e44 X-MS-Exchange-CrossTenant-AuthSource: IA0PR12MB8374.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Sep 2026 02:24:29.8023 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: EWv4SEVFSyc4yJSod4HCDWtrWLSRZrpvwPutx66RCZFNSeO8rkRns8vk6hqqs35a X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS0PR12MB6486 PG_private and PagePrivate() are no longer used. Adjust related comments and documentations to refer to page/folio->private instead. hugetlbfs_reserv.rst is outdated and left unchanged. It should be rewritten. Assisted-by: LLM Signed-off-by: Zi Yan To: Ilya Dryomov To: Alex Markuze To: Viacheslav Dubeyko To: Trond Myklebust To: Anna Schumaker To: Richard Weinberger To: Andrew Morton To: David Hildenbrand Cc: Zhihao Cheng Cc: Lorenzo Stoakes Cc: "Liam R. Howlett" Cc: Vlastimil Babka Cc: Mike Rapoport Cc: Suren Baghdasaryan Cc: Michal Hocko Cc: ceph-devel@vger.kernel.org Cc: linux-kernel@vger.kernel.org Cc: linux-nfs@vger.kernel.org Cc: linux-mtd@lists.infradead.org Cc: linux-mm@kvack.org Acked-by: David Hildenbrand (Arm) --- Documentation/admin-guide/kdump/vmcoreinfo.rst | 2 +- Documentation/filesystems/vfs.rst | 6 +++--- fs/nfs/file.c | 4 ++-- fs/ubifs/file.c | 8 ++++---- include/linux/mm.h | 15 ++++++++------- include/linux/mm_types.h | 4 ++-- 6 files changed, 20 insertions(+), 19 deletions(-) diff --git a/Documentation/admin-guide/kdump/vmcoreinfo.rst b/Documentation= /admin-guide/kdump/vmcoreinfo.rst index 7663c610fe901..5f1df6d080508 100644 --- a/Documentation/admin-guide/kdump/vmcoreinfo.rst +++ b/Documentation/admin-guide/kdump/vmcoreinfo.rst @@ -325,7 +325,7 @@ NR_FREE_PAGES On linux-2.6.21 or later, the number of free pages is in vm_stat[NR_FREE_PAGES]. Used to get the number of free pages. =20 -PG_lru|PG_private|PG_swapcache|PG_swapbacked|PG_hwpoison|PG_head_mask +PG_lru|PG_swapcache|PG_swapbacked|PG_hwpoison|PG_head_mask -------------------------------------------------------------------------- =20 Page attributes. These flags are used to filter various unnecessary for diff --git a/Documentation/filesystems/vfs.rst b/Documentation/filesystems/= vfs.rst index d3a93eec3945f..dec7816303c6a 100644 --- a/Documentation/filesystems/vfs.rst +++ b/Documentation/filesystems/vfs.rst @@ -649,8 +649,8 @@ Writeback. =20 The first can be used independently to the others. The VM can try to release clean pages in order to reuse them. To do this it can call -->release_folio on clean folios with the private -flag set. Clean pages without PagePrivate and with no external references +->release_folio on clean folios with folio->private set. Clean pages +without folio->private set and with no external references will be released without notice being given to the address_space. =20 To achieve this functionality, pages need to be placed on an LRU with @@ -674,7 +674,7 @@ filemap_fdatawait_range, to wait for all writeback to c= omplete. =20 An address_space handler may attach extra information to a page, typically using the 'private' field in the 'struct page'. If such -information is attached, the PG_Private flag should be set. This will +information is attached, non-NULL 'private' field will cause various VM routines to make extra calls into the address_space handler to deal with that data. =20 diff --git a/fs/nfs/file.c b/fs/nfs/file.c index e1bdd10b35f10..38f830a6467c9 100644 --- a/fs/nfs/file.c +++ b/fs/nfs/file.c @@ -484,7 +484,7 @@ static int nfs_write_end(const struct kiocb *iocb, * Partially or wholly invalidate a page * - Release the private state associated with a page if undergoing comple= te * page invalidation - * - Called if either PG_private or PG_fscache is set on the page + * - Called if either folio->private or PG_fscache is set on the page * - Caller holds page lock */ static void nfs_invalidate_folio(struct folio *folio, size_t offset, @@ -555,7 +555,7 @@ static void nfs_check_dirty_writeback(struct folio *fol= io, * Attempt to clear the private state associated with a page when an error * occurs that requires the cached contents of an inode to be written back= or * destroyed - * - Called if either PG_private or fscache is set on the page + * - Called if either page->private or fscache is set on the page * - Caller holds page lock * - Return 0 if successful, -error otherwise */ diff --git a/fs/ubifs/file.c b/fs/ubifs/file.c index e73c28b12f97f..aa0298ce451ef 100644 --- a/fs/ubifs/file.c +++ b/fs/ubifs/file.c @@ -12,14 +12,14 @@ * This file implements VFS file and inode operations for regular files, d= evice * nodes and symlinks as well as address space operations. * - * UBIFS uses 2 page flags: @PG_private and @PG_checked. @PG_private is se= t if + * UBIFS uses folio->private and page flag @PG_checked. folio->private is = set if * the page is dirty and is used for optimization purposes - dirty pages a= re - * not budgeted so the flag shows that 'ubifs_write_end()' should not rele= ase + * not budgeted so it shows that 'ubifs_write_end()' should not release * the budget for this page. The @PG_checked flag is set if full budgeting= is * required for the page e.g., when it corresponds to a file hole or it is * beyond the file size. The budgeting is done in 'ubifs_write_begin()', b= ecause * it is OK to fail in this function, and the budget is released in - * 'ubifs_write_end()'. So the @PG_private and @PG_checked flags carry + * 'ubifs_write_end()'. So the folio->private and the @PG_checked flag car= ry * information about how the page was budgeted, to make it possible to rel= ease * the budget properly. * @@ -1509,7 +1509,7 @@ static vm_fault_t ubifs_vm_page_mkwrite(struct vm_fau= lt *vmf) * * At the moment we do not know whether the folio is dirty or not, so we * assume that it is not and budget for a new folio. We could look at - * the @PG_private flag and figure this out, but we may race with write + * folio->private and figure this out, but we may race with write * back and the folio state may change by the time we lock it, so this * would need additional care. We do not bother with this at the * moment, although it might be good idea to do. Instead, we allocate diff --git a/include/linux/mm.h b/include/linux/mm.h index c9aad2c39fd9c..e4ee59beccbaf 100644 --- a/include/linux/mm.h +++ b/include/linux/mm.h @@ -2048,20 +2048,21 @@ vm_fault_t finish_fault(struct vm_fault *vmf); * * A pagecache page contains an opaque `private' member, which belongs to = the * page's address_space. Usually, this is the address of a circular list of - * the page's disk buffers. PG_private must be set to tell the VM to call - * into the filesystem to release these pages. + * the page's disk buffers. It tells the VM to call into the filesystem to + * release these pages. * * A folio may belong to an inode's memory mapping. In this case, * folio->mapping points to the inode, and folio->index is the file * offset of the folio, in units of PAGE_SIZE. * - * If pagecache pages are not associated with an inode, they are said to be - * anonymous pages. These may become associated with the swapcache, and in= that - * case PG_swapcache is set, and page->private is an offset into the swapc= ache. + * If pagecache folios are not associated with an inode, they are said to = be + * anonymous folios. These may become associated with the swapcache, and i= n that + * case PG_swapcache is set, and folio->private is an offset into the swap= cache. * * In either case (swapcache or inode backed), the pagecache itself holds = one - * reference to the page. Setting PG_private should also increment the - * refcount. The each user mapping also has a reference to the page. + * reference to the folio. Attaching filesystem private data via + * folio_attach_private() also increments the refcount. Each user mapping = also + * has a reference to the folio. * * The pagecache pages are stored in a per-mapping radix tree, which is * rooted at mapping->i_pages, and indexed by offset. diff --git a/include/linux/mm_types.h b/include/linux/mm_types.h index 5413bd10fff2c..9d6c945ba4104 100644 --- a/include/linux/mm_types.h +++ b/include/linux/mm_types.h @@ -108,7 +108,7 @@ struct page { }; /** * @private: Mapping-private opaque data. - * Usually used for buffer_heads if PagePrivate. + * Usually used for buffer_heads. * Used for swp_entry_t if swapcache flag set. * Indicates order in the buddy system if PageBuddy * or on pcp_llist. @@ -675,7 +675,7 @@ static inline void ptdesc_pmd_pts_init(struct ptdesc *p= tdesc) #define STRUCT_PAGE_MAX_SHIFT (order_base_2(sizeof(struct page))) =20 /* - * page_private can be used on tail pages. However, PagePrivate is only + * page_private can be used on tail pages. However, it is only * checked by the VM on the head page. So page_private on the tail pages * should be used for data that's ancillary to the head page (eg attaching * buffer heads to tail pages after attaching buffer heads to the head pag= e) --=20 2.53.0 From nobody Fri Sep 25 11:05:58 2026 Received: from DM5PR21CU001.outbound.protection.outlook.com (mail-centralusazon11011011.outbound.protection.outlook.com [52.101.62.11]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 70291318BB3; Mon, 14 Sep 2026 02:24:56 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.62.11 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789352699; cv=fail; b=VDhVd3gHs/muRe8YyRmbdZ5ptsvB8tXGb6xzl7gFswFyIZqUG4rkONVISKHosmPT51uAwQYAiTpxmVj2CoLKmb4O+B2cbSzLzBXeeooVuUi4zDR/OopjsLbPZbXkQPJh9q8QPW1GMpMEWOJ4UkMciK817qQFxMiTxNIoB6VRLDY= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789352699; c=relaxed/simple; bh=0XeqZuFuC7aOnceBxrUD1wlCE2NnIYWoGNhRBI4Wqso=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=CL5pcbZdzbrFK7hvfPkCXsBLji3B+78qQNxNhi0R5Uib1BU1yUHYQTyxfrYEiqovIqUr/O8ofFQXQRFKj03hOlWrs8XpBbT4BuPwI1MhPkW1yu1zJQFKU9zR36gl8QlDU4QqdyV011aJqygz+srJG6YrI+hTqp5MN/WOIbZZjUw= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com; spf=fail smtp.mailfrom=nvidia.com; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b=qoSQdr28; arc=fail smtp.client-ip=52.101.62.11 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=nvidia.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b="qoSQdr28" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=qnYWwJSbl9iCnp8O1wWePNMrJRBPqweLglChZ0rec+n49BxOjT6hXNskgsJdjQpG7/KYtkEE7Zn3thKmKw+oRD73c681YrBgR6GP0v/MzhYAatRq8Ppd1LscnVDHewZMuMvu8F7AyKvuUdIHacbRHFZk875qRIUwUZBDszE/nr/53gXXt4O/qguk/0z7qj1f35ezjBtfi8aD9S66KMz37MXD5K9mxA+I5N+V79+DlSTwTKbp8W+lvuaT7UuWclwXs9VVBeh4voxB3G4rossaiRnGBkvQVabbFJX2o8QXmX8+o74XQjqS64DCYpcu7mTuYXTM795ToYF+HQ9V9bj9Ig== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=rN1+a+WbXXMcnQSTG/PwdTVyIvCPX0jjoxiMDHWAUIs=; b=j1Rvs3MIp+K56Tb5UF8pcTgdYy01Y1GEOBJzRXrCx5KLyxHJBKptn+RHgWbCnxBB1yXcEfldlAEaA5DN0bqhT+UZuXzs7NBP3DNlQic9C3rZlpBxjsKEG4FnaUNUDBpD5f6rkLE93QagqHYhCg1iT8nXG4wM7czhPSGPQzCaQLgYpfezyMFf768s3dprfhjMztiQZIbBKna9oUcNYHS+4j4tvMdZK39klJ+0oG4p+V/wLaap7RBGFFBWCbMoFI5cn76xlYTQHPowSvwVW604ymjdZb7q+vq6gjvsgCx4Xe5yl5jNTpzaoTP5Oyj6EhG1GMaxKKW0W0QP0Qo2PtLgfw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nvidia.com; dmarc=pass action=none header.from=nvidia.com; dkim=pass header.d=nvidia.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=rN1+a+WbXXMcnQSTG/PwdTVyIvCPX0jjoxiMDHWAUIs=; b=qoSQdr28E48G3GnJVrdEWlEkcb1LINA76FKQDoDZduly8G+67ecTntoSAOA0JoPpikan+Z5RWLQBitOdGOybktFa8DJHeQFpkLLEElSJDPooMIEdVnS5MJmphXgdKV0p/16YKyRFjITRT8kMWmxA7QlNCkjYUO3J0IKQnAJxoooxQ0LTxY4Kqx5tEooW3MOB7PMKqTAaL1cthhzb6adTsZiu+sRSWbjz8QVYDSWYcRi1v4q/UxhhkHocle/hyjyPFRn81VeEX/xgMLbzJHC0JPW3caIfKxVPwfOCdrLe0+klZoYbCjNEweqJMDtxg5A4PCFiuDSzWphtahftVbJ0dA== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nvidia.com; Received: from IA0PR12MB8374.namprd12.prod.outlook.com (2603:10b6:208:40e::7) by DS0PR12MB6486.namprd12.prod.outlook.com (2603:10b6:8:c5::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.406.12; Mon, 14 Sep 2026 02:24:31 +0000 Received: from IA0PR12MB8374.namprd12.prod.outlook.com ([fe80::d85f:4c87:ae84:3f16]) by IA0PR12MB8374.namprd12.prod.outlook.com ([fe80::d85f:4c87:ae84:3f16%5]) with mapi id 15.21.0406.007; Mon, 14 Sep 2026 02:24:31 +0000 From: Zi Yan Date: Sun, 13 Sep 2026 22:24:14 -0400 Subject: [PATCH v4 16/16] mm/page-flags: remove PG_private Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260913-remove-pg_private-v4-16-848550f7574e@nvidia.com> References: <20260913-remove-pg_private-v4-0-848550f7574e@nvidia.com> In-Reply-To: <20260913-remove-pg_private-v4-0-848550f7574e@nvidia.com> To: David Hildenbrand , "Matthew Wilcox (Oracle)" , Andrew Morton , Muchun Song , Lorenzo Stoakes , "Liam R. Howlett" , Vlastimil Babka , Mike Rapoport , Suren Baghdasaryan , Michal Hocko , Baolin Wang , Nico Pache , Ryan Roberts , Dev Jain , Barry Song , Lance Yang , Usama Arif , Gregory Price , Ying Huang , Alistair Popple , Johannes Weiner , Qi Zheng , Shakeel Butt , Kairui Song Cc: linux-mm@kvack.org, linux-kernel@vger.kernel.org, Zi Yan , Baoquan He , Pasha Tatashin , Pratyush Yadav , Jonathan Corbet , Jan Kara , Steven Rostedt , Masami Hiramatsu , Dave Young , Shuah Khan , Mathieu Desnoyers , kexec@lists.infradead.org, linux-doc@vger.kernel.org, linux-fsdevel@vger.kernel.org, linux-trace-kernel@vger.kernel.org X-Mailer: b4 0.16.0 X-ClientProxiedBy: YQBPR0101CA0083.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:c01:4::16) To IA0PR12MB8374.namprd12.prod.outlook.com (2603:10b6:208:40e::7) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: IA0PR12MB8374:EE_|DS0PR12MB6486:EE_ X-MS-Office365-Filtering-Correlation-Id: 30c58b29-3f79-4729-a59c-08df12074f21 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|23010399003|7416014|366016|376014|1800799024|6133799003|22082099003|18002099003|921020|10067099003|56012099006|11063799006|5023799004; X-Microsoft-Antispam-Message-Info: 2dfEYJ61jJkyc61FyZejhtGZoce7Dq79QvLrSw1OWVjyshKApmvePFW4W2CoK4XWwuFF/6VLcPrpTVZ0aAIy1HVt96MaHpGL0i9WuxqKoBeormyPcnT2P7cQVRkbprPxkZSuG2/0pHhQryzLuqYXJxpdr+6C0mhgWmjk4z3P4/64cGuH+2EmPYp8lavgRO/M4mR314LzYc7nU0CkXu7k4zZ9aLaGrs2W6PXZuAoLGQ3FflE8K4oQnHoeiYRi5Qey2b2GBk4MYeucYbY5yWIJt88sW2LuG/Cs4g+QscfUw/4aPLAIdKlAr+dgvIMD7tYj2tUtOCIJWIoSrz91WfUYZXQus8lEt16aU7v9KrZxPeYwiSuAJ1nv3oW3W/zmOnV2DCjxlFSPEHKAVQP3qihOYiJi7uUgCqVXwZVb6QKaPYQ5vAFCMRAkyMsWNRgEgpHqZ2IXVpsp7c2ufKLbV/dchC/Vp3owH7LwcWNBXOrsl/+GwWVQihvYJpUyjZiW8e3QXTWl5wCxnMiv2wANXmIDhS+LaV6FK0Cc8Kenxluh6mdlMtwM720SzROkLMYIDM8OevrGAjhfLDmOLXT1OZsQxGgIHQJCiJpt6CvY6bujVvZl9wRV2EijRkmG60ScGjMLWMFhcT73hhPYvYmOnteeoZ6zqZ/9dOXzUShO2xW/2GrCcAmGIF7MCQxjUyjCVQwCHeUkcUWTn0bTvtMfvCzR1w== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:IA0PR12MB8374.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(23010399003)(7416014)(366016)(376014)(1800799024)(6133799003)(22082099003)(18002099003)(921020)(10067099003)(56012099006)(11063799006)(5023799004);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?SSt2Q0UwelNKVDVreDdmenphVWU0RnE1dG11Z3lPaUxZNmh2WTFkMmNweCtZ?= =?utf-8?B?WXdBVXFQWmNDSm1VMEpXVlVEaGRhdC8wclphcy9BRUg3YWU5WkRibHNqYzds?= =?utf-8?B?ZzgrbUU1UWVhNlJJSmhBSlVScjYwa3o4VmdSeHAvNEZjV2xSUG9IcjJ3SCtS?= =?utf-8?B?Z3pnTThGM1ppc2Z0NmF1cy93Y0VQSGVZQ1IvdmVjUVd4cTJDQXZ4elM4T2sz?= =?utf-8?B?N3lWL0YwajFwY0ViNDVXZERpZFU5UnJXSk5IRXI3UjVGV0VIZ3Zhd0VhNHIx?= =?utf-8?B?Nm1zYTBTUk9XTmZSR2hTSXJLSktYTUpXZkNFK0pndzQyWnkrRTIwOGcwb1pO?= =?utf-8?B?dlNjMTdMVEl4LzBmMGRpemMzN2JDVUZXcHRQNFVEcDdZTjZIWFRPQW5lSysx?= =?utf-8?B?eDFpeGhtUjdkMGRpOTRpUVM3Nk5weXNFNXRjanRCbzRJWWMxNjZqZHlBdzkv?= =?utf-8?B?OUVnNVpmb1ZDTjFvNFRkZUp5Q3hIcGNHZERXMEs1V29WSE5FSS9RQTNUdEFS?= =?utf-8?B?NC9EamJlbWJmZUI5aWdxUW0rbkQ0WkhuN2JkSjNYZkxaNm0xWnc3VURYYXZi?= =?utf-8?B?TmhKeU0vNjV0QWRDL3JOeWptdGtDYnk4N0FNdktxNVFXWFd2VW93ZWdiaWwr?= =?utf-8?B?YVpNM3BaTjdQNHEyOVlFMllHNkpFTVRaRFBqSHJMTGlzeHROZi9ZQ0o0Wldu?= =?utf-8?B?VGEvU0lycFVld3dWbG5EV0JBaGJ4YWFMemlUamZVdDJIbFRZZ1YwalVRUVRq?= =?utf-8?B?cS9OazFrYmxRNUoxQ2pZWGxqSmZGWUoxc2ltdVYvbk1sWklLYkRmYzNPcU9N?= =?utf-8?B?Q1hTWVJRWHlWL1dzN0dzUWJLZmlZOWFyQVBkcG8wT0szM21EWlZQYURnTkpY?= =?utf-8?B?aEFISFR4cng3SnUxcVBWckRmUkgzUzJnYXNCT1lLRzREWG5RcHoybVJiTVZ2?= =?utf-8?B?QUxkWnY0TXo3RnFhcGRoeHR1b2E2NXRzRUVhYnArSDJMcXRnNGpyT2c4YjZ1?= =?utf-8?B?YWV1a2hJbS95K0ZTWU9tUWErTnBOWEhsbVJ2b3ZTdXdYTmFsZWhwNC9yTSth?= =?utf-8?B?YS8xVDdOWXJhUlByMC9UKzBJZHYzL0dNTFh3b1FYSGpydUtsYVJqL1R2QUEy?= =?utf-8?B?S0lrdVhKU2VpUUdjenU0dUVxU2NTZkxuOEplUEJ0bHdMSGJHSHVqR1lxajAz?= =?utf-8?B?QXhqUDdtRUtCZHhlTHZuNTduSG1Gei8zY2E4cmo4UFFsTEE3OEdmMFpjMTd3?= =?utf-8?B?Z3lrMTdzb29uZ1B0VTFDQWNMbWJacTdXUlErV0ZpTkFGZWdVZHc0VnpwT0cy?= =?utf-8?B?Z09JZnRrZ2Q1UWhZS3pVOC8zb0FJVE8yQ0g1WDBVL1FoTjUvQmgyQ0lyRnd3?= =?utf-8?B?cDVnV1lhZWVrZ01FSlFzaEt2R2tBeWJwWXQ4ckRPY1R4YTAwUXBKcmgrT1ZR?= =?utf-8?B?aThtRmhBWUdPdjgxdVp4TmJkVEM4SUhsc3RpOUtiZ1hyUXNpYUlaelE4bGNK?= =?utf-8?B?VzFPS2I3ejFQS1FvNGZCb2VFY0ZhNEhwY3pKWEdIdWZpQW1PcXJ5SVF6Y0Nk?= =?utf-8?B?RG1wS3JQMTNBbjdLOFRzQmNkamZSbVFUWnZVSDM5SE5ucWxTUDViZzNBdStE?= =?utf-8?B?R3ZJdlJGUExxY1FEcE0wVytYNkhERjZoL1diUkhQblc3K2RRL2pSVnRiRUlD?= =?utf-8?B?ci8wSEJpUnZZR3RYSW1qeGUzYWRCTXZGdG8ySCtMT1pLRTVWZTJxL1g4eWQ1?= =?utf-8?B?Z1FaQis4QmV5TFZraDFmbUI2M3o0TDE1Q3RCakRjRnhvTDVlVG1BajV2V3Jx?= =?utf-8?B?YXAwcnA2QjZzNXdyalYwWVVvVDJvOHFraldqU1o5b0hQeUE4SlRoTitwK29N?= =?utf-8?B?TVJ0TUg3bTFlSHpCc0NUMExqb0JNMlQ1MnNQTXJlMGttUlNTMStOUXAwTEl5?= =?utf-8?B?RXFPcWhTdGtjTkI3L04yME5lTFpSM1NZRkpuK1pyQkxWNW9EOUlaQ1ZZRHNU?= =?utf-8?B?OFQ2dFA5b3lMSDBZSHZBL054NmNlS0JaNjMxUVB2RlhtbHFmNTZoVjFEV09W?= =?utf-8?B?blFucnZtSENVTzZLdmt4a3Y3NitMb3dhMDJiVkFrMGtCZGlQRnc1N2dqaFhM?= =?utf-8?B?Nkt0SVNpcTE3eTZ1bmpoeElpZ1ozK1VXK2E5dkozMHdGdkNDN21rREVFMk1F?= =?utf-8?B?MDN0WXFyRTNsWHJwOFBkRlhLbUp4YmlVczZkM1g2V0Rkdk1uQ2hnb0JZRzlh?= =?utf-8?B?RVVMQlNwTzdLRmlYQk1TbW9XY2czaHZFcThqblpYM05XY0E4eDBYeDlVNTd6?= =?utf-8?Q?q2wq2jEb4D/jcp3Bbk?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 30c58b29-3f79-4729-a59c-08df12074f21 X-MS-Exchange-CrossTenant-AuthSource: IA0PR12MB8374.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Sep 2026 02:24:31.2611 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: 1cV/qG4beDPnCKyYZaiHFdlLYF93aWukeu6iKxzuDP6p1pfK9036LGKUfqt84Y3F X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS0PR12MB6486 folio->private !=3D NULL indicates a folio carries private data, replacing PG_private. All PG_private users are converted. Remove PG_private and reserve the space as PG_folio for future use. Unused PG_private functions are removed too. Assisted-by: LLM Signed-off-by: Zi Yan To: Andrew Morton To: Baoquan He To: Mike Rapoport To: Pasha Tatashin To: Pratyush Yadav To: Jonathan Corbet To: "Matthew Wilcox (Oracle)" To: Jan Kara To: David Hildenbrand To: Steven Rostedt To: Masami Hiramatsu Cc: Dave Young Cc: Shuah Khan Cc: Lorenzo Stoakes Cc: "Liam R. Howlett" Cc: Vlastimil Babka Cc: Suren Baghdasaryan Cc: Michal Hocko Cc: Mathieu Desnoyers Cc: kexec@lists.infradead.org Cc: linux-doc@vger.kernel.org Cc: linux-kernel@vger.kernel.org Cc: linux-fsdevel@vger.kernel.org Cc: linux-mm@kvack.org Cc: linux-trace-kernel@vger.kernel.org Acked-by: David Hildenbrand (Arm) --- include/linux/page-flags.h | 19 ++----------------- include/trace/events/mmflags.h | 2 +- kernel/vmcore_info.c | 1 - 3 files changed, 3 insertions(+), 19 deletions(-) diff --git a/include/linux/page-flags.h b/include/linux/page-flags.h index 08988877331ba..10f4ad075ea48 100644 --- a/include/linux/page-flags.h +++ b/include/linux/page-flags.h @@ -44,10 +44,6 @@ * Consequently, PG_reserved for a page mapped into user space can indicate * the zero page, the vDSO, MMIO pages or device memory. * - * The PG_private bitflag is set on pagecache pages if they contain filesy= stem - * specific data (which is normally at page->private). It can be used by - * private allocations for its own usage. - * * During initiation of disk I/O, PG_locked is set. This bit is set before= I/O * and cleared when writeback _starts_ or when read _completes_. PG_writeb= ack * is set before writeback starts and cleared when it finishes. @@ -105,7 +101,7 @@ enum pageflags { PG_owner_2, /* Owner use. If pagecache, fs may use */ PG_arch_1, PG_reserved, - PG_private, /* If pagecache, has fs-private data */ + PG_folio, /* Do not use: reserved for folio identification */ PG_private_2, /* If pagecache, has fs aux data */ PG_reclaim, /* To be reclaimed asap */ PG_swapbacked, /* Page is backed by RAM/swap */ @@ -575,7 +571,7 @@ FOLIO_FLAG(swapbacked, FOLIO_HEAD_PAGE) /* * Private page markings that may be used by the filesystem that owns the = page * for its own purposes. - * - PG_private and PG_private_2 cause release_folio() and co to be invoked + * - folio->private and PG_private_2 cause release_folio() and co to be in= voked */ =20 static __always_inline bool folio_test_private(const struct folio *folio) @@ -583,17 +579,6 @@ static __always_inline bool folio_test_private(const s= truct folio *folio) return folio->private; } =20 -static __always_inline int PagePrivate(const struct page *page) -{ - return !!page->private; -} - -/* no-ops during transition */ -static __always_inline void folio_set_private(struct folio *folio) { } -static __always_inline void folio_clear_private(struct folio *folio) { } -static __always_inline void SetPagePrivate(struct page *page) { } -static __always_inline void ClearPagePrivate(struct page *page) { } - FOLIO_FLAG(private_2, FOLIO_HEAD_PAGE) =20 /* owner_2 can be set on tail pages for anon memory */ diff --git a/include/trace/events/mmflags.h b/include/trace/events/mmflags.h index ef9aa388b84f7..3c153b3ad8450 100644 --- a/include/trace/events/mmflags.h +++ b/include/trace/events/mmflags.h @@ -144,7 +144,7 @@ TRACE_DEFINE_ENUM(___GFP_LAST_BIT); DEF_PAGEFLAG_NAME(owner_2), \ DEF_PAGEFLAG_NAME(arch_1), \ DEF_PAGEFLAG_NAME(reserved), \ - DEF_PAGEFLAG_NAME(private), \ + DEF_PAGEFLAG_NAME(folio), \ DEF_PAGEFLAG_NAME(private_2), \ DEF_PAGEFLAG_NAME(writeback), \ DEF_PAGEFLAG_NAME(head), \ diff --git a/kernel/vmcore_info.c b/kernel/vmcore_info.c index 8614430ca212a..5a417f8a922ab 100644 --- a/kernel/vmcore_info.c +++ b/kernel/vmcore_info.c @@ -216,7 +216,6 @@ static int __init crash_save_vmcoreinfo_init(void) VMCOREINFO_LENGTH(free_area.free_list, MIGRATE_TYPES); VMCOREINFO_NUMBER(NR_FREE_PAGES); VMCOREINFO_NUMBER(PG_lru); - VMCOREINFO_NUMBER(PG_private); VMCOREINFO_NUMBER(PG_swapcache); VMCOREINFO_NUMBER(PG_swapbacked); #define PAGE_SLAB_MAPCOUNT_VALUE (PGTY_slab << 24) --=20 2.53.0