From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id AB4C7C19F29 for ; Thu, 4 Aug 2022 01:55:19 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 001958E0003; Wed, 3 Aug 2022 21:55:19 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id EF2E48E0001; Wed, 3 Aug 2022 21:55:18 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id D93BA8E0003; Wed, 3 Aug 2022 21:55:18 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0011.hostedemail.com [216.40.44.11]) by kanga.kvack.org (Postfix) with ESMTP id CB5B68E0001 for ; Wed, 3 Aug 2022 21:55:18 -0400 (EDT) Received: from smtpin03.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay10.hostedemail.com (Postfix) with ESMTP id 8A840C0203 for ; Thu, 4 Aug 2022 01:55:18 +0000 (UTC) X-FDA: 79760242716.03.211E8EC Received: from mga07.intel.com (mga07.intel.com [134.134.136.100]) by imf14.hostedemail.com (Postfix) with ESMTP id 57DEF100006 for ; Thu, 4 Aug 2022 01:55:17 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1659578117; x=1691114117; h=message-id:date:subject:to:cc:references:from: in-reply-to:content-transfer-encoding:mime-version; bh=tXBU//my98zQ5Mp3dR2eYiOvS1RRepgclvi0LV0PC0s=; b=TFE6dIhRJcP3ZsWjcGPsA9VWKiwIU9yoHT3bFSPvmB4Uh5QlTDuvyl9E D5IzFlGkRWicpQZzK0vaI/rYUi1TIRY4RiZHWP7ne8RoTEyOlFx+wJ1F9 qtmVNwGzbV60EhGlRnNKRb9NOpaIWZUTXthgWAB2tSASLVPOJ/hmFIM5z QLh6V5hBbneslmkV8tK7BBs8sF4cFW3U+Dh5eM95opKt2kx3MezVqWO2A /jkztJXb94ygcyKXh9cFk0+7QMDuHE/wXAIBP6BUW+nn8ZG7hbx9z9N0b zfmFYyMX0SoosfMhW4AY6BCHWWyyVQrhY0Hl7VPpoSl76cC39Y5lSfd9y w==; X-IronPort-AV: E=McAfee;i="6400,9594,10428"; a="353816132" X-IronPort-AV: E=Sophos;i="5.93,214,1654585200"; d="scan'208";a="353816132" Received: from orsmga002.jf.intel.com ([10.7.209.21]) by orsmga105.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 03 Aug 2022 18:55:10 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.93,214,1654585200"; d="scan'208";a="603042059" Received: from fmsmsx603.amr.corp.intel.com ([10.18.126.83]) by orsmga002.jf.intel.com with ESMTP; 03 Aug 2022 18:55:09 -0700 Received: from fmsmsx604.amr.corp.intel.com (10.18.126.84) by fmsmsx603.amr.corp.intel.com (10.18.126.83) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.28; Wed, 3 Aug 2022 18:55:08 -0700 Received: from fmsedg602.ED.cps.intel.com (10.1.192.136) by fmsmsx604.amr.corp.intel.com (10.18.126.84) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.28 via Frontend Transport; Wed, 3 Aug 2022 18:55:08 -0700 Received: from NAM11-DM6-obe.outbound.protection.outlook.com (104.47.57.177) by edgegateway.intel.com (192.55.55.71) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2375.28; Wed, 3 Aug 2022 18:55:08 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=W7HA0ME/PkUIkAkgqTfSEtvaFgLMCUaraaj8H+QLAtVIs9ve0y5mxH5ehd3UTJXVGlTbRTt2DsFHPqkFELP1xK6PsUAAsCv8wXi3Xg1s+EL9JCzMOB6tDVr7BCK9hmflvmu8FGU3Y/qUWpUqB0Q+z8CY7fWXXz18tA7zkgDLIQRWPigwWYyGgNdxyR8Aeswuyl3XgDpM+5fdYX9+HFmX2oTH6hM6Hu2LyUp4AQXhLlqxA2xZIaXfCfBn45D60t/G+gpgWPCMlrw7UWLmHHWm8AJk0kMPJo7GXHJcY+uEXsHcieqahIpUeZUv8fWTXrjLtw2iZsIKj2i1AkVQj5JKYw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=4fRSwcHcaimm2OWbhu90ZlS5qSSKpyo76nlBzd0qZyY=; b=dTxUsumJyNb25rj7pCc7XFWFLTEVN2yrm0K1kCArj+HiNosxmcdGIwMemCORIQHA5A8CBMMrYk3ClfZ6oLgUuiabG7FOa+DS2Om27khlGZL3tHloCg4V/MXdsBKNTCPtC2DFEqMdD+3yldfIuvMbsdO9xw1lxjDrMnpk7+QPGorc1sps8hFUKuJhepivN00YGETzNSY2pKElm3dTf/v7allKBNHZNDt8AXFLpU5qBClqYa6dIr8ZZzIAi+SToi5IXFryGaFRlAk0V5t1Evz1GTELBqMywKia7+cZplprfUwr1Hb2xG0cH0HOzGlun5MlrnDr4WuYDnCAvh6xkVjvtg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none Received: from CO1PR11MB4820.namprd11.prod.outlook.com (2603:10b6:303:6f::8) by SJ0PR11MB4847.namprd11.prod.outlook.com (2603:10b6:a03:2d9::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5504.14; Thu, 4 Aug 2022 01:55:06 +0000 Received: from CO1PR11MB4820.namprd11.prod.outlook.com ([fe80::552f:2392:56f8:ca32]) by CO1PR11MB4820.namprd11.prod.outlook.com ([fe80::552f:2392:56f8:ca32%3]) with mapi id 15.20.5504.014; Thu, 4 Aug 2022 01:55:06 +0000 Message-ID: <39c1f73d-d90c-1423-7bc8-a39414f2a69e@intel.com> Date: Thu, 4 Aug 2022 09:54:55 +0800 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.11.0 Subject: Re: [RFC PATCH] mm/memory-failure: release private data before split THP Content-Language: en-US To: Miaohe Lin CC: , , , , , Matthew Wilcox References: <20220803025243.155798-1-fengwei.yin@intel.com> <410bb7b3-db57-47a9-f97c-1e3441aadb23@huawei.com> From: Yin Fengwei In-Reply-To: <410bb7b3-db57-47a9-f97c-1e3441aadb23@huawei.com> Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: 7bit X-ClientProxiedBy: SG2P153CA0007.APCP153.PROD.OUTLOOK.COM (2603:1096::17) To CO1PR11MB4820.namprd11.prod.outlook.com (2603:10b6:303:6f::8) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 471eab33-8794-4ca8-60bf-08da75bc5ab5 X-MS-TrafficTypeDiagnostic: SJ0PR11MB4847:EE_ X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: OZmbn+C+E6fIllbGPqMnH4xxdb297DogtuLDDLc5CPn9tAOrvARamwuSM16SxEuMtzkZrPHCTtl3Oksi4+Kf4dUP6zbxsb8UcheV9u4e5GIByBs9G9+yk5ap8mZlyoYoHUh73Z9mK+XTfduKhibzYZRW9sXLALPkk/L6i0uj4EXe4lzTx2cz9pyPjlkDGTwbjmlJbimtGvG4+4H4tajSNbxLEpiZM1jb0gqAOTRU55SUV9vduI6ZLjCD9Z/9A0bovRcFDGpmSdmnk6BvPJ30bHSJn/lcygCAcpvirlEGJqqk2WI4zx01+7H2x+RbGRlwBV1OGtyAWgJ8Hh2cT3qr9jP46NQzBllNxaSBTuveHPQsbEyP/WJ7HXr0/7WtTjUTCeCjQZdWYm8vx8VdxYCrwwx73SnUKXHkw80CZhOrQTpmfwXCqNSdqySMGpN7azCj/gl5CiNJrgdOl2ttsa9ojTSH+m+a1oTFobgecGQdGZUyXOswk0avs9UqNYqU9nmDZf1PxecPZRRSvhjPsIW1NzDqsj3c8Hpt12BhpwIgE50fBJIIV0SAoFFNdzW/VqjL0+DvD8O38fOMXnE1kfKFlgsniQjNdiI6i3HJ+hc7F7jBzipHHdpysYl/99eeAyflU5cLM/fJP3TfpbHz4MZcFECotjYL4C8O2Vwo4Zfr6+ayaxAdM9182xKEuxzEqYukNbsNfRbDXa5cD8TIg8lJeBHjhdjWv8eRbYuCGYhVsFVO9tTFgWTIHJa+owL2ed0aX6K/weHJYakKDM+/j3VGpaLrItcbtp2/iny9uE5KxqAxhbTtCQz+oxBTCRfT57Tisnx3TvE+SD93EzmrpaNMjQ== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CO1PR11MB4820.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230016)(39860400002)(136003)(366004)(346002)(396003)(376002)(316002)(31686004)(6916009)(478600001)(36756003)(66946007)(66556008)(66476007)(4326008)(31696002)(86362001)(82960400001)(8676002)(6486002)(8936002)(38100700002)(26005)(6512007)(53546011)(41300700001)(5660300002)(6666004)(186003)(2906002)(2616005)(6506007)(83380400001)(43740500002)(45980500001);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?ZTQ5ZlNMd2QvQ1FnNkVqMW1iRkRCcU1HNnJpS2dMT2NwR1FOaXdTbVhJNlFK?= =?utf-8?B?RlY3ZTZ5MldHUTV2N0VDYlZpZDdHaXJKdmNZMnVhRUlRNnp5ajQ4U0tISnQz?= =?utf-8?B?eEE5SjZyaHUyNnh3dCtQVk0wcHMzZGRVN0dsVGRpSm41clZ2d1MxeWxvc0lO?= =?utf-8?B?SzhqMzE1SVZkaWlObTFqa1J1aE95S1EyaG1SaGprWGNadHVLTzJCam1ka1dv?= =?utf-8?B?Mkh3VmZMQTVlNnNqZjdMdkFKMzJHUUJ4aGxwMnpUa250T0k3S0pVNjE3STdN?= =?utf-8?B?cHpRZFJXckN2SithN3FKZzdoemNuM2ZQS3AvTGQrdUo4RWJ6Rm9VR1FqZWRB?= =?utf-8?B?UllJWFJJNVI1SUVVellGdGt2SEtQd1RoQzFXbWM0ZjRmWTVZekk4TkthTFds?= =?utf-8?B?SUNwV2lNT2dHakVqSEdoTzJONnBmTlkrdHR0UkRpd0JLRUlpQ1VBNnB6QlFa?= =?utf-8?B?cklIVDEwZVJFOUp5NmtIWDVrcjE4bS9OM3gveVd6OUE3OTErMm9kL2JDM3lo?= =?utf-8?B?aDVvZzBUTzVnNFBObUFMdzRuWDhrMld2NXdzMGwxSFNwUmxnbnV2S1gvV21r?= =?utf-8?B?dWdjdE4xNUdFbzBrUjRmVmNqbDVIL1hNQUM2VDNpaUFzZSttZC9VZWU4ZUFF?= =?utf-8?B?YnEwbTJ0em9XODNMa21vSCtzeGdLTm9Odm5XN1FjOHN1dnIxU2JUZWduaTZF?= =?utf-8?B?NjBNYVBKL0xYbC9RZ3NSd0NFR3dxMS9yb01udldIUVhnSDkrVUdicjNONThy?= =?utf-8?B?MkZBZXNtT3R5Z1VjTmhwc25ydDIrY1ZEMWlkb0szRzNvNkN2UFYwalNrQVdT?= =?utf-8?B?QUxjYWNCc2JVSCtiRCt6aExZdnJhdFZRUHNlM2paMkcydWRycUZORm53cjho?= =?utf-8?B?V3NMb3pGQ2gwNXIveWxLcUVOWDFXYXFycVdBN2VCbzVCWGZEWVg5eGhob1Fk?= =?utf-8?B?YSt6S1N0OGx0NVVkNWFobnNuZnBTUHpxV2tmdVhxL2tNZmp4ZStxOC9GTFJ4?= =?utf-8?B?cVFWdHNVckpXTzl4UG52U1M3S2pGNU8yOFAxaDR2NE0xMHZ4aVJEYjY1ci9F?= =?utf-8?B?elVxczBOTjVNZVFiK2piaXVqK0ErTmVsc0ZRd2d0eXJpNTB3cFZoZzcwWjhQ?= =?utf-8?B?MXlXSUM1UEVrRkJoUHRFalJnajFKRVN5WFRMdUtHTnhwVW1SalhQeXpMOUEy?= =?utf-8?B?bFRWVDFPNkFpUzRlbTFwaHpHN2R0bFUxeEh3Z1pFMU5aTXEraHo5c0xMVGVm?= =?utf-8?B?K2JLSFhuSC9vVTU2RjBvMzJVTlpxWnhFUlBSUno5Zkw5U0V6VnNMWlhXdVFU?= =?utf-8?B?SnhvcFRNYzVqWnpKUnpTd3lRandoM01zaXZqOVZsYkpyTU9TSEtVVnBWL3JL?= =?utf-8?B?dzU3clcvOE5KalBaVjBvOWVPUjM0L2lOb0FReGtRRDVyTXptQzRDcSsyc3hN?= =?utf-8?B?YU1UN21RbnVseHFhVVNhUUExMXNMVTVLd0lTU0JhS1B2b0M0MXNPd0NZckQ0?= =?utf-8?B?VTN6SEN3cVNDSG9Hdk1TaHVQTk4wU3N4QlpQb1FxWW52UXJZS1FYakgxRlcv?= =?utf-8?B?cnlvYkl5Uk9sSlFqSmF2dGNoN3RzSCswYXdRZTlmT01paHRCRXV3RlhUSmFl?= =?utf-8?B?c3NlUjhsRUNJVTB3SXB0RmFmMzlaeHY0OXFnSzdBYTZtZmlMQXdPUURENmNw?= =?utf-8?B?dkZnc0R5d2c0RUJxaENRMWc0MkZGMk02djhQWTgxMzAySmhhOVU1S1lBbENh?= =?utf-8?B?NVVuSnY4ZGJrSFBlNnNpWWxOaWhlYWVZTFVmS3B2dGxlUUJ1REpoUjI4WTE5?= =?utf-8?B?bkxiRTFqTFdSSWRsWEFZUEIvTUgrcmMyNzJ2NXNWMzRPVlltMkxOMUVzSXdN?= =?utf-8?B?NERnK2svSHF2NC96a3hKZktDMk40SDB3YWV0bWh6Znc1RDVic28zVStpTXVT?= =?utf-8?B?QjhpMU05VkJHRjdERXlaWlNPWnZOeFgrbTdkU1RJd3ljZ0JBeW1NN2s1Tjh4?= =?utf-8?B?cVRlSFA5TVFKeHlZT0Q2T0FZVjErU2wyODFnNDlnMzJPU2Zod0w0dlRTWGJh?= =?utf-8?B?bWk5TmZrVklVT3ozNGJETFJ3c3NCbnpQUjlrcGhVZkhGMUU1T2FuNmUvb1Fn?= =?utf-8?Q?9hZSp7M/83QsOwIv0K3eXsxou?= X-MS-Exchange-CrossTenant-Network-Message-Id: 471eab33-8794-4ca8-60bf-08da75bc5ab5 X-MS-Exchange-CrossTenant-AuthSource: CO1PR11MB4820.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Aug 2022 01:55:06.3745 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 46c98d88-e344-4ed4-8496-4ed7712e255d X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: tE4+iXCz634h0KdNFIIUndjZDBlL5rSMo+kLj6qzVI+kTOJZWmEf0kzEA1Q8nWYEGlcN+C6PWvjMTTJvkrv81w== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ0PR11MB4847 X-OriginatorOrg: intel.com ARC-Seal: i=2; s=arc-20220608; d=hostedemail.com; t=1659578118; a=rsa-sha256; cv=fail; b=t/FoAmhakmAnRrYJHytDhpWOEkC+vWK11HTwoyg0xBj+3nXpDDt8krWBbOxFAeoeSVKLXU TbIQVKrChWFE/el4CLRPp5mxtyIin95fuLMlaGZi2PFu2Leuq66V2GD8OPV3TNFnRHKZ6u M6KR2lWn0RULFqyybuqxB4TFsw39iaM= ARC-Authentication-Results: i=2; imf14.hostedemail.com; dkim=none ("invalid DKIM record") header.d=intel.com header.s=Intel header.b=TFE6dIhR; dmarc=pass (policy=none) header.from=intel.com; arc=reject ("signature check failed: fail, {[1] = sig:microsoft.com:reject}"); spf=pass (imf14.hostedemail.com: domain of fengwei.yin@intel.com designates 134.134.136.100 as permitted sender) smtp.mailfrom=fengwei.yin@intel.com ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1659578118; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=4fRSwcHcaimm2OWbhu90ZlS5qSSKpyo76nlBzd0qZyY=; b=e3TFpKWjgJ2ZfsRhARyAbWiqWkE7hvzu/q9wDTPUSe+256Da7aG+gHuFmIuOYNGg95RAb9 Jaa2//DsYdZ0EV2UhnQ4ZZoPzrXPhWLBsYNTcdrEIEN34V02giZdpWSVT4XzeUnv08rI6U aErGCNpM3d9UhB0eJhUnncDZBvfRLrU= X-Stat-Signature: 3twwaq4yztd5ific1afacpnymqhgd9td X-Rspamd-Server: rspam07 X-Rspamd-Queue-Id: 57DEF100006 Authentication-Results: imf14.hostedemail.com; dkim=none ("invalid DKIM record") header.d=intel.com header.s=Intel header.b=TFE6dIhR; dmarc=pass (policy=none) header.from=intel.com; arc=reject ("signature check failed: fail, {[1] = sig:microsoft.com:reject}"); spf=pass (imf14.hostedemail.com: domain of fengwei.yin@intel.com designates 134.134.136.100 as permitted sender) smtp.mailfrom=fengwei.yin@intel.com X-Rspam-User: X-HE-Tag: 1659578117-920503 X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: On 2022/8/4 09:19, Miaohe Lin wrote: > On 2022/8/3 21:01, Matthew Wilcox wrote: >> On Wed, Aug 03, 2022 at 10:52:43AM +0800, Yin Fengwei wrote: >>> diff --git a/mm/memory-failure.c b/mm/memory-failure.c >>> index da39ec8afca8..08e21973b120 100644 >>> --- a/mm/memory-failure.c >>> +++ b/mm/memory-failure.c >>> @@ -1484,7 +1484,16 @@ static int identify_page_state(unsigned long pfn, struct page *p, >>> >>> static int try_to_split_thp_page(struct page *page, const char *msg) >>> { >>> + struct page *head = compound_head(page); >> > + >>> lock_page(page); >>> + /* >>> + * If thp page has private data attached, thp split will fail. >>> + * Release private data before split thp. >>> + */ >>> + if (page_has_private(head)) >>> + try_to_release_page(head, GFP_KERNEL); >>> + >>> if (unlikely(split_huge_page(page))) { >>> unsigned long pfn = page_to_pfn(page); >> >> It seems a shame to use the old page approach instead of the >> shiny new folio approach. We're quite close to being able to remove >> try_to_release_page() in 6.1 or 6.2 so adding a new caller is a bad idea. >> How about this: >> >> diff --git a/mm/memory-failure.c b/mm/memory-failure.c >> index da39ec8afca8..765b383288b1 100644 >> --- a/mm/memory-failure.c >> +++ b/mm/memory-failure.c >> @@ -1484,16 +1484,21 @@ static int identify_page_state(unsigned long pfn, struct page *p, >> >> static int try_to_split_thp_page(struct page *page, const char *msg) >> { >> - lock_page(page); >> + struct folio *folio = page_folio(page); >> + >> + folio_lock(folio); >> + if (folio_test_private(folio)) >> + filemap_release_folio(folio, GFP_KERNEL); > > If filemap_release_folio fails, we could avoid trying split_huge_page here? Maybe we could stick to this regarding this is error recovery path instead of hot path? > >> if (unlikely(split_huge_page(page))) { >> unsigned long pfn = page_to_pfn(page); >> >> - unlock_page(page); >> + folio_unlock(folio); >> pr_info("%s: %#lx: thp split failed\n", msg, pfn); >> - put_page(page); >> + folio_put(folio); >> return -EBUSY; >> } >> - unlock_page(page); >> + folio = page_folio(page); > > Above line (re-fetching folio) might need a comment to avoid future confusing ? I will add one line comment about why page_folio need here. > > Anyway, this patch looks good to me. Thanks for fixing. Thanks. Regards Yin, Fengwei > >> + folio_unlock(folio); >> >> return 0; >> } >> >> . >> >