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 X-Spam-Level: X-Spam-Status: No, score=-17.2 required=3.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,MSGID_FROM_MTA_HEADER,NICE_REPLY_A,SPF_HELO_NONE,SPF_PASS, USER_AGENT_SANE_1 autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 73094C433EF for ; Tue, 14 Sep 2021 07:34:53 +0000 (UTC) Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 1730261029 for ; Tue, 14 Sep 2021 07:34:52 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.4.1 mail.kernel.org 1730261029 Authentication-Results: mail.kernel.org; dmarc=fail (p=quarantine dis=none) header.from=suse.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=oss.oracle.com Received: from pps.filterd (m0246631.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.16.1.2/8.16.1.2) with SMTP id 18E6C0i8028291; Tue, 14 Sep 2021 07:34:52 GMT Received: from userp3030.oracle.com (userp3030.oracle.com [156.151.31.80]) by mx0b-00069f02.pphosted.com with ESMTP id 3b2p8t88nc-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 14 Sep 2021 07:34:51 +0000 Received: from pps.filterd (userp3030.oracle.com [127.0.0.1]) by userp3030.oracle.com (8.16.0.42/8.16.0.42) with SMTP id 18E7P9iW064974; Tue, 14 Sep 2021 07:34:50 GMT Received: from oss.oracle.com (oss-old-reserved.oracle.com [137.254.22.2]) by userp3030.oracle.com with ESMTP id 3b0hjup23g-1; Tue, 14 Sep 2021 07:34:50 +0000 Received: from localhost ([127.0.0.1] helo=lb-oss.oracle.com) by oss.oracle.com with esmtp (Exim 4.63) (envelope-from ) id 1mQ2xt-0002bx-8b; Tue, 14 Sep 2021 00:34:49 -0700 Received: from aserp3020.oracle.com ([141.146.126.70]) by oss.oracle.com with esmtp (Exim 4.63) (envelope-from ) id 1mQ2xp-0002bX-Ji for ocfs2-devel@oss.oracle.com; Tue, 14 Sep 2021 00:34:45 -0700 Received: from pps.filterd (aserp3020.oracle.com [127.0.0.1]) by aserp3020.oracle.com (8.16.0.42/8.16.0.42) with SMTP id 18E7QNFm076869 for ; Tue, 14 Sep 2021 07:34:45 GMT Received: from mx0a-00069f01.pphosted.com (mx0a-00069f01.pphosted.com [205.220.165.26]) by aserp3020.oracle.com with ESMTP id 3b0m95v8b4-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Tue, 14 Sep 2021 07:34:45 +0000 Received: from pps.filterd (m0246571.ppops.net [127.0.0.1]) by mx0b-00069f01.pphosted.com (8.16.1.2/8.16.0.43) with SMTP id 18E5FDEf020246 for ; Tue, 14 Sep 2021 07:34:44 GMT Received: from de-smtp-delivery-102.mimecast.com (de-smtp-delivery-102.mimecast.com [194.104.109.102]) by mx0b-00069f01.pphosted.com with ESMTP id 3b26k34sfd-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Tue, 14 Sep 2021 07:34:43 +0000 Received: from EUR02-HE1-obe.outbound.protection.outlook.com (mail-he1eur02lp2057.outbound.protection.outlook.com [104.47.5.57]) (Using TLS) by relay.mimecast.com with ESMTP id de-mta-37-tfsUrqL2NU6zumCdKTi0rA-1; Tue, 14 Sep 2021 09:34:39 +0200 X-MC-Unique: tfsUrqL2NU6zumCdKTi0rA-1 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=O+qp/w1URw2HKXvFlowueAUFcwkLTMDZOCYh7ldl8muVdQ1WVuiMgVncZ2MWet7Bfs5XjzvokuXAKYOXDi32twOkUlCIMTI0QViOb+V5NIEbo9wHFpz9u1Xpu9UMjTXidnNqOaMtwtRo33iYpkruZtR3Ad5Nz78J+iUKLd2IlinFMJ92QxaK4DcjMuuj7uB66PHyUj70tqgfgCqqkiFu1XFSlr0XdMhH8NnULh1ceTdisv+gkCybFs+sq4mNGKyI9j8QAAl7RCyRdhYIMuh/hamzL4buUWYNZMFRD05vsl8eyK7D8oV8BjcQN9N2wPt3qyJ6WObXrUgLcu7kCR0HYg== 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; bh=9BeA5wJ9xssYsJjk2JKGrCp0Zd98UJ1SZoERlM8SAcw=; b=SJUNqkFfPZQlE8fXH73zepDwLHaCH3Vm3iNkAsg0bFs/oalAseHN2engz9gaH84cqtE1/DnNAVaPFpWdxwtia1lnugBhxO/ee/fcgUKYVOrLSHftGy+L7BRKptfmX0MWY/QKrbSjlLBERC8Z8v65WtEI+0uenRucWsD+i7DcPlb7phDobNlYxl9KpfxSI3MuQ4EC3/GXBCsNbWOT+SR0chB3Ws2n6lbObiZr6fmAIob6xwE8nwabv5/2vRcryrgr/hgPmJKE0LiKitLFMPWjmqQ0nExcE132+i3p/J8uFdRe45UKWvdzlpo4VYtK9RenHYupBSl6yIs7xqC2/K9VGQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com; dkim=pass header.d=suse.com; arc=none Authentication-Results: oss.oracle.com; dkim=none (message not signed) header.d=none; oss.oracle.com; dmarc=none action=none header.from=suse.com; Received: from AM6PR04MB6488.eurprd04.prod.outlook.com (2603:10a6:20b:f8::21) by AM5PR0401MB2531.eurprd04.prod.outlook.com (2603:10a6:203:2e::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4500.18; Tue, 14 Sep 2021 07:34:37 +0000 Received: from AM6PR04MB6488.eurprd04.prod.outlook.com ([fe80::793c:6276:4f2a:4d71]) by AM6PR04MB6488.eurprd04.prod.outlook.com ([fe80::793c:6276:4f2a:4d71%4]) with mapi id 15.20.4500.018; Tue, 14 Sep 2021 07:34:37 +0000 To: Wengang Wang References: <20210826075941.28480-1-ghe@suse.com> <744d756c-7640-d312-37ef-126755324e8a@suse.com> <3FF09C2E-2855-457E-8533-50BBD8EECEF1@oracle.com> <2abbfd28-da40-3218-f226-0621cb683716@suse.com> <3672BDE0-3D94-4522-9059-A75C91784415@oracle.com> From: Gang He Message-ID: <60b3e52b-fdab-5255-3339-de3d95555dca@suse.com> Date: Tue, 14 Sep 2021 15:34:28 +0800 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:78.0) Gecko/20100101 Thunderbird/78.14.0 In-Reply-To: <3672BDE0-3D94-4522-9059-A75C91784415@oracle.com> Content-Language: en-US X-ClientProxiedBy: HKAPR04CA0003.apcprd04.prod.outlook.com (2603:1096:203:d0::13) To AM6PR04MB6488.eurprd04.prod.outlook.com (2603:10a6:20b:f8::21) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from [10.67.20.87] (60.251.47.115) by HKAPR04CA0003.apcprd04.prod.outlook.com (2603:1096:203:d0::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4523.14 via Frontend Transport; Tue, 14 Sep 2021 07:34:35 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 38d86016-0d00-4032-bfda-08d977521af0 X-MS-TrafficTypeDiagnostic: AM5PR0401MB2531: X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:10000; X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: CGccbj1lCUt+8B8Q0sqCMrqqZYRcPBfqTDNfKaTur7kXOniA3ivakR5gxT2a5OzNIP6xW/FOUxTu/LdWqzALeP5i1poNRsarD+fWE07E+ymd7VQFVqMs4fkUTcL6cxmaBIJW0aS1AIuxGX1+rqZ4eCQgJSKMZ5C705T3QUWeSvTTJUlr4AZrhX1HTb/yJEgh+krazOD++rBbRY38ESm/Hdcs6gbtj9tgQusbriv0+ACKKGSR8270y834OHjIRvVauajOo3/PKlkWvj7wNBmOB/zg8czIwE0WNJOKJMaaDOYmd4AwfroGPjZZl9JGmVnDRb0HANuvDMB38t6hgE3Ubbr4xM0+uNG4r/9glH1WcOLrORY/iChSv47cHDpnITfzFPcg3dHRI2u8n/XTCJzrjuPVtPeQsldvdPupzTtzODXrgotLnkzRsXvVB+aAPY3hTeYHN4KqW4wd6VTtsYCR/yKo/kRnvdkdNM6njQJyHCtQ4weO8urS5zvDUzpGHKHGUDqL5xZjRFmvXQ47zXWEl7aMMHp6k1iZ8VKUF/Ya5Nm2wKdvxSRKZfMJYdonhfCWuxPw9aufCKlQXzhCAnFKJFSt90LgMA8xTbgB9IBy8ArNAsN1vTwr1Ad/51CCJJ94Weyh2Ob/nZfeW174Md9j3TP0uW/g9GLoXy0ihlekbQfVUrTCZ/jV5KSf8vEkrpZoISlxscpggclI5WLXfBMh5NbtgmKBb7WhnHO63+ExzWt39Z7dT1VI2kwdTkBQPekriis+C8Qjkcl9A+0azh8sbHOfaAG8Q5Rajl9ADHaD2ek/kTSltGcXs9nkAAbcKH0HxgghsajnRcu23Zm0F9kwg5ZerLVciFRLppw2ECcNeNpi3OiyN6M0ERDNymPuqMCg X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:AM6PR04MB6488.eurprd04.prod.outlook.com; PTR:; CAT:NONE; SFS:(346002)(39860400002)(396003)(376002)(366004)(136003)(86362001)(55236004)(16576012)(6916009)(8936002)(31686004)(8676002)(5660300002)(316002)(53546011)(38100700002)(36756003)(186003)(6486002)(2906002)(66946007)(4326008)(31696002)(6666004)(66556008)(66476007)(30864003)(54906003)(956004)(966005)(26005)(2616005)(478600001)(83380400001)(10126625002)(45980500001)(43740500002); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?r3FwPU6gdYeAXZgbx/tN6S/bpjSr657BETdzLIOsshdSU1k9Cr9bLg/xpGJW?= =?us-ascii?Q?Prsdbyvrw0O8hDRZjYE5QEZK0aMb4muplUd5R+fn+aLUEEU7vx6wST5ku71E?= =?us-ascii?Q?xduQcdqg2JVyabKeJplAe5caqkwvsG4LO7bVTPOpUBpJV796AmdsslUFOjF0?= =?us-ascii?Q?zn/d8wZhl74aCZm5B5//mHWreD3d1J/wNHvd/QNiJ5vEULi/y0flMpcS6PVS?= =?us-ascii?Q?b+Z7JSRLy0JbiLTq1Trj0Q8PapY1WQK9zis4I7Gou8STmU8kT2B1nknadEwl?= =?us-ascii?Q?ZwUx5cJZsSK36IPku5YAHE8uzj6bqUpYKqMuD0ZAP5WnqLzBBHcLl4vLKr/E?= =?us-ascii?Q?XGV0ydLJLfV7uG4VBWewq3I45yeRBOCLiVnWj2z213Ux2Pt8vPTMY8pb5/rJ?= =?us-ascii?Q?6unveszIddizodCcScy8eeMF/VwlQwz4gT9ez3893GF+5Y5oJx3kNHpJYOJi?= =?us-ascii?Q?f2IwuDwYFWisoQYTK8QmVFFUnXypHMdwGfIoExK2Qfnfscih94VQNqq7+uto?= =?us-ascii?Q?lN5nU1WqEj+uGFu03/xHkHQmR2m/x6R+nXyyzfqdPJEi7p49QsWffWUy0EEq?= =?us-ascii?Q?Itrj8UVQORW8fGDHTJoVX1A2iXK+VDQnsbCxpPzsJp85/rsk6+LQzk7RFNbS?= =?us-ascii?Q?x2U36YYyS11rDrQ3nJDYPxbl6DLJjyEucRUEMleDXFYZAtp+dFek4mN6OQEG?= =?us-ascii?Q?+4Crfnas3CN6UFx08t96vZvgzLjVPoLjwcppYqLI+yq5Bq+yY5hXJjy+6hl2?= =?us-ascii?Q?KJCLbd3/v4hDMZjWxypOV+HysJ5SIEeD88y1nxfLbNuTS2F6vVhEoYG/MBQQ?= =?us-ascii?Q?a9OC5cFbXsM7Y4g0MGgB1w3sNZwBtFULZk9O8Q7r/pcQoAaalsKF4S515nAD?= =?us-ascii?Q?jdt47gSiOYD51I7YZrtJ9E/pAexnjKK8dpTh8z4uiYSZ1SuneYYVqHw1q4Ov?= =?us-ascii?Q?bs0iZ7PV8z4E1p87TlHVyP4q9MKhC0heDJUeVomgR+fdqe0Fk/Ou5AmUxWTS?= =?us-ascii?Q?18caW/DRA4LH0CaKoSdszp6iDJtv+hNolL+8hfHbMMxeb2zjUVF1PvxlBI33?= =?us-ascii?Q?QRmSvf1Exx/BWbEbsscdzelGCXrnp+SA7OS7CXEGzYw3clB0UoHajlQfWY6Y?= =?us-ascii?Q?umbJwiPqOKmpINFF0Ai3Cha9AaihSG9hchijSIkMXVUSdP29T33I/nXUKyQN?= =?us-ascii?Q?W1kiZcUG4Mu4+d8MipMsmHZ5E8sJ+sfBMPVaYUEiPW/SB7q5gqx0enEnQCH9?= =?us-ascii?Q?FC/Zj4JzXNgARE59E/5XGqcQ/8FMipvOtxgcbcTsztMq4Istqkz0kRhlKJMN?= =?us-ascii?Q?EHI/Wln9jchyXdVFZ3MC9uZ6?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 38d86016-0d00-4032-bfda-08d977521af0 X-MS-Exchange-CrossTenant-AuthSource: AM6PR04MB6488.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Sep 2021 07:34:37.3844 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: B3AjaKn5EjnpAciIRI9893uK3Rvx+yDYfPtEeOZH3cp9VorP19AvtZl4lMw4plRD X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM5PR0401MB2531 X-Source-IP: 194.104.109.102 X-ServerName: de-smtp-delivery-102.mimecast.com X-Proofpoint-SPF-Result: pass X-Proofpoint-SPF-Record: v=spf1 include:spf.suse.com include:de._netblocks.mimecast.com include:amazonses.com include:spf.protection.outlook.com include:_spf.qemailserver.com include:_spf.salesforce.com -all X-Proofpoint-Virus-Version: vendor=nai engine=6300 definitions=10106 signatures=668682 X-Proofpoint-Spam-Details: rule=tap_notspam policy=tap score=0 mlxscore=0 bulkscore=0 adultscore=0 lowpriorityscore=0 suspectscore=0 phishscore=0 mlxlogscore=999 impostorscore=0 priorityscore=194 clxscore=235 spamscore=0 malwarescore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2109030001 definitions=main-2109140044 X-Spam: Clean Cc: "ocfs2-devel@oss.oracle.com" , "linux-kernel@vger.kernel.org" Subject: Re: [Ocfs2-devel] [PATCH] ocfs2: avoid getting dlm lock of the target directory multiple times during reflink process X-BeenThere: ocfs2-devel@oss.oracle.com X-Mailman-Version: 2.1.9 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: ocfs2-devel-bounces@oss.oracle.com Errors-To: ocfs2-devel-bounces@oss.oracle.com X-Proofpoint-Virus-Version: vendor=nai engine=6300 definitions=10106 signatures=668682 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxscore=0 adultscore=0 phishscore=0 mlxlogscore=999 suspectscore=0 spamscore=0 bulkscore=0 malwarescore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2109030001 definitions=main-2109140043 X-Proofpoint-GUID: hEswWZPh-jFnb3Fg-hEG8elfsRiSvkC_ X-Proofpoint-ORIG-GUID: hEswWZPh-jFnb3Fg-hEG8elfsRiSvkC_ SGkgV2VuZ2FuZywKClNvcnJ5IGZvciBkZWxheWVkIHJlcGx5LgoKT24gMjAyMS85LzkgMDowMCwg V2VuZ2FuZyBXYW5nIHdyb3RlOgo+IAo+IAo+PiBPbiBTZXAgNywgMjAyMSwgYXQgMTE6MDYgUE0s IEdhbmcgSGUgPGdoZUBzdXNlLmNvbT4gd3JvdGU6Cj4+Cj4+Cj4+Cj4+IE9uIDIwMjEvOS83IDIz OjU3LCBXZW5nYW5nIFdhbmcgd3JvdGU6Cj4+PiBIaSBHYW5nLAo+Pj4gU3VyZSwgSSB3aWxsIGxv b2sgaW50byB0aGUgcHJvYmxlbSB5b3UgYXJlIHRyeWluZyB0byBhZGRyZXNzLiBBbnkgYnVnIGZp eCBhbmQgcGVyZm9ybWFuY2UgaW1wcm92ZW1lbnQgaXMgd2VsY29tZWQhCj4+PiBXZWxsLCBjYW4g eW91IHBsZWFzZSBwcm92aWRlIHRoZSBhbmFseXNpcyBvbiB0aGUgdGNwZHVtcHMgYmV0d2VlbiB0 aGUgKHR3bykgbm9kZXMgdGhhdCBjb3ZlcnMgdGhlIHJlZmxpbmsgb3BlcmF0aW9uIHdpdGgvd2l0 aG91dCB5b3VyIHBhdGNoIHRvIHNob3cgaG93IHlvdSBzYXZlZCBkbG0gbG9ja2luZyBwaW5nLXBv bmdzPwo+PiBUaGUgY29kZSBjaGFuZ2Ugd2lsbCBob2xkIHRoZSByZWZsaW5rIGRlc3RpbmF0aW9u IGRpciBpbm9kZSBkbG0gbG9jaywgcmVsZWFzZSBpdCB1bnRpbCB0aGUgd2hvbGUgcmVmbGluayBw cm9jZXNzIGlzIGNvbXBsZXRlZC4KPj4gVGhlIGN1cnJlbnQgY29kZSB3aWxsIGhvbGQvcmVsZWFz ZSB0aGlzIGRsbSBsb2NrIHRocmVlIHRpbWVzIGR1cmluZyB0aGUgcmVmbGluayBwcm9jZXNzLiBJ ZiB0aGVyZSBhcmUgc29tZSBjb25jdXJyZW50bHkgcmVmbGluayBvcGVyYXRpb24gdG8gdGhhdCBk aXJlY3RvcnkgZnJvbSBvdGhlciBub2RlcywgdGhlIHBpbmctcG9uZyBlZmZlY3QgaXMgdGhhdCBk aXJlY3RvcnkgaW5vZGUgcmVsYXRlZCBkYXRhIHdpbGwgYmUgc3luY2hyb25pemVkKG11bHRpcGxl IHRpbWVzKSB0byB0aGUgZGlzayB3aGVuIGlub2RlIGRsbSBsb2NrIGlzIGRvd25jb252ZXJ0ZWQg ZHVyaW5nIG9uZSByZWZsaW5rIG9wZXJhdGlvbi4KPj4KPiAKPiBJIHRoaW5rIHRoZSBhYm92ZSBj YW4gYmUgYSBnb29kIHN1bW1hcnksIGJ1dCBub3QgZGV0YWlscyBvciB0aGUgbG9ja2luZyBwaW5n LXBvbmcgcHJvY2VkdXJlLiAgSSBuZWVkIHRoZSBkZXRhaWxzIHRvIHVuZGVyc3RhbmQgdGhlIHNp dHVhdGlvbi4gRm9yIGRldGFpbHMsIFdoaWNoIGxvY2tzIGFyZSBpbnZvbHZlZCwgd2hhdCBhcmUg dGhlIGxvY2tpbmcgdHlwZXMsIHdoaWNoIG5vZGVzIGFyZSBpbnZvbHZlZC4KClRoZSBwcm9ibGVt IGlzIGNsb25lIGZpbGVzIHRvIHRoZSBzYW1lIGRpcmVjdG9yeSBzaW11bHRhbmVvdXNseSwgZm9y IApzb21lIHVzZXJzLCB0aGV5IGxpa2UgdG8gYWRkIHRoaXMgdGFzayB0byBlYWNoIG5vZGUgYXMg YSBjcm9udGFiIGpvYi4KVGhlIG1haW4gaW1wYWN0IGZhY3RvciBpcyB0aGUgZGVzdGluYXRpb24g ZGlyIGlub2RlIGRsbSBsb2NrIGluIHRoaXMgCmNhc2UsIGVhY2ggcmVmbGluayBvcGVyYXRpb24g d2lsbCBhY3F1aXJlL3JlbGVhc2UgdGhpcyBkbG0gbG9jayB0aHJlZSAKdGltZS4gRm9yIHBhcmFs bGVsIGVudmlyb25tZW50LCBlYWNoIG5vZGUgd2lsbCBjb250ZW5kIHRoaXMgZGxtIGxvY2ssIAp0 aGF0IG1lYW5zIHRoZXJlIHdpbGwgYmUgc29tZSBsb2NrIGRvd25jb252ZXJ0IGNvc3RzKHN5bmMg dGhlIGlub2RlIAptZXRhLWRhdGEgdG8gdGhlIGRpc2sgYmVmb3JlIGRvd25jb252ZXJ0KS4KRm9y IHRoZSBjb2RlIGxvZ2ljLCBJIHRoaW5rIHdlIGNhbiBpZGVudGlmeSB0aGlzIHByb2JsZW0gY2xl YXJsee+8jEkKZG8gbm90IHRoaW5rIHdlIG5lZWQgcGVyZm9ybWFuY2UgcmVsYXRlZCB0b29sIHRv IGhlbHAgdXMuCkhlcmUsIEkgY2FuIHNoYXJlIG15IHRlc3QgcmVzdWx0cyBmb3IgY2xvbmUgZmls ZXMgdG8gdGhlIHNhbWUgZGlyZWN0b3J5IApzaW11bHRhbmVvdXNseS4KMSkgdGVzdCBzY3JpcHQg b24gZWFjaCBub2RlOiBodHRwczovL3Bhc3RlYmluLmNvbS95OEVjQ2pXSwoyKSBQZXJmb3JtYW5j ZSBsb2cgb2YgY3VycmVudCBwYXJhbGxlbCByZWZsaW5rOgogICAgaHR0cHM6Ly9wYXN0ZWJpbi5j b20vcUdTZWR5OEUKMykgUGVyZm9ybWFuY2UgbG9nIG9mIHBhcmFsbGVsIHJlZmxpbmsgYWZ0ZXIg cGF0Y2hpbmc6CiAgICBodHRwczovL3Bhc3RlYmluLmNvbS94a3l4dE5VNAoKRm9yIHRoZSBwZXJm b3JtYW5jZSBsb2dzLCB0aGUgdGVzdCB0aW1lIGhhcyBiZWVuIGN1dCBpbiBoYWxmIGZvciBldmVy eSAKaHVuZHJlZCByZWZsaW5rIG9wZXJhdGlvbnMuCgpJbiBzdW0sIEkgdGhpbmsgdGhpcyBjb2Rl IGNoYW5nZSBsb2dpYyBpcyBzaW1wbGUgYW5kIGNsZWFyLCBjYW4gaW1wcm92ZQp0aGUgcGVyZm9y bWFuY2UgaW4gdGhlIGFib3ZlIGNhc2UuIE9mIGNvdXJzZSwgSSBhbHNvIHdhbnQgbW9yZSBwZW9w bGUgdG8gCnJldmlldyBpZiB0aGVyZSBpcyBhbnkgcmlzayBhZnRlciB0aGlzIHBhdGNoLCBlLmcu IGFkZCBkZWFkLWxvY2sgcmlzaywgZXRjLgoKCgpUaGFua3MKR2FuZwoKCj4gCj4gU2F5IGxpa2Ug dGhpcyAoanVzdCBmb3IgYW4gZXhhbXBsZSwgbm90IHJlbGF0ZWQgdG8gdGhlIHByb2JsZW0gaGVy ZSk6Cj4gCj4gTm9kZSAxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBO b2RlIDIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOb2RlIDMK PiDigJTigJTigJTigJTigJTigJTigJTigJTigJTigJTigJQgICAgICDigJTigJTigJTigJTigJTi gJTigJTigJTigJTigJTigJQgICAgICAgICAgICDigJTigJTigJTigJTigJTigJTigJTigJTigJTi gJTigJTigJTigJTigJTigJTigJTigJTigJTigJTigJQKPiBkaXIxIG1ldGEgbG9jayBFWAo+IG9y cGhhbmRpcjEgbG9jayBFWAo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBkaXIxIG1ldGEgbG9jayBFWAo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBvcnBoYWRpcjIgbG9jayBFWAo+IAo+IAkJCQkJCQkJCQkJCSAgZGly MSBtZXRhIGxvY2sgRVgKPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBvcnBoYWRpcjMgbG9jayBFWAo+IGRpcjEgbWV0YSBibG9jayBFWCAoYWdhaW4pCj4g4oCm4oCm 4oCm4oCm4oCm4oCmLi4KPiAKPiAKPj4gQWNjb3JkaW5nIHRvIG15IHRlc3QsIHJ1bm5pbmcgdGhl IHJlZmxpbmsgY29tbWFuZCB0byBjbG9uZSBhIGZpbGUgdG8gdGhlIHNhbWUgZGlyZWN0b3J5IHJl cGVhdGVkbHkgZnJvbSB0aHJlZSBub2RlcywgdGhlIGNvZGUgY2hhbmdlIGNhbiBzaG9ydGVuIHRo ZSBwcmV2aW91cyBoYWxmIG9mIHRoZSB0aW1lLgo+Pgo+IAo+IEkgYW0gbm90IHN1cmUgaWYgYWJv dmUgaXMgYSB0eXBpY2FsIHVzZSBjYXNlLgo+IFdoYXQgZWxzZSBjYXNlcyBkaWQgeW91IHRlc3Q/ IERpZCBpdCBoZWxwIGluIGNhc2Ugb25seSBvbmUgbm9kZSBkbyB0aGUgcmVmbGluaz8KPiBXaGF0 IGlmIHRoZXJlIGFyZSBjb25jdXJyZW50IGZpbGUgY3JlYXRpbmcvcmVtb3Zpbmcgb3BlcmF0aW9u cyBnb2luZyBvbiB1bmRlciB0aGUgdGFyZ2V0IGRpcmVjdG9yeSB3aGVuIHRoZSByZWZsaW5rIGlz IGdvaW5nIG9uPwo+IAo+ICAgSSB0aGluayB3aGVuIHlvdSBhcmUgdHJ5aW5nIHRvIG1ha2UgYSBw ZXJmb3JtYW5jZSBpbXByb3ZlbWVudCwgIHlvdSBzaG91bGQgcHJvdmlkZSB0aGUgcGVyZm9ybWFu Y2UgZGF0YSBmb3IgZGlmZmVyZW50IHRlc3QgY2FzZXMsIGxpa2UgdGhpczoKPiAKPiDigJTigJTi gJTigJTigJTigJTigJTigJTigJTigJTigJTigJTigJTigJTigJTigJTigJTigJTigJTigJTigJTi gJTigJTigJTigJTigJTigJTigJTigJTigJTigJTigJQKPiBUZXN0IGNhc2UgZGVzYyAgICAgICAg IHwgb3JpZyBwZXJmb3JtYW5jZSAgfCBwZXJmb3JtYW5jZSBhZnRlciBwYXRjaGVkICAgfAo+IOKA lOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKA lOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlAo+IHRlc3QgY2FzZTEgKGRldGFp bHMpICB8IHBlcmYgZGF0YSAgICAgICAgICAgICAgIHwgcGVyZiBkYXRhICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB8Cj4g4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU 4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU LQo+IHRlc3QgY2FzZTIgKGRldGFpbHMpICAgfCBwZXJmIGRhdGEgICAgICAgICAgICAgICB8IHBl cmYgZGF0YSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAo+IOKAlOKAlOKAlOKAlOKA lOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKA lOKAlOKAlOKAlOKAlOKAlOKAlOKAlAo+IOKApuKApgo+IAo+IHRoYW5rcywKPiB3ZW5nYW5nCj4g Cj4+IFRoYW5rcwo+PiBHYW5nCj4+Cj4+PiBBbmQgd2hhdCBjYXNlcyBkaWQgeW91IHRlc3QgdG8g Z2V0IGJldHRlciBwZXJmb3JtYW5jZT8KPj4+IHRoYW5rcywKPj4+IHdlbmdhbmcKPj4+PiBPbiBB dWcgMzAsIDIwMjEsIGF0IDExOjI1IFBNLCBHYW5nIEhlIDxnaGVAc3VzZS5jb20+IHdyb3RlOgo+ Pj4+Cj4+Pj4gSGVsbG8gSm9zZXBoIGFuZCBXZW5nYW5nLAo+Pj4+Cj4+Pj4gV2hlbiB5b3UgaGF2 ZSB0aW1lLCBwbGVhc2UgaGVscCByZXZpZXcgdGhpcyBwYXRjaC4KPj4+PiBBYm91dCB0aGUgZGVh ZGxvY2sgcHJvYmxlbSB3aGljaCB3YXMgY2F1c2VkIGJ5IG9jZnMyX2Rvd25jb252ZXJ0X2xvY2sK Pj4+PiBmYWlsdXJlLCB3ZSBoYXZlIHRoZSBmaXggcGF0Y2gsIGl0IGlzIHZlcnkga2V5Lgo+Pj4+ IEJ1dCBJIGZlZWwgdGhpcyBwYXRjaCBpcyBzdGlsbCB1c2VmdWwgYXMgYSBvcHRpbWl6YXRpb24g cGF0Y2gsIHRoZSB1c2VyCj4+Pj4gY2FzZSBpcyB0byByZWZsaW5rIHRoZSBmaWxlcyB0byB0aGUg c2FtZSBkaXJlY3RvcnkgY29uY3VycmVudGx5LCBvdXIKPj4+PiB1c2VycyB1c3VhbGx5IGJhY2t1 cCB0aGUgZmlsZXModmlhIHJlZmxpbmspIGZyb20gdGhlIGNsdXN0ZXIgbm9kZXMKPj4+PiBjb25j dXJyZW50bHkodmlhIGNyb250YWIpIGV2ZXJ5IGRheS9ob3VyLgo+Pj4+IFRoZSBjdXJyZW50IGRl c2lnbiwgZHVyaW5nIHRoZSByZWZsaW5rIHByb2Nlc3MsIHRoZSBub2RlIHdpbGwKPj4+PiBhY3F1 aXJlL3JlbGVhc2UgZGxtIGxvY2sgb2YgdGhlIHRhcmdldCBkaXJlY3RvcnkgbXVsdGlwbGUgdGlt ZXMsCj4+Pj4gdGhpcyBpcyB2ZXJ5IGluZWZmaWNpZW50IGluIGNvbmN1cnJlbnRseSByZWZsaW5r Lgo+Pj4+Cj4+Pj4KPj4+PiBUaGFua3MKPj4+PiBHYW5nCj4+Pj4KPj4+PiBPbiAyMDIxLzgvMjYg MTU6NTksIEdhbmcgSGUgd3JvdGU6Cj4+Pj4+IER1cmluZyB0aGUgcmVmbGluayBwcm9jZXNzLCB3 ZSBzaG91bGQgYWNxdWlyZSB0aGUgdGFyZ2V0IGRpcmVjdG9yeQo+Pj4+PiBpbm9kZSBkbG0gbG9j ayBhdCB0aGUgYmVnaW5uaW5nLCBhbmQgaG9sZCB0aGlzIGRsbSBsb2NrIHVudGlsIGVuZAo+Pj4+ PiBvZiB0aGUgZnVuY3Rpb24uCj4+Pj4+IFdpdGggdGhpcyBwYXRjaCwgd2UgYXZvaWQgZGxtIGxv Y2sgcGluZy1wb25nIGVmZmVjdCB3aGVuIGNsb25lCj4+Pj4+IGZpbGVzIHRvIHRoZSBzYW1lIGRp cmVjdG9yeSBzaW11bHRhbmVvdXNseSBmcm9tIG11bHRpcGxlIG5vZGVzLgo+Pj4+PiBUaGVyZSBp cyBhIHR5cGljYWwgdXNlciBzY2VuYXJpbywgdXNlcnMgcmVndWxhcmx5IGJhY2sgdXAgZmlsZXMK Pj4+Pj4gdG8gYSBzcGVjaWZpZWQgZGlyZWN0b3J5IHRocm91Z2ggdGhlIHJlZmxpbmsgZmVhdHVy ZSBmcm9tIHRoZQo+Pj4+PiBtdWx0aXBsZSBub2Rlcy4KPj4+Pj4KPj4+Pj4gU2lnbmVkLW9mZi1i eTogR2FuZyBIZSA8Z2hlQHN1c2UuY29tPgo+Pj4+PiAtLS0KPj4+Pj4gICBmcy9vY2ZzMi9uYW1l aS5jICAgICAgICB8IDMyICsrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0tCj4+Pj4+ICAg ZnMvb2NmczIvbmFtZWkuaCAgICAgICAgfCAgMiArKwo+Pj4+PiAgIGZzL29jZnMyL3JlZmNvdW50 dHJlZS5jIHwgMTUgKysrKysrKysrKystLS0tCj4+Pj4+ICAgZnMvb2NmczIveGF0dHIuYyAgICAg ICAgfCAxMiArLS0tLS0tLS0tLS0KPj4+Pj4gICBmcy9vY2ZzMi94YXR0ci5oICAgICAgICB8ICAx ICsKPj4+Pj4gICA1IGZpbGVzIGNoYW5nZWQsIDI4IGluc2VydGlvbnMoKyksIDM0IGRlbGV0aW9u cygtKQo+Pj4+Pgo+Pj4+PiBkaWZmIC0tZ2l0IGEvZnMvb2NmczIvbmFtZWkuYyBiL2ZzL29jZnMy L25hbWVpLmMKPj4+Pj4gaW5kZXggMmM0NmZmNmJhNGVhLi5mOGJiYjIyY2M2MGIgMTAwNjQ0Cj4+ Pj4+IC0tLSBhL2ZzL29jZnMyL25hbWVpLmMKPj4+Pj4gKysrIGIvZnMvb2NmczIvbmFtZWkuYwo+ Pj4+PiBAQCAtMjQ4OSw2ICsyNDg5LDcgQEAgc3RhdGljIGludCBvY2ZzMl9wcmVwX25ld19vcnBo YW5lZF9maWxlKHN0cnVjdCBpbm9kZSAqZGlyLAo+Pj4+PiAgIH0KPj4+Pj4KPj4+Pj4gICBpbnQg b2NmczJfY3JlYXRlX2lub2RlX2luX29ycGhhbihzdHJ1Y3QgaW5vZGUgKmRpciwKPj4+Pj4gKwkJ CQkgc3RydWN0IGJ1ZmZlcl9oZWFkICoqZGlyX2JoLAo+Pj4+PiAgIAkJCQkgaW50IG1vZGUsCj4+ Pj4+ICAgCQkJCSBzdHJ1Y3QgaW5vZGUgKipuZXdfaW5vZGUpCj4+Pj4+ICAgewo+Pj4+PiBAQCAt MjU5NywxMyArMjU5OCwxNiBAQCBpbnQgb2NmczJfY3JlYXRlX2lub2RlX2luX29ycGhhbihzdHJ1 Y3QgaW5vZGUgKmRpciwKPj4+Pj4KPj4+Pj4gICAJYnJlbHNlKG5ld19kaV9iaCk7Cj4+Pj4+Cj4+ Pj4+IC0JaWYgKCFzdGF0dXMpCj4+Pj4+IC0JCSpuZXdfaW5vZGUgPSBpbm9kZTsKPj4+Pj4gLQo+ Pj4+PiAgIAlvY2ZzMl9mcmVlX2Rpcl9sb29rdXBfcmVzdWx0KCZvcnBoYW5faW5zZXJ0KTsKPj4+ Pj4KPj4+Pj4gLQlvY2ZzMl9pbm9kZV91bmxvY2soZGlyLCAxKTsKPj4+Pj4gLQlicmVsc2UocGFy ZW50X2RpX2JoKTsKPj4+Pj4gKwlpZiAoIXN0YXR1cykgewo+Pj4+PiArCQkqbmV3X2lub2RlID0g aW5vZGU7Cj4+Pj4+ICsJCSpkaXJfYmggPSBwYXJlbnRfZGlfYmg7Cj4+Pj4+ICsJfSBlbHNlIHsK Pj4+Pj4gKwkJb2NmczJfaW5vZGVfdW5sb2NrKGRpciwgMSk7Cj4+Pj4+ICsJCWJyZWxzZShwYXJl bnRfZGlfYmgpOwo+Pj4+PiArCX0KPj4+Pj4gKwo+Pj4+PiAgIAlyZXR1cm4gc3RhdHVzOwo+Pj4+ PiAgIH0KPj4+Pj4KPj4+Pj4gQEAgLTI3NjAsMTEgKzI3NjQsMTEgQEAgaW50IG9jZnMyX2RlbF9p bm9kZV9mcm9tX29ycGhhbihzdHJ1Y3Qgb2NmczJfc3VwZXIgKm9zYiwKPj4+Pj4gICB9Cj4+Pj4+ Cj4+Pj4+ICAgaW50IG9jZnMyX212X29ycGhhbmVkX2lub2RlX3RvX25ldyhzdHJ1Y3QgaW5vZGUg KmRpciwKPj4+Pj4gKwkJCQkgICBzdHJ1Y3QgYnVmZmVyX2hlYWQgKmRpcl9iaCwKPj4+Pj4gICAJ CQkJICAgc3RydWN0IGlub2RlICppbm9kZSwKPj4+Pj4gICAJCQkJICAgc3RydWN0IGRlbnRyeSAq ZGVudHJ5KQo+Pj4+PiAgIHsKPj4+Pj4gICAJaW50IHN0YXR1cyA9IDA7Cj4+Pj4+IC0Jc3RydWN0 IGJ1ZmZlcl9oZWFkICpwYXJlbnRfZGlfYmggPSBOVUxMOwo+Pj4+PiAgIAloYW5kbGVfdCAqaGFu ZGxlID0gTlVMTDsKPj4+Pj4gICAJc3RydWN0IG9jZnMyX3N1cGVyICpvc2IgPSBPQ0ZTMl9TQihk aXItPmlfc2IpOwo+Pj4+PiAgIAlzdHJ1Y3Qgb2NmczJfZGlub2RlICpkaXJfZGksICpkaTsKPj4+ Pj4gQEAgLTI3NzgsMTQgKzI3ODIsNyBAQCBpbnQgb2NmczJfbXZfb3JwaGFuZWRfaW5vZGVfdG9f bmV3KHN0cnVjdCBpbm9kZSAqZGlyLAo+Pj4+PiAgIAkJCQkodW5zaWduZWQgbG9uZyBsb25nKU9D RlMyX0koZGlyKS0+aXBfYmxrbm8sCj4+Pj4+ICAgCQkJCSh1bnNpZ25lZCBsb25nIGxvbmcpT0NG UzJfSShpbm9kZSktPmlwX2Jsa25vKTsKPj4+Pj4KPj4+Pj4gLQlzdGF0dXMgPSBvY2ZzMl9pbm9k ZV9sb2NrKGRpciwgJnBhcmVudF9kaV9iaCwgMSk7Cj4+Pj4+IC0JaWYgKHN0YXR1cyA8IDApIHsK Pj4+Pj4gLQkJaWYgKHN0YXR1cyAhPSAtRU5PRU5UKQo+Pj4+PiAtCQkJbWxvZ19lcnJubyhzdGF0 dXMpOwo+Pj4+PiAtCQlyZXR1cm4gc3RhdHVzOwo+Pj4+PiAtCX0KPj4+Pj4gLQo+Pj4+PiAtCWRp cl9kaSA9IChzdHJ1Y3Qgb2NmczJfZGlub2RlICopIHBhcmVudF9kaV9iaC0+Yl9kYXRhOwo+Pj4+ PiArCWRpcl9kaSA9IChzdHJ1Y3Qgb2NmczJfZGlub2RlICopIGRpcl9iaC0+Yl9kYXRhOwo+Pj4+ PiAgIAlpZiAoIWRpcl9kaS0+aV9saW5rc19jb3VudCkgewo+Pj4+PiAgIAkJLyogY2FuJ3QgbWFr ZSBhIGZpbGUgaW4gYSBkZWxldGVkIGRpcmVjdG9yeS4gKi8KPj4+Pj4gICAJCXN0YXR1cyA9IC1F Tk9FTlQ7Cj4+Pj4+IEBAIC0yNzk4LDcgKzI3OTUsNyBAQCBpbnQgb2NmczJfbXZfb3JwaGFuZWRf aW5vZGVfdG9fbmV3KHN0cnVjdCBpbm9kZSAqZGlyLAo+Pj4+PiAgIAkJZ290byBsZWF2ZTsKPj4+ Pj4KPj4+Pj4gICAJLyogZ2V0IGEgc3BvdCBpbnNpZGUgdGhlIGRpci4gKi8KPj4+Pj4gLQlzdGF0 dXMgPSBvY2ZzMl9wcmVwYXJlX2Rpcl9mb3JfaW5zZXJ0KG9zYiwgZGlyLCBwYXJlbnRfZGlfYmgs Cj4+Pj4+ICsJc3RhdHVzID0gb2NmczJfcHJlcGFyZV9kaXJfZm9yX2luc2VydChvc2IsIGRpciwg ZGlyX2JoLAo+Pj4+PiAgIAkJCQkJICAgICAgZGVudHJ5LT5kX25hbWUubmFtZSwKPj4+Pj4gICAJ CQkJCSAgICAgIGRlbnRyeS0+ZF9uYW1lLmxlbiwgJmxvb2t1cCk7Cj4+Pj4+ICAgCWlmIChzdGF0 dXMgPCAwKSB7Cj4+Pj4+IEBAIC0yODYyLDcgKzI4NTksNyBAQCBpbnQgb2NmczJfbXZfb3JwaGFu ZWRfaW5vZGVfdG9fbmV3KHN0cnVjdCBpbm9kZSAqZGlyLAo+Pj4+PiAgIAlvY2ZzMl9qb3VybmFs X2RpcnR5KGhhbmRsZSwgZGlfYmgpOwo+Pj4+Pgo+Pj4+PiAgIAlzdGF0dXMgPSBvY2ZzMl9hZGRf ZW50cnkoaGFuZGxlLCBkZW50cnksIGlub2RlLAo+Pj4+PiAtCQkJCSBPQ0ZTMl9JKGlub2RlKS0+ aXBfYmxrbm8sIHBhcmVudF9kaV9iaCwKPj4+Pj4gKwkJCQkgT0NGUzJfSShpbm9kZSktPmlwX2Js a25vLCBkaXJfYmgsCj4+Pj4+ICAgCQkJCSAmbG9va3VwKTsKPj4+Pj4gICAJaWYgKHN0YXR1cyA8 IDApIHsKPj4+Pj4gICAJCW1sb2dfZXJybm8oc3RhdHVzKTsKPj4+Pj4gQEAgLTI4ODYsMTAgKzI4 ODMsNyBAQCBpbnQgb2NmczJfbXZfb3JwaGFuZWRfaW5vZGVfdG9fbmV3KHN0cnVjdCBpbm9kZSAq ZGlyLAo+Pj4+PiAgIAlpcHV0KG9ycGhhbl9kaXJfaW5vZGUpOwo+Pj4+PiAgIGxlYXZlOgo+Pj4+ Pgo+Pj4+PiAtCW9jZnMyX2lub2RlX3VubG9jayhkaXIsIDEpOwo+Pj4+PiAtCj4+Pj4+ICAgCWJy ZWxzZShkaV9iaCk7Cj4+Pj4+IC0JYnJlbHNlKHBhcmVudF9kaV9iaCk7Cj4+Pj4+ICAgCWJyZWxz ZShvcnBoYW5fZGlyX2JoKTsKPj4+Pj4KPj4+Pj4gICAJb2NmczJfZnJlZV9kaXJfbG9va3VwX3Jl c3VsdCgmbG9va3VwKTsKPj4+Pj4gZGlmZiAtLWdpdCBhL2ZzL29jZnMyL25hbWVpLmggYi9mcy9v Y2ZzMi9uYW1laS5oCj4+Pj4+IGluZGV4IDljYzg5MWViODc0ZS4uMDNhMmM1MjZlMmMxIDEwMDY0 NAo+Pj4+PiAtLS0gYS9mcy9vY2ZzMi9uYW1laS5oCj4+Pj4+ICsrKyBiL2ZzL29jZnMyL25hbWVp LmgKPj4+Pj4gQEAgLTI0LDYgKzI0LDcgQEAgaW50IG9jZnMyX29ycGhhbl9kZWwoc3RydWN0IG9j ZnMyX3N1cGVyICpvc2IsCj4+Pj4+ICAgCQkgICAgIHN0cnVjdCBidWZmZXJfaGVhZCAqb3JwaGFu X2Rpcl9iaCwKPj4+Pj4gICAJCSAgICAgYm9vbCBkaW8pOwo+Pj4+PiAgIGludCBvY2ZzMl9jcmVh dGVfaW5vZGVfaW5fb3JwaGFuKHN0cnVjdCBpbm9kZSAqZGlyLAo+Pj4+PiArCQkJCSBzdHJ1Y3Qg YnVmZmVyX2hlYWQgKipkaXJfYmgsCj4+Pj4+ICAgCQkJCSBpbnQgbW9kZSwKPj4+Pj4gICAJCQkJ IHN0cnVjdCBpbm9kZSAqKm5ld19pbm9kZSk7Cj4+Pj4+ICAgaW50IG9jZnMyX2FkZF9pbm9kZV90 b19vcnBoYW4oc3RydWN0IG9jZnMyX3N1cGVyICpvc2IsCj4+Pj4+IEBAIC0zMiw2ICszMyw3IEBA IGludCBvY2ZzMl9kZWxfaW5vZGVfZnJvbV9vcnBoYW4oc3RydWN0IG9jZnMyX3N1cGVyICpvc2Is Cj4+Pj4+ICAgCQlzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgYnVmZmVyX2hlYWQgKmRpX2Jo LAo+Pj4+PiAgIAkJaW50IHVwZGF0ZV9pc2l6ZSwgbG9mZl90IGVuZCk7Cj4+Pj4+ICAgaW50IG9j ZnMyX212X29ycGhhbmVkX2lub2RlX3RvX25ldyhzdHJ1Y3QgaW5vZGUgKmRpciwKPj4+Pj4gKwkJ CQkgICBzdHJ1Y3QgYnVmZmVyX2hlYWQgKmRpcl9iaCwKPj4+Pj4gICAJCQkJICAgc3RydWN0IGlu b2RlICpuZXdfaW5vZGUsCj4+Pj4+ICAgCQkJCSAgIHN0cnVjdCBkZW50cnkgKm5ld19kZW50cnkp Owo+Pj4+Pgo+Pj4+PiBkaWZmIC0tZ2l0IGEvZnMvb2NmczIvcmVmY291bnR0cmVlLmMgYi9mcy9v Y2ZzMi9yZWZjb3VudHRyZWUuYwo+Pj4+PiBpbmRleCA3ZjYzNTVjYmI1ODcuLmE5YTBjN2MzN2U4 ZSAxMDA2NDQKPj4+Pj4gLS0tIGEvZnMvb2NmczIvcmVmY291bnR0cmVlLmMKPj4+Pj4gKysrIGIv ZnMvb2NmczIvcmVmY291bnR0cmVlLmMKPj4+Pj4gQEAgLTQyNTAsNyArNDI1MCw3IEBAIHN0YXRp YyBpbnQgb2NmczJfcmVmbGluayhzdHJ1Y3QgZGVudHJ5ICpvbGRfZGVudHJ5LCBzdHJ1Y3QgaW5v ZGUgKmRpciwKPj4+Pj4gICB7Cj4+Pj4+ICAgCWludCBlcnJvciwgaGFkX2xvY2s7Cj4+Pj4+ICAg CXN0cnVjdCBpbm9kZSAqaW5vZGUgPSBkX2lub2RlKG9sZF9kZW50cnkpOwo+Pj4+PiAtCXN0cnVj dCBidWZmZXJfaGVhZCAqb2xkX2JoID0gTlVMTDsKPj4+Pj4gKwlzdHJ1Y3QgYnVmZmVyX2hlYWQg Km9sZF9iaCA9IE5VTEwsICpkaXJfYmggPSBOVUxMOwo+Pj4+PiAgIAlzdHJ1Y3QgaW5vZGUgKm5l d19vcnBoYW5faW5vZGUgPSBOVUxMOwo+Pj4+PiAgIAlzdHJ1Y3Qgb2NmczJfbG9ja19ob2xkZXIg b2g7Cj4+Pj4+Cj4+Pj4+IEBAIC00MjU4LDcgKzQyNTgsNyBAQCBzdGF0aWMgaW50IG9jZnMyX3Jl Zmxpbmsoc3RydWN0IGRlbnRyeSAqb2xkX2RlbnRyeSwgc3RydWN0IGlub2RlICpkaXIsCj4+Pj4+ ICAgCQlyZXR1cm4gLUVPUE5PVFNVUFA7Cj4+Pj4+Cj4+Pj4+Cj4+Pj4+IC0JZXJyb3IgPSBvY2Zz Ml9jcmVhdGVfaW5vZGVfaW5fb3JwaGFuKGRpciwgaW5vZGUtPmlfbW9kZSwKPj4+Pj4gKwllcnJv ciA9IG9jZnMyX2NyZWF0ZV9pbm9kZV9pbl9vcnBoYW4oZGlyLCAmZGlyX2JoLCBpbm9kZS0+aV9t b2RlLAo+Pj4+PiAgIAkJCQkJICAgICAmbmV3X29ycGhhbl9pbm9kZSk7Cj4+Pj4+ICAgCWlmIChl cnJvcikgewo+Pj4+PiAgIAkJbWxvZ19lcnJubyhlcnJvcik7Cj4+Pj4+IEBAIC00MzA0LDEzICs0 MzA0LDE1IEBAIHN0YXRpYyBpbnQgb2NmczJfcmVmbGluayhzdHJ1Y3QgZGVudHJ5ICpvbGRfZGVu dHJ5LCBzdHJ1Y3QgaW5vZGUgKmRpciwKPj4+Pj4KPj4+Pj4gICAJLyogSWYgdGhlIHNlY3VyaXR5 IGlzbid0IHByZXNlcnZlZCwgd2UgbmVlZCB0byByZS1pbml0aWFsaXplIHRoZW0uICovCj4+Pj4+ ICAgCWlmICghcHJlc2VydmUpIHsKPj4+Pj4gLQkJZXJyb3IgPSBvY2ZzMl9pbml0X3NlY3VyaXR5 X2FuZF9hY2woZGlyLCBuZXdfb3JwaGFuX2lub2RlLAo+Pj4+PiArCQllcnJvciA9IG9jZnMyX2lu aXRfc2VjdXJpdHlfYW5kX2FjbChkaXIsIGRpcl9iaCwKPj4+Pj4gKwkJCQkJCSAgICBuZXdfb3Jw aGFuX2lub2RlLAo+Pj4+PiAgIAkJCQkJCSAgICAmbmV3X2RlbnRyeS0+ZF9uYW1lKTsKPj4+Pj4g ICAJCWlmIChlcnJvcikKPj4+Pj4gICAJCQltbG9nX2Vycm5vKGVycm9yKTsKPj4+Pj4gICAJfQo+ Pj4+PiAgIAlpZiAoIWVycm9yKSB7Cj4+Pj4+IC0JCWVycm9yID0gb2NmczJfbXZfb3JwaGFuZWRf aW5vZGVfdG9fbmV3KGRpciwgbmV3X29ycGhhbl9pbm9kZSwKPj4+Pj4gKwkJZXJyb3IgPSBvY2Zz Ml9tdl9vcnBoYW5lZF9pbm9kZV90b19uZXcoZGlyLCBkaXJfYmgsCj4+Pj4+ICsJCQkJCQkgICAg ICAgbmV3X29ycGhhbl9pbm9kZSwKPj4+Pj4gICAJCQkJCQkgICAgICAgbmV3X2RlbnRyeSk7Cj4+ Pj4+ICAgCQlpZiAoZXJyb3IpCj4+Pj4+ICAgCQkJbWxvZ19lcnJubyhlcnJvcik7Cj4+Pj4+IEBA IC00MzI4LDYgKzQzMzAsMTEgQEAgc3RhdGljIGludCBvY2ZzMl9yZWZsaW5rKHN0cnVjdCBkZW50 cnkgKm9sZF9kZW50cnksIHN0cnVjdCBpbm9kZSAqZGlyLAo+Pj4+PiAgIAkJCWlwdXQobmV3X29y cGhhbl9pbm9kZSk7Cj4+Pj4+ICAgCX0KPj4+Pj4KPj4+Pj4gKwlpZiAoZGlyX2JoKSB7Cj4+Pj4+ ICsJCW9jZnMyX2lub2RlX3VubG9jayhkaXIsIDEpOwo+Pj4+PiArCQlicmVsc2UoZGlyX2JoKTsK Pj4+Pj4gKwl9Cj4+Pj4+ICsKPj4+Pj4gICAJcmV0dXJuIGVycm9yOwo+Pj4+PiAgIH0KPj4+Pj4K Pj4+Pj4gZGlmZiAtLWdpdCBhL2ZzL29jZnMyL3hhdHRyLmMgYi9mcy9vY2ZzMi94YXR0ci5jCj4+ Pj4+IGluZGV4IGRkNzg0ZWIwY2Q3Yy4uM2YyM2UzYTUwMThjIDEwMDY0NAo+Pj4+PiAtLS0gYS9m cy9vY2ZzMi94YXR0ci5jCj4+Pj4+ICsrKyBiL2ZzL29jZnMyL3hhdHRyLmMKPj4+Pj4gQEAgLTcy MDMsMTYgKzcyMDMsMTMgQEAgaW50IG9jZnMyX3JlZmxpbmtfeGF0dHJzKHN0cnVjdCBpbm9kZSAq b2xkX2lub2RlLAo+Pj4+PiAgIC8qCj4+Pj4+ICAgICogSW5pdGlhbGl6ZSBzZWN1cml0eSBhbmQg YWNsIGZvciBhIGFscmVhZHkgY3JlYXRlZCBpbm9kZS4KPj4+Pj4gICAgKiBVc2VkIGZvciByZWZs aW5rIGEgbm9uLXByZXNlcnZlLXNlY3VyaXR5IGZpbGUuCj4+Pj4+IC0gKgo+Pj4+PiAtICogSXQg dXNlcyBjb21tb24gYXBpIGxpa2Ugb2NmczJfeGF0dHJfc2V0LCBzbyB0aGUgY2FsbGVyCj4+Pj4+ IC0gKiBtdXN0IG5vdCBob2xkIGFueSBsb2NrIGV4cGVjdCBpX211dGV4Lgo+Pj4+PiAgICAqLwo+ Pj4+PiAgIGludCBvY2ZzMl9pbml0X3NlY3VyaXR5X2FuZF9hY2woc3RydWN0IGlub2RlICpkaXIs Cj4+Pj4+ICsJCQkJc3RydWN0IGJ1ZmZlcl9oZWFkICpkaXJfYmgsCj4+Pj4+ICAgCQkJCXN0cnVj dCBpbm9kZSAqaW5vZGUsCj4+Pj4+ICAgCQkJCWNvbnN0IHN0cnVjdCBxc3RyICpxc3RyKQo+Pj4+ PiAgIHsKPj4+Pj4gICAJaW50IHJldCA9IDA7Cj4+Pj4+IC0Jc3RydWN0IGJ1ZmZlcl9oZWFkICpk aXJfYmggPSBOVUxMOwo+Pj4+Pgo+Pj4+PiAgIAlyZXQgPSBvY2ZzMl9pbml0X3NlY3VyaXR5X2dl dChpbm9kZSwgZGlyLCBxc3RyLCBOVUxMKTsKPj4+Pj4gICAJaWYgKHJldCkgewo+Pj4+PiBAQCAt NzIyMCwxNyArNzIxNywxMCBAQCBpbnQgb2NmczJfaW5pdF9zZWN1cml0eV9hbmRfYWNsKHN0cnVj dCBpbm9kZSAqZGlyLAo+Pj4+PiAgIAkJZ290byBsZWF2ZTsKPj4+Pj4gICAJfQo+Pj4+Pgo+Pj4+ PiAtCXJldCA9IG9jZnMyX2lub2RlX2xvY2soZGlyLCAmZGlyX2JoLCAwKTsKPj4+Pj4gLQlpZiAo cmV0KSB7Cj4+Pj4+IC0JCW1sb2dfZXJybm8ocmV0KTsKPj4+Pj4gLQkJZ290byBsZWF2ZTsKPj4+ Pj4gLQl9Cj4+Pj4+ICAgCXJldCA9IG9jZnMyX2luaXRfYWNsKE5VTEwsIGlub2RlLCBkaXIsIE5V TEwsIGRpcl9iaCwgTlVMTCwgTlVMTCk7Cj4+Pj4+ICAgCWlmIChyZXQpCj4+Pj4+ICAgCQltbG9n X2Vycm5vKHJldCk7Cj4+Pj4+Cj4+Pj4+IC0Jb2NmczJfaW5vZGVfdW5sb2NrKGRpciwgMCk7Cj4+ Pj4+IC0JYnJlbHNlKGRpcl9iaCk7Cj4+Pj4+ICAgbGVhdmU6Cj4+Pj4+ICAgCXJldHVybiByZXQ7 Cj4+Pj4+ICAgfQo+Pj4+PiBkaWZmIC0tZ2l0IGEvZnMvb2NmczIveGF0dHIuaCBiL2ZzL29jZnMy L3hhdHRyLmgKPj4+Pj4gaW5kZXggMDAzMDhiNTdmNjRmLi5iMjdmZDhiYTAwMTkgMTAwNjQ0Cj4+ Pj4+IC0tLSBhL2ZzL29jZnMyL3hhdHRyLmgKPj4+Pj4gKysrIGIvZnMvb2NmczIveGF0dHIuaAo+ Pj4+PiBAQCAtODMsNiArODMsNyBAQCBpbnQgb2NmczJfcmVmbGlua194YXR0cnMoc3RydWN0IGlu b2RlICpvbGRfaW5vZGUsCj4+Pj4+ICAgCQkJIHN0cnVjdCBidWZmZXJfaGVhZCAqbmV3X2JoLAo+ Pj4+PiAgIAkJCSBib29sIHByZXNlcnZlX3NlY3VyaXR5KTsKPj4+Pj4gICBpbnQgb2NmczJfaW5p dF9zZWN1cml0eV9hbmRfYWNsKHN0cnVjdCBpbm9kZSAqZGlyLAo+Pj4+PiArCQkJCXN0cnVjdCBi dWZmZXJfaGVhZCAqZGlyX2JoLAo+Pj4+PiAgIAkJCQlzdHJ1Y3QgaW5vZGUgKmlub2RlLAo+Pj4+ PiAgIAkJCQljb25zdCBzdHJ1Y3QgcXN0ciAqcXN0cik7Cj4+Pj4+ICAgI2VuZGlmIC8qIE9DRlMy X1hBVFRSX0ggKi8KPj4+Pj4KPj4+Pgo+Pj4+Cj4+Pj4gX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX18KPj4+PiBPY2ZzMi1kZXZlbCBtYWlsaW5nIGxpc3QKPj4+ PiBPY2ZzMi1kZXZlbEBvc3Mub3JhY2xlLmNvbQo+Pj4+IGh0dHBzOi8vb3NzLm9yYWNsZS5jb20v bWFpbG1hbi9saXN0aW5mby9vY2ZzMi1kZXZlbAo+Pgo+IAoKCl9fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fCk9jZnMyLWRldmVsIG1haWxpbmcgbGlzdApPY2Zz Mi1kZXZlbEBvc3Mub3JhY2xlLmNvbQpodHRwczovL29zcy5vcmFjbGUuY29tL21haWxtYW4vbGlz dGluZm8vb2NmczItZGV2ZWw= 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 X-Spam-Level: X-Spam-Status: No, score=-19.2 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER, INCLUDES_PATCH,MAILING_LIST_MULTI,MSGID_FROM_MTA_HEADER,NICE_REPLY_A, SPF_HELO_NONE,SPF_PASS,USER_AGENT_SANE_1 autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id B7343C433FE for ; Tue, 14 Sep 2021 07:35:42 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id A134360F4A for ; Tue, 14 Sep 2021 07:35:42 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S241271AbhINHg6 (ORCPT ); Tue, 14 Sep 2021 03:36:58 -0400 Received: from de-smtp-delivery-102.mimecast.com ([194.104.109.102]:46029 "EHLO de-smtp-delivery-102.mimecast.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S241119AbhINHgC (ORCPT ); Tue, 14 Sep 2021 03:36:02 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619; t=1631604880; h=from:from: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; bh=y3idExvRg/Y3IA79kMFhT/dcVfmbWeNK31riQvcNLxg=; b=L4rj6WIOpsynxvBMDOMSrohxtT9uXH3yCybirqUtmo+D0lwcwAAaWmsj8w6CTTx6XoKtLI Ze9geAOBjQnE8X8xHnzGlCfBHTGcIgE4fsGTRL718sErmnfWssT5aNZrc8sHKbJ2R6B2P4 IOOjQ7sjJ73HASJrKClAc6PIZfDdx9E= Received: from EUR02-HE1-obe.outbound.protection.outlook.com (mail-he1eur02lp2057.outbound.protection.outlook.com [104.47.5.57]) (Using TLS) by relay.mimecast.com with ESMTP id de-mta-37-tfsUrqL2NU6zumCdKTi0rA-1; Tue, 14 Sep 2021 09:34:39 +0200 X-MC-Unique: tfsUrqL2NU6zumCdKTi0rA-1 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=O+qp/w1URw2HKXvFlowueAUFcwkLTMDZOCYh7ldl8muVdQ1WVuiMgVncZ2MWet7Bfs5XjzvokuXAKYOXDi32twOkUlCIMTI0QViOb+V5NIEbo9wHFpz9u1Xpu9UMjTXidnNqOaMtwtRo33iYpkruZtR3Ad5Nz78J+iUKLd2IlinFMJ92QxaK4DcjMuuj7uB66PHyUj70tqgfgCqqkiFu1XFSlr0XdMhH8NnULh1ceTdisv+gkCybFs+sq4mNGKyI9j8QAAl7RCyRdhYIMuh/hamzL4buUWYNZMFRD05vsl8eyK7D8oV8BjcQN9N2wPt3qyJ6WObXrUgLcu7kCR0HYg== 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; bh=9BeA5wJ9xssYsJjk2JKGrCp0Zd98UJ1SZoERlM8SAcw=; b=SJUNqkFfPZQlE8fXH73zepDwLHaCH3Vm3iNkAsg0bFs/oalAseHN2engz9gaH84cqtE1/DnNAVaPFpWdxwtia1lnugBhxO/ee/fcgUKYVOrLSHftGy+L7BRKptfmX0MWY/QKrbSjlLBERC8Z8v65WtEI+0uenRucWsD+i7DcPlb7phDobNlYxl9KpfxSI3MuQ4EC3/GXBCsNbWOT+SR0chB3Ws2n6lbObiZr6fmAIob6xwE8nwabv5/2vRcryrgr/hgPmJKE0LiKitLFMPWjmqQ0nExcE132+i3p/J8uFdRe45UKWvdzlpo4VYtK9RenHYupBSl6yIs7xqC2/K9VGQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com; dkim=pass header.d=suse.com; arc=none Authentication-Results: oss.oracle.com; dkim=none (message not signed) header.d=none;oss.oracle.com; dmarc=none action=none header.from=suse.com; Received: from AM6PR04MB6488.eurprd04.prod.outlook.com (2603:10a6:20b:f8::21) by AM5PR0401MB2531.eurprd04.prod.outlook.com (2603:10a6:203:2e::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4500.18; Tue, 14 Sep 2021 07:34:37 +0000 Received: from AM6PR04MB6488.eurprd04.prod.outlook.com ([fe80::793c:6276:4f2a:4d71]) by AM6PR04MB6488.eurprd04.prod.outlook.com ([fe80::793c:6276:4f2a:4d71%4]) with mapi id 15.20.4500.018; Tue, 14 Sep 2021 07:34:37 +0000 Subject: Re: [Ocfs2-devel] [PATCH] ocfs2: avoid getting dlm lock of the target directory multiple times during reflink process To: Wengang Wang CC: "mark@fasheh.com" , "jlbec@evilplan.org" , Joseph Qi , "linux-kernel@vger.kernel.org" , "ocfs2-devel@oss.oracle.com" References: <20210826075941.28480-1-ghe@suse.com> <744d756c-7640-d312-37ef-126755324e8a@suse.com> <3FF09C2E-2855-457E-8533-50BBD8EECEF1@oracle.com> <2abbfd28-da40-3218-f226-0621cb683716@suse.com> <3672BDE0-3D94-4522-9059-A75C91784415@oracle.com> From: Gang He Message-ID: <60b3e52b-fdab-5255-3339-de3d95555dca@suse.com> Date: Tue, 14 Sep 2021 15:34:28 +0800 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:78.0) Gecko/20100101 Thunderbird/78.14.0 In-Reply-To: <3672BDE0-3D94-4522-9059-A75C91784415@oracle.com> Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: HKAPR04CA0003.apcprd04.prod.outlook.com (2603:1096:203:d0::13) To AM6PR04MB6488.eurprd04.prod.outlook.com (2603:10a6:20b:f8::21) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from [10.67.20.87] (60.251.47.115) by HKAPR04CA0003.apcprd04.prod.outlook.com (2603:1096:203:d0::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4523.14 via Frontend Transport; Tue, 14 Sep 2021 07:34:35 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 38d86016-0d00-4032-bfda-08d977521af0 X-MS-TrafficTypeDiagnostic: AM5PR0401MB2531: X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:10000; X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: CGccbj1lCUt+8B8Q0sqCMrqqZYRcPBfqTDNfKaTur7kXOniA3ivakR5gxT2a5OzNIP6xW/FOUxTu/LdWqzALeP5i1poNRsarD+fWE07E+ymd7VQFVqMs4fkUTcL6cxmaBIJW0aS1AIuxGX1+rqZ4eCQgJSKMZ5C705T3QUWeSvTTJUlr4AZrhX1HTb/yJEgh+krazOD++rBbRY38ESm/Hdcs6gbtj9tgQusbriv0+ACKKGSR8270y834OHjIRvVauajOo3/PKlkWvj7wNBmOB/zg8czIwE0WNJOKJMaaDOYmd4AwfroGPjZZl9JGmVnDRb0HANuvDMB38t6hgE3Ubbr4xM0+uNG4r/9glH1WcOLrORY/iChSv47cHDpnITfzFPcg3dHRI2u8n/XTCJzrjuPVtPeQsldvdPupzTtzODXrgotLnkzRsXvVB+aAPY3hTeYHN4KqW4wd6VTtsYCR/yKo/kRnvdkdNM6njQJyHCtQ4weO8urS5zvDUzpGHKHGUDqL5xZjRFmvXQ47zXWEl7aMMHp6k1iZ8VKUF/Ya5Nm2wKdvxSRKZfMJYdonhfCWuxPw9aufCKlQXzhCAnFKJFSt90LgMA8xTbgB9IBy8ArNAsN1vTwr1Ad/51CCJJ94Weyh2Ob/nZfeW174Md9j3TP0uW/g9GLoXy0ihlekbQfVUrTCZ/jV5KSf8vEkrpZoISlxscpggclI5WLXfBMh5NbtgmKBb7WhnHO63+ExzWt39Z7dT1VI2kwdTkBQPekriis+C8Qjkcl9A+0azh8sbHOfaAG8Q5Rajl9ADHaD2ek/kTSltGcXs9nkAAbcKH0HxgghsajnRcu23Zm0F9kwg5ZerLVciFRLppw2ECcNeNpi3OiyN6M0ERDNymPuqMCg X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM6PR04MB6488.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(346002)(39860400002)(396003)(376002)(366004)(136003)(86362001)(55236004)(16576012)(6916009)(8936002)(31686004)(8676002)(5660300002)(316002)(53546011)(38100700002)(36756003)(186003)(6486002)(2906002)(66946007)(4326008)(31696002)(6666004)(66556008)(66476007)(30864003)(54906003)(956004)(966005)(26005)(2616005)(478600001)(83380400001)(10126625002)(45980500001)(43740500002);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?r3FwPU6gdYeAXZgbx/tN6S/bpjSr657BETdzLIOsshdSU1k9Cr9bLg/xpGJW?= =?us-ascii?Q?Prsdbyvrw0O8hDRZjYE5QEZK0aMb4muplUd5R+fn+aLUEEU7vx6wST5ku71E?= =?us-ascii?Q?xduQcdqg2JVyabKeJplAe5caqkwvsG4LO7bVTPOpUBpJV796AmdsslUFOjF0?= =?us-ascii?Q?zn/d8wZhl74aCZm5B5//mHWreD3d1J/wNHvd/QNiJ5vEULi/y0flMpcS6PVS?= =?us-ascii?Q?b+Z7JSRLy0JbiLTq1Trj0Q8PapY1WQK9zis4I7Gou8STmU8kT2B1nknadEwl?= =?us-ascii?Q?ZwUx5cJZsSK36IPku5YAHE8uzj6bqUpYKqMuD0ZAP5WnqLzBBHcLl4vLKr/E?= =?us-ascii?Q?XGV0ydLJLfV7uG4VBWewq3I45yeRBOCLiVnWj2z213Ux2Pt8vPTMY8pb5/rJ?= =?us-ascii?Q?6unveszIddizodCcScy8eeMF/VwlQwz4gT9ez3893GF+5Y5oJx3kNHpJYOJi?= =?us-ascii?Q?f2IwuDwYFWisoQYTK8QmVFFUnXypHMdwGfIoExK2Qfnfscih94VQNqq7+uto?= =?us-ascii?Q?lN5nU1WqEj+uGFu03/xHkHQmR2m/x6R+nXyyzfqdPJEi7p49QsWffWUy0EEq?= =?us-ascii?Q?Itrj8UVQORW8fGDHTJoVX1A2iXK+VDQnsbCxpPzsJp85/rsk6+LQzk7RFNbS?= =?us-ascii?Q?x2U36YYyS11rDrQ3nJDYPxbl6DLJjyEucRUEMleDXFYZAtp+dFek4mN6OQEG?= =?us-ascii?Q?+4Crfnas3CN6UFx08t96vZvgzLjVPoLjwcppYqLI+yq5Bq+yY5hXJjy+6hl2?= =?us-ascii?Q?KJCLbd3/v4hDMZjWxypOV+HysJ5SIEeD88y1nxfLbNuTS2F6vVhEoYG/MBQQ?= =?us-ascii?Q?a9OC5cFbXsM7Y4g0MGgB1w3sNZwBtFULZk9O8Q7r/pcQoAaalsKF4S515nAD?= =?us-ascii?Q?jdt47gSiOYD51I7YZrtJ9E/pAexnjKK8dpTh8z4uiYSZ1SuneYYVqHw1q4Ov?= =?us-ascii?Q?bs0iZ7PV8z4E1p87TlHVyP4q9MKhC0heDJUeVomgR+fdqe0Fk/Ou5AmUxWTS?= =?us-ascii?Q?18caW/DRA4LH0CaKoSdszp6iDJtv+hNolL+8hfHbMMxeb2zjUVF1PvxlBI33?= =?us-ascii?Q?QRmSvf1Exx/BWbEbsscdzelGCXrnp+SA7OS7CXEGzYw3clB0UoHajlQfWY6Y?= =?us-ascii?Q?umbJwiPqOKmpINFF0Ai3Cha9AaihSG9hchijSIkMXVUSdP29T33I/nXUKyQN?= =?us-ascii?Q?W1kiZcUG4Mu4+d8MipMsmHZ5E8sJ+sfBMPVaYUEiPW/SB7q5gqx0enEnQCH9?= =?us-ascii?Q?FC/Zj4JzXNgARE59E/5XGqcQ/8FMipvOtxgcbcTsztMq4Istqkz0kRhlKJMN?= =?us-ascii?Q?EHI/Wln9jchyXdVFZ3MC9uZ6?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 38d86016-0d00-4032-bfda-08d977521af0 X-MS-Exchange-CrossTenant-AuthSource: AM6PR04MB6488.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Sep 2021 07:34:37.3844 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: B3AjaKn5EjnpAciIRI9893uK3Rvx+yDYfPtEeOZH3cp9VorP19AvtZl4lMw4plRD X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM5PR0401MB2531 Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi Wengang, Sorry for delayed reply. On 2021/9/9 0:00, Wengang Wang wrote: >=20 >=20 >> On Sep 7, 2021, at 11:06 PM, Gang He wrote: >> >> >> >> On 2021/9/7 23:57, Wengang Wang wrote: >>> Hi Gang, >>> Sure, I will look into the problem you are trying to address. Any bug f= ix and performance improvement is welcomed! >>> Well, can you please provide the analysis on the tcpdumps between the (= two) nodes that covers the reflink operation with/without your patch to sho= w how you saved dlm locking ping-pongs? >> The code change will hold the reflink destination dir inode dlm lock, re= lease it until the whole reflink process is completed. >> The current code will hold/release this dlm lock three times during the = reflink process. If there are some concurrently reflink operation to that d= irectory from other nodes, the ping-pong effect is that directory inode rel= ated data will be synchronized(multiple times) to the disk when inode dlm l= ock is downconverted during one reflink operation. >> >=20 > I think the above can be a good summary, but not details or the locking p= ing-pong procedure. I need the details to understand the situation. For de= tails, Which locks are involved, what are the locking types, which nodes ar= e involved. The problem is clone files to the same directory simultaneously, for=20 some users, they like to add this task to each node as a crontab job. The main impact factor is the destination dir inode dlm lock in this=20 case, each reflink operation will acquire/release this dlm lock three=20 time. For parallel environment, each node will contend this dlm lock,=20 that means there will be some lock downconvert costs(sync the inode=20 meta-data to the disk before downconvert). For the code logic, I think we can identify this problem clearly=EF=BC=8CI do not think we need performance related tool to help us. Here, I can share my test results for clone files to the same directory=20 simultaneously. 1) test script on each node: https://pastebin.com/y8EcCjWK 2) Performance log of current parallel reflink: https://pastebin.com/qGSedy8E 3) Performance log of parallel reflink after patching: https://pastebin.com/xkyxtNU4 For the performance logs, the test time has been cut in half for every=20 hundred reflink operations. In sum, I think this code change logic is simple and clear, can improve the performance in the above case. Of course, I also want more people to=20 review if there is any risk after this patch, e.g. add dead-lock risk, etc. Thanks Gang >=20 > Say like this (just for an example, not related to the problem here): >=20 > Node 1 Node 2 = Node 3 > =E2=80=94=E2=80=94=E2=80=94=E2=80=94=E2=80=94=E2=80=94=E2=80=94=E2=80=94= =E2=80=94=E2=80=94=E2=80=94 =E2=80=94=E2=80=94=E2=80=94=E2=80=94=E2=80= =94=E2=80=94=E2=80=94=E2=80=94=E2=80=94=E2=80=94=E2=80=94 =E2=80= =94=E2=80=94=E2=80=94=E2=80=94=E2=80=94=E2=80=94=E2=80=94=E2=80=94=E2=80=94= =E2=80=94=E2=80=94=E2=80=94=E2=80=94=E2=80=94=E2=80=94=E2=80=94=E2=80=94=E2= =80=94=E2=80=94=E2=80=94 > dir1 meta lock EX > orphandir1 lock EX > dir1 meta lock EX > orphadir2 lock EX >=20 > dir1 meta lock EX > = orphadir3 lock EX > dir1 meta block EX (again) > =E2=80=A6=E2=80=A6=E2=80=A6=E2=80=A6=E2=80=A6=E2=80=A6.. >=20 >=20 >> According to my test, running the reflink command to clone a file to the= same directory repeatedly from three nodes, the code change can shorten th= e previous half of the time. >> >=20 > I am not sure if above is a typical use case. > What else cases did you test? Did it help in case only one node do the re= flink? > What if there are concurrent file creating/removing operations going on u= nder the target directory when the reflink is going on? >=20 > I think when you are trying to make a performance improvement, you sho= uld provide the performance data for different test cases, like this: >=20 > =E2=80=94=E2=80=94=E2=80=94=E2=80=94=E2=80=94=E2=80=94=E2=80=94=E2=80=94= =E2=80=94=E2=80=94=E2=80=94=E2=80=94=E2=80=94=E2=80=94=E2=80=94=E2=80=94=E2= =80=94=E2=80=94=E2=80=94=E2=80=94=E2=80=94=E2=80=94=E2=80=94=E2=80=94=E2=80= =94=E2=80=94=E2=80=94=E2=80=94=E2=80=94=E2=80=94=E2=80=94=E2=80=94 > Test case desc | orig performance | performance after patched = | > =E2=80=94=E2=80=94=E2=80=94=E2=80=94=E2=80=94=E2=80=94=E2=80=94=E2=80=94= =E2=80=94=E2=80=94=E2=80=94=E2=80=94=E2=80=94=E2=80=94=E2=80=94=E2=80=94=E2= =80=94=E2=80=94=E2=80=94=E2=80=94=E2=80=94=E2=80=94=E2=80=94=E2=80=94=E2=80= =94=E2=80=94=E2=80=94=E2=80=94=E2=80=94=E2=80=94=E2=80=94=E2=80=94 > test case1 (details) | perf data | perf data = | > =E2=80=94=E2=80=94=E2=80=94=E2=80=94=E2=80=94=E2=80=94=E2=80=94=E2=80=94= =E2=80=94=E2=80=94=E2=80=94=E2=80=94=E2=80=94=E2=80=94=E2=80=94=E2=80=94=E2= =80=94=E2=80=94=E2=80=94=E2=80=94=E2=80=94=E2=80=94=E2=80=94=E2=80=94=E2=80= =94=E2=80=94=E2=80=94=E2=80=94=E2=80=94=E2=80=94=E2=80=94- > test case2 (details) | perf data | perf data = | > =E2=80=94=E2=80=94=E2=80=94=E2=80=94=E2=80=94=E2=80=94=E2=80=94=E2=80=94= =E2=80=94=E2=80=94=E2=80=94=E2=80=94=E2=80=94=E2=80=94=E2=80=94=E2=80=94=E2= =80=94=E2=80=94=E2=80=94=E2=80=94=E2=80=94=E2=80=94=E2=80=94=E2=80=94=E2=80= =94=E2=80=94=E2=80=94=E2=80=94=E2=80=94=E2=80=94=E2=80=94 > =E2=80=A6=E2=80=A6 >=20 > thanks, > wengang >=20 >> Thanks >> Gang >> >>> And what cases did you test to get better performance? >>> thanks, >>> wengang >>>> On Aug 30, 2021, at 11:25 PM, Gang He wrote: >>>> >>>> Hello Joseph and Wengang, >>>> >>>> When you have time, please help review this patch. >>>> About the deadlock problem which was caused by ocfs2_downconvert_lock >>>> failure, we have the fix patch, it is very key. >>>> But I feel this patch is still useful as a optimization patch, the use= r >>>> case is to reflink the files to the same directory concurrently, our >>>> users usually backup the files(via reflink) from the cluster nodes >>>> concurrently(via crontab) every day/hour. >>>> The current design, during the reflink process, the node will >>>> acquire/release dlm lock of the target directory multiple times, >>>> this is very inefficient in concurrently reflink. >>>> >>>> >>>> Thanks >>>> Gang >>>> >>>> On 2021/8/26 15:59, Gang He wrote: >>>>> During the reflink process, we should acquire the target directory >>>>> inode dlm lock at the beginning, and hold this dlm lock until end >>>>> of the function. >>>>> With this patch, we avoid dlm lock ping-pong effect when clone >>>>> files to the same directory simultaneously from multiple nodes. >>>>> There is a typical user scenario, users regularly back up files >>>>> to a specified directory through the reflink feature from the >>>>> multiple nodes. >>>>> >>>>> Signed-off-by: Gang He >>>>> --- >>>>> fs/ocfs2/namei.c | 32 +++++++++++++------------------- >>>>> fs/ocfs2/namei.h | 2 ++ >>>>> fs/ocfs2/refcounttree.c | 15 +++++++++++---- >>>>> fs/ocfs2/xattr.c | 12 +----------- >>>>> fs/ocfs2/xattr.h | 1 + >>>>> 5 files changed, 28 insertions(+), 34 deletions(-) >>>>> >>>>> diff --git a/fs/ocfs2/namei.c b/fs/ocfs2/namei.c >>>>> index 2c46ff6ba4ea..f8bbb22cc60b 100644 >>>>> --- a/fs/ocfs2/namei.c >>>>> +++ b/fs/ocfs2/namei.c >>>>> @@ -2489,6 +2489,7 @@ static int ocfs2_prep_new_orphaned_file(struct = inode *dir, >>>>> } >>>>> >>>>> int ocfs2_create_inode_in_orphan(struct inode *dir, >>>>> + struct buffer_head **dir_bh, >>>>> int mode, >>>>> struct inode **new_inode) >>>>> { >>>>> @@ -2597,13 +2598,16 @@ int ocfs2_create_inode_in_orphan(struct inode= *dir, >>>>> >>>>> brelse(new_di_bh); >>>>> >>>>> - if (!status) >>>>> - *new_inode =3D inode; >>>>> - >>>>> ocfs2_free_dir_lookup_result(&orphan_insert); >>>>> >>>>> - ocfs2_inode_unlock(dir, 1); >>>>> - brelse(parent_di_bh); >>>>> + if (!status) { >>>>> + *new_inode =3D inode; >>>>> + *dir_bh =3D parent_di_bh; >>>>> + } else { >>>>> + ocfs2_inode_unlock(dir, 1); >>>>> + brelse(parent_di_bh); >>>>> + } >>>>> + >>>>> return status; >>>>> } >>>>> >>>>> @@ -2760,11 +2764,11 @@ int ocfs2_del_inode_from_orphan(struct ocfs2_= super *osb, >>>>> } >>>>> >>>>> int ocfs2_mv_orphaned_inode_to_new(struct inode *dir, >>>>> + struct buffer_head *dir_bh, >>>>> struct inode *inode, >>>>> struct dentry *dentry) >>>>> { >>>>> int status =3D 0; >>>>> - struct buffer_head *parent_di_bh =3D NULL; >>>>> handle_t *handle =3D NULL; >>>>> struct ocfs2_super *osb =3D OCFS2_SB(dir->i_sb); >>>>> struct ocfs2_dinode *dir_di, *di; >>>>> @@ -2778,14 +2782,7 @@ int ocfs2_mv_orphaned_inode_to_new(struct inod= e *dir, >>>>> (unsigned long long)OCFS2_I(dir)->ip_blkno, >>>>> (unsigned long long)OCFS2_I(inode)->ip_blkno); >>>>> >>>>> - status =3D ocfs2_inode_lock(dir, &parent_di_bh, 1); >>>>> - if (status < 0) { >>>>> - if (status !=3D -ENOENT) >>>>> - mlog_errno(status); >>>>> - return status; >>>>> - } >>>>> - >>>>> - dir_di =3D (struct ocfs2_dinode *) parent_di_bh->b_data; >>>>> + dir_di =3D (struct ocfs2_dinode *) dir_bh->b_data; >>>>> if (!dir_di->i_links_count) { >>>>> /* can't make a file in a deleted directory. */ >>>>> status =3D -ENOENT; >>>>> @@ -2798,7 +2795,7 @@ int ocfs2_mv_orphaned_inode_to_new(struct inode= *dir, >>>>> goto leave; >>>>> >>>>> /* get a spot inside the dir. */ >>>>> - status =3D ocfs2_prepare_dir_for_insert(osb, dir, parent_di_bh, >>>>> + status =3D ocfs2_prepare_dir_for_insert(osb, dir, dir_bh, >>>>> dentry->d_name.name, >>>>> dentry->d_name.len, &lookup); >>>>> if (status < 0) { >>>>> @@ -2862,7 +2859,7 @@ int ocfs2_mv_orphaned_inode_to_new(struct inode= *dir, >>>>> ocfs2_journal_dirty(handle, di_bh); >>>>> >>>>> status =3D ocfs2_add_entry(handle, dentry, inode, >>>>> - OCFS2_I(inode)->ip_blkno, parent_di_bh, >>>>> + OCFS2_I(inode)->ip_blkno, dir_bh, >>>>> &lookup); >>>>> if (status < 0) { >>>>> mlog_errno(status); >>>>> @@ -2886,10 +2883,7 @@ int ocfs2_mv_orphaned_inode_to_new(struct inod= e *dir, >>>>> iput(orphan_dir_inode); >>>>> leave: >>>>> >>>>> - ocfs2_inode_unlock(dir, 1); >>>>> - >>>>> brelse(di_bh); >>>>> - brelse(parent_di_bh); >>>>> brelse(orphan_dir_bh); >>>>> >>>>> ocfs2_free_dir_lookup_result(&lookup); >>>>> diff --git a/fs/ocfs2/namei.h b/fs/ocfs2/namei.h >>>>> index 9cc891eb874e..03a2c526e2c1 100644 >>>>> --- a/fs/ocfs2/namei.h >>>>> +++ b/fs/ocfs2/namei.h >>>>> @@ -24,6 +24,7 @@ int ocfs2_orphan_del(struct ocfs2_super *osb, >>>>> struct buffer_head *orphan_dir_bh, >>>>> bool dio); >>>>> int ocfs2_create_inode_in_orphan(struct inode *dir, >>>>> + struct buffer_head **dir_bh, >>>>> int mode, >>>>> struct inode **new_inode); >>>>> int ocfs2_add_inode_to_orphan(struct ocfs2_super *osb, >>>>> @@ -32,6 +33,7 @@ int ocfs2_del_inode_from_orphan(struct ocfs2_super = *osb, >>>>> struct inode *inode, struct buffer_head *di_bh, >>>>> int update_isize, loff_t end); >>>>> int ocfs2_mv_orphaned_inode_to_new(struct inode *dir, >>>>> + struct buffer_head *dir_bh, >>>>> struct inode *new_inode, >>>>> struct dentry *new_dentry); >>>>> >>>>> diff --git a/fs/ocfs2/refcounttree.c b/fs/ocfs2/refcounttree.c >>>>> index 7f6355cbb587..a9a0c7c37e8e 100644 >>>>> --- a/fs/ocfs2/refcounttree.c >>>>> +++ b/fs/ocfs2/refcounttree.c >>>>> @@ -4250,7 +4250,7 @@ static int ocfs2_reflink(struct dentry *old_den= try, struct inode *dir, >>>>> { >>>>> int error, had_lock; >>>>> struct inode *inode =3D d_inode(old_dentry); >>>>> - struct buffer_head *old_bh =3D NULL; >>>>> + struct buffer_head *old_bh =3D NULL, *dir_bh =3D NULL; >>>>> struct inode *new_orphan_inode =3D NULL; >>>>> struct ocfs2_lock_holder oh; >>>>> >>>>> @@ -4258,7 +4258,7 @@ static int ocfs2_reflink(struct dentry *old_den= try, struct inode *dir, >>>>> return -EOPNOTSUPP; >>>>> >>>>> >>>>> - error =3D ocfs2_create_inode_in_orphan(dir, inode->i_mode, >>>>> + error =3D ocfs2_create_inode_in_orphan(dir, &dir_bh, inode->i_mode, >>>>> &new_orphan_inode); >>>>> if (error) { >>>>> mlog_errno(error); >>>>> @@ -4304,13 +4304,15 @@ static int ocfs2_reflink(struct dentry *old_d= entry, struct inode *dir, >>>>> >>>>> /* If the security isn't preserved, we need to re-initialize them.= */ >>>>> if (!preserve) { >>>>> - error =3D ocfs2_init_security_and_acl(dir, new_orphan_inode, >>>>> + error =3D ocfs2_init_security_and_acl(dir, dir_bh, >>>>> + new_orphan_inode, >>>>> &new_dentry->d_name); >>>>> if (error) >>>>> mlog_errno(error); >>>>> } >>>>> if (!error) { >>>>> - error =3D ocfs2_mv_orphaned_inode_to_new(dir, new_orphan_inode, >>>>> + error =3D ocfs2_mv_orphaned_inode_to_new(dir, dir_bh, >>>>> + new_orphan_inode, >>>>> new_dentry); >>>>> if (error) >>>>> mlog_errno(error); >>>>> @@ -4328,6 +4330,11 @@ static int ocfs2_reflink(struct dentry *old_de= ntry, struct inode *dir, >>>>> iput(new_orphan_inode); >>>>> } >>>>> >>>>> + if (dir_bh) { >>>>> + ocfs2_inode_unlock(dir, 1); >>>>> + brelse(dir_bh); >>>>> + } >>>>> + >>>>> return error; >>>>> } >>>>> >>>>> diff --git a/fs/ocfs2/xattr.c b/fs/ocfs2/xattr.c >>>>> index dd784eb0cd7c..3f23e3a5018c 100644 >>>>> --- a/fs/ocfs2/xattr.c >>>>> +++ b/fs/ocfs2/xattr.c >>>>> @@ -7203,16 +7203,13 @@ int ocfs2_reflink_xattrs(struct inode *old_in= ode, >>>>> /* >>>>> * Initialize security and acl for a already created inode. >>>>> * Used for reflink a non-preserve-security file. >>>>> - * >>>>> - * It uses common api like ocfs2_xattr_set, so the caller >>>>> - * must not hold any lock expect i_mutex. >>>>> */ >>>>> int ocfs2_init_security_and_acl(struct inode *dir, >>>>> + struct buffer_head *dir_bh, >>>>> struct inode *inode, >>>>> const struct qstr *qstr) >>>>> { >>>>> int ret =3D 0; >>>>> - struct buffer_head *dir_bh =3D NULL; >>>>> >>>>> ret =3D ocfs2_init_security_get(inode, dir, qstr, NULL); >>>>> if (ret) { >>>>> @@ -7220,17 +7217,10 @@ int ocfs2_init_security_and_acl(struct inode = *dir, >>>>> goto leave; >>>>> } >>>>> >>>>> - ret =3D ocfs2_inode_lock(dir, &dir_bh, 0); >>>>> - if (ret) { >>>>> - mlog_errno(ret); >>>>> - goto leave; >>>>> - } >>>>> ret =3D ocfs2_init_acl(NULL, inode, dir, NULL, dir_bh, NULL, NULL)= ; >>>>> if (ret) >>>>> mlog_errno(ret); >>>>> >>>>> - ocfs2_inode_unlock(dir, 0); >>>>> - brelse(dir_bh); >>>>> leave: >>>>> return ret; >>>>> } >>>>> diff --git a/fs/ocfs2/xattr.h b/fs/ocfs2/xattr.h >>>>> index 00308b57f64f..b27fd8ba0019 100644 >>>>> --- a/fs/ocfs2/xattr.h >>>>> +++ b/fs/ocfs2/xattr.h >>>>> @@ -83,6 +83,7 @@ int ocfs2_reflink_xattrs(struct inode *old_inode, >>>>> struct buffer_head *new_bh, >>>>> bool preserve_security); >>>>> int ocfs2_init_security_and_acl(struct inode *dir, >>>>> + struct buffer_head *dir_bh, >>>>> struct inode *inode, >>>>> const struct qstr *qstr); >>>>> #endif /* OCFS2_XATTR_H */ >>>>> >>>> >>>> >>>> _______________________________________________ >>>> Ocfs2-devel mailing list >>>> Ocfs2-devel@oss.oracle.com >>>> https://oss.oracle.com/mailman/listinfo/ocfs2-devel >> >=20