Received: by 2002:a05:6a10:413:0:0:0:0 with SMTP id 19csp595406pxp; Sat, 5 Mar 2022 12:29:01 -0800 (PST) X-Google-Smtp-Source: ABdhPJz59C56cHH/97o3tK4HNJRLf7oFLxVHthJiBa3g+tp6FcPEWvV5E5Vsu6h3ghoZ4N0bs2uJ X-Received: by 2002:a17:90b:4b4f:b0:1bf:2381:b247 with SMTP id mi15-20020a17090b4b4f00b001bf2381b247mr5279852pjb.75.1646512141657; Sat, 05 Mar 2022 12:29:01 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1646512141; cv=pass; d=google.com; s=arc-20160816; b=Jn52xK5k+PPkheXsvQqJzkzrHfcKxzeD2692+xxSbpeoHS+GjTCYmbF7sGGLrKE6jY 3idAzAIYVSg62b6dfN9pgnrsyTvg3IVt9UlwIiZdbM0lPGYU0gsR1osGnfBAdwrTzStp I7D6juGrdoFz3mnFmLz7KxHS2K213vA3XyiQrzgzpKZtr2debZSPA6SWiJDr8BTmXSS+ w3/GPcKb+fS173U+/xl1ZeVkRm8Hv92xFtDwy754SU6RvgAATxDIATXOqi00Wz5r8mvQ 85ld8qV1jy0Yj0v9B9eMxuXGp+5izETuiE9DM8p1NQOOQub924gIWG7geW9MGPGG/eUh jvhQ== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:mime-version:content-transfer-encoding :content-id:content-language:accept-language:in-reply-to:references :message-id:date:thread-index:thread-topic:subject:cc:to:from :dkim-signature; bh=c44DE2oPeWH2434J28VZFUbKg9jSkywt1qhIbmcvxK4=; b=0ObFaYnxMVr0lVHpBu7n0vtbKVRJW4QdzDPcCXoSVrozVqpTJ7/cj3A73KDZmk6Fgg 9kLTxVkvW2R3OmVLmMc/TlZS236Rdg5wPqTeONoNnylUIfPI/zxsTUKxeuoGw9Il+1k9 3F06lpmpLV4y/1xyFieUx18SDDlTAGMbc2A9c+suNGgks58MUd20VYe4TKncFajEYiPV e942jlhi1Db9LdzfS3Xn9D/OYoIHwNDOqsvQfuOMPRbvRG50RxrcMr7cHtCd4hIXy1JW +4M1OPxao2yllNmgu+mzeZjAJl1HqEzey4ABk24cZLnUTpxhXCoe96lj7tBbtY8icBUu osSQ== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@hammerspace.com header.s=selector2 header.b=JQX8JDVd; arc=pass (i=1 spf=pass spfdomain=hammerspace.com dkim=pass dkdomain=hammerspace.com dmarc=pass fromdomain=hammerspace.com); spf=pass (google.com: domain of linux-nfs-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-nfs-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=hammerspace.com Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id v11-20020a17090a634b00b001bd14e03043si2885135pjs.27.2022.03.05.12.28.36; Sat, 05 Mar 2022 12:29:01 -0800 (PST) Received-SPF: pass (google.com: domain of linux-nfs-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@hammerspace.com header.s=selector2 header.b=JQX8JDVd; arc=pass (i=1 spf=pass spfdomain=hammerspace.com dkim=pass dkdomain=hammerspace.com dmarc=pass fromdomain=hammerspace.com); spf=pass (google.com: domain of linux-nfs-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-nfs-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=hammerspace.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231292AbiCERNl (ORCPT + 99 others); Sat, 5 Mar 2022 12:13:41 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:54214 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231584AbiCERNk (ORCPT ); Sat, 5 Mar 2022 12:13:40 -0500 Received: from NAM11-BN8-obe.outbound.protection.outlook.com (mail-bn8nam11on2132.outbound.protection.outlook.com [40.107.236.132]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 192B2B84C; Sat, 5 Mar 2022 09:12:50 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=hxjS6k51+z8WgIKiP44hIDpKViDsU2vwI0DavfgLzNpEtcoguEYz9z49VnNBiX2BDoN7kGdQs+g6T7jUcAt3w+XclYyRTgDp2hgJOg2NzUWGn5NA0IReWZQTmJQ5tXz3wimm9tMfdcBtsPKq4CEDGvkF4QzZiRNMZEul0WseQTGPWKnCrtOGpT8oAzDXRmMk4g/iobUaA0NrYEqT8snnZpLGBafGn6CWTmf3h8saZGrNyGcgOO0q+lv8WcTMzDU6oE7s+BkMY1Spp/1XQC0oM7vt96XUo/1850oL9UzKP98SPKRiJ4xOSfYoCMivdwDOMUmMRH2iWj3RB7M6uKNlng== 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=c44DE2oPeWH2434J28VZFUbKg9jSkywt1qhIbmcvxK4=; b=Uwzaowaws7ZXHdMbLcjHjXIqkrnmY/gd05EGVw/gydG0MkytfOzqxUDRpf/mqNzbhvwAfNR4OuqG/bTp4D4iTY9FsZtmvRH+xk7TWDkcxcDuP0duwDAZqM+IOtOsTH4rfjw0ti8BTcLZd5jiw5xgFgNU+RU+Npm9T15HJCg52BG1Exfzd4x3aZahODfGO2waBpyFB0/murFlthuAFkb4numG5kFnTQzHOSE8gAbe7UfvOMxDQQdG5ALZAr4F6qB8r+e2CmdDRwV3mI8EDpkEBDh5FjxQ5kYW9hHfqW/oXxCCb5pcc1rh+LcT3DkRR3hVTHx1tV2gYh/KU/Fhcd+HKQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=hammerspace.com; dmarc=pass action=none header.from=hammerspace.com; dkim=pass header.d=hammerspace.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=hammerspace.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=c44DE2oPeWH2434J28VZFUbKg9jSkywt1qhIbmcvxK4=; b=JQX8JDVd6vHD80nKYIYO4mj0jgTI86Nwybz0+2Ck7biOu319lVNZ5nlB9WS61ZlzBsLCeQXk0FODN5hT0iUIFxfbXUsGvi2Y6Im0ptGJfPXSvDuwxacX1gCxDvIb/hhirmBwOpzrPPoLs4GdrQB/XTFK/3nacaWg53y64IEEhT0= Received: from CH0PR13MB5084.namprd13.prod.outlook.com (2603:10b6:610:111::7) by BY5PR13MB3061.namprd13.prod.outlook.com (2603:10b6:a03:18e::26) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5061.3; Sat, 5 Mar 2022 17:12:46 +0000 Received: from CH0PR13MB5084.namprd13.prod.outlook.com ([fe80::70cc:dd9c:25b:4f3f]) by CH0PR13MB5084.namprd13.prod.outlook.com ([fe80::70cc:dd9c:25b:4f3f%7]) with mapi id 15.20.5061.013; Sat, 5 Mar 2022 17:12:46 +0000 From: Trond Myklebust To: "anna@kernel.org" , "chenxiaosong2@huawei.com" , "smayhew@redhat.com" CC: "linux-nfs@vger.kernel.org" , "liuyongqiang13@huawei.com" , "linux-kernel@vger.kernel.org" , "yi.zhang@huawei.com" , "zhangxiaoxu5@huawei.com" Subject: Re: [PATCH -next 2/2] nfs: nfs_file_write() check writeback errors correctly Thread-Topic: [PATCH -next 2/2] nfs: nfs_file_write() check writeback errors correctly Thread-Index: AQHYMIz1p4vLG8/+bkijBHRG64iku6yxB1oA Date: Sat, 5 Mar 2022 17:12:46 +0000 Message-ID: <461aafe64a56836b8d248556052f8d00b6d37731.camel@hammerspace.com> References: <20220305124636.2002383-1-chenxiaosong2@huawei.com> <20220305124636.2002383-3-chenxiaosong2@huawei.com> In-Reply-To: <20220305124636.2002383-3-chenxiaosong2@huawei.com> Accept-Language: en-US, en-GB Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=hammerspace.com; x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 4f6f8ba3-f33a-456b-c6a5-08d9fecb5e55 x-ms-traffictypediagnostic: BY5PR13MB3061:EE_ x-microsoft-antispam-prvs: x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: Wi8HjEEgYAw5vPA7kKgbx94GyxY5JiF+bn6I9eY5uUzYkCt64kz8WzLxVIpMMUZTy2T0EFikIkDOY/ykBbCLUD/stlSnrtF89RglpRte8yKWIZecj+vO/CE6SEvJMhK9o/0a8l51iYl6NEw0Vjr04rHCBK78EAgDwPXpiiP+0oYKGZDXDvV8TeEbUVacu9RDB8XnwaIG37CbR+92wzTwzAfL30+YQoKcjq6UVyaqaaJvHDqQWqlLCDMS1Uq1VNjwYlWm+b5Qj1q7oy86bWa6Sh9cr17eCdeY57DrLnYjHJol1X7eAVGhdoQDkNuXXiW9tnHWtu7S2zjsJxxUn1pDqB7w7X4tf6Fwkax2Y4jY02neZA/jfarbzrTuIp9NkhgK+G+dzQKtIiX0p77bdr3FUhFuk3SNY+4VQoHsA0aYaaMBdIYJPetGp3Kze7ug5y3CRkUEKknVyARzpuMSnrbLzWCZapaOrz0AmnFDynDSISwmD7A9uhIs2S9y+NmdXfO+nnBcSaZzQqSgvz0EdEDHKwtbLjjNLmLneMA5BMyvatfn1NJo03VGg2TqkKFzBlkagQmOfSAW5COpWo+QmxAjOs6tLcT+YcCqYETMLOWdOhPb9qElMCrCuXHVE5nPobZI2a5vfw8OaQtaQ0RhqG5sHz97qx0HBnV7TyTagQqWceadSReNMb3zquukabi1QTm0Gq+Ph61CmdKJblI2b4BHPQ== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH0PR13MB5084.namprd13.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230001)(366004)(86362001)(316002)(54906003)(38100700002)(8936002)(122000001)(66556008)(66476007)(66946007)(110136005)(8676002)(76116006)(66446008)(4326008)(5660300002)(38070700005)(64756008)(6512007)(6506007)(186003)(26005)(83380400001)(71200400001)(6486002)(508600001)(2616005)(2906002)(36756003);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?N3ZnYi9sOGR5aENYeWpMVVBTWG9zNnFuN2VBSGN5dUNlbXVxcGV1TE02QmZB?= =?utf-8?B?V01qRityTUkzek5oOGh6SnNWbEFxVjl2N241NUw5b21Na1NRc0pPTjR5UXNh?= =?utf-8?B?VEh1SjRXcEY2RlhBTW1uUCs5OG5IWThVR01POTJoRjhIdmZjQXFLYlh3ZmMv?= =?utf-8?B?TkpIM0ovYzZoZFFBVWxRWGl3Yys1YVYxaDNMN1V1My9zcXNWQzlpVVY0Q1pl?= =?utf-8?B?akpKam1VcThnWW9WczJyRUdHZFZSQUQxWWhnL2tUZU5qOEZCdmwyN3ptMkhn?= =?utf-8?B?NHRwOTRpRFgvcDNTVFk5Sk50cFJYenBIMmFLS2lNY1o5ZGNUZ04xaEM5OWR4?= =?utf-8?B?dm9nMWM5dUk5dTlDNHRZaGhMbTlrQ1hrK0xUNVhmam1YNUh3NE1FaW0ydnVw?= =?utf-8?B?ckd1bzZtUDBFcGNYSStRYmgxVnJCcHNiRW0yWXZXZ28vVi8vaHFjaml6bU9y?= =?utf-8?B?Q01zNC9hcUQ3YlU3SVBDQWVjQXJ5VCtlRnpNVFN0dGpnVFNuYjFyQ1ZqVDA1?= =?utf-8?B?WXNhQjMwMHBaOFYwcXN5V0xsY0g5eFRCVDNNOWR3U0xGVWwyL1ZFek9KRUpX?= =?utf-8?B?cVI3UURPaE01TDJGV25JYXV0YXp1eVBYbUpFNExvajMvRWwvaldtelBpcVhz?= =?utf-8?B?Z3JYL2oxemg0Z2x3UVpHL3I2ZWt1SE92a3gxclJzRHJVV3N4ZTQrSDFyeUJl?= =?utf-8?B?ajlxNStXY0hIT2o0Q2N3ZVVOcGtSczFwRmJJa3RqSTFIdmFNRDlqcisvbmRa?= =?utf-8?B?R0g5U09NdnNETVRBcTNLemZEd2NEQnVDWHdOSllJZkdPbmJCUUZDOUNyaXNr?= =?utf-8?B?QTAySWVZSklYNmE2NFZBaitSQlQyRFhRaEpJR2pud1l4TkVRUmFmS0V1dDNl?= =?utf-8?B?NGxBWUkrOGIyYlJpMllOOFNZZjlqR0pFZ1pvZHdaK0JQWGtPN2h5eFdYaFJN?= =?utf-8?B?Q0NuM2RzZXNSalRrTmF6ajllaTM3RzFEQ2JRT3BwRUFPaVh3Vm1ldGVpQytW?= =?utf-8?B?YzlOakpmVTlYWXBYVGVobGdaVXNpQ0RTRHBnQ3hhUTVmNlhnemttRjFYeDFn?= =?utf-8?B?S1lXWGRFSHNqUjBqRm9CL21TQjZNaU1pckF5M2lqRzRUb2dCTG85bTQzZ00w?= =?utf-8?B?N3k3ZXEyUDU5WmhoVWgvcmNVUFBzYTYyYndyeFk1bEZjeGNRbzlYWEt3RnQx?= =?utf-8?B?TElTNjFRNlRISG0rRXAzY3VSQ3NEOS9qNVExNDlkS1hQOGpCZ1B3NlRqVUVR?= =?utf-8?B?RU9Dc0dhQjU5d2p0ZkVZZmtOQ0FTczk0aHE1MTZWYy9YdFpnVmhPSUFtNWt4?= =?utf-8?B?M2dKN054THAzdzhLQVpVMzlzV1RBdXJFZVpCQ3R5WjZVQWdKajhMb2kyTTdT?= =?utf-8?B?YTgva2xoUjlPOFJidEVGM0h6c3RVelJyakFyN1NKdFhSZFZ1SW40a1BoRGhr?= =?utf-8?B?aXlyQUhYMS9SYytxMWZhdXJqUWRoUG9qV0p1NHdXaWdDTDlKSnFHNVJra3RH?= =?utf-8?B?bWxZNW9rUzlIbnBCc1JJK01zb292TGkybVlkblVvTCtPVzZESTA5TmUrSkNq?= =?utf-8?B?ZFJ6VjlPemVZWFFRcVVyN0FjUzBXOUZkLzhTT1g4a0V5OEZrWThDU21LSEl0?= =?utf-8?B?VWY1akx3MEZqOEJtK2huOE5GbVg3bEtRdTRxUjNiTVVPKzdXY0cvOHl1WElm?= =?utf-8?B?dEljdkJrbmRhdHlNNENMaGd4cXdKcFZMYzF0clhNcjFWSk5kVGE4MFc1b0VT?= =?utf-8?B?RmxJc3RtWGRiQXhtd0d6dy9tbjd5N21oS3ZVa2xFUDBUWjgwOFRYOE00YVRw?= =?utf-8?B?dDhxbHg3ODJndjA2ckVkUXY3UGpja1FlT3pPVnJ4RTFCM0ZHbmZ1MktobEtO?= =?utf-8?B?ZS90MkRZbjgxVzBZeG5oMWt1ZGpHSzNDeFpmOEhlUFRKdkFicFU3Z205cjky?= =?utf-8?B?cXBvOGNyQjJ3L3lTcVdpRmdjc1dnbml3ZVBRbXVpYnVBdFhrTE9nN0owZmhH?= =?utf-8?B?dFc1TkVJUnBRPT0=?= Content-Type: text/plain; charset="utf-8" Content-ID: <09E61835B5527643A84A27BC6AD722DE@namprd13.prod.outlook.com> Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: hammerspace.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: CH0PR13MB5084.namprd13.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 4f6f8ba3-f33a-456b-c6a5-08d9fecb5e55 X-MS-Exchange-CrossTenant-originalarrivaltime: 05 Mar 2022 17:12:46.3193 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 0d4fed5c-3a70-46fe-9430-ece41741f59e X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: 5NGXzprpgu5VVcfME8ORaaDSLPQZ5y4jDrEobEcRuqGOiqL1Vc305ESCEjpShUg2HhtSLMz85+oqgWpXNn1mWg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY5PR13MB3061 X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2,SPF_HELO_PASS,SPF_PASS,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-nfs@vger.kernel.org T24gU2F0LCAyMDIyLTAzLTA1IGF0IDIwOjQ2ICswODAwLCBDaGVuWGlhb1Nvbmcgd3JvdGU6DQo+ IElmIG5vYm9keSBoYXMgc2VlbiB0aGUgd3JpdGViYWNrIGVycm9yIHlldCwgdGhlbg0KPiBmaWxl bWFwX3NhbXBsZV93Yl9lcnIoKQ0KPiBhbHdheXMgcmV0dXJuIDAuIEV2ZW4gaWYgdGhlcmUgaXMg bm8gbmV3IHdyaXRlYmFjayBlcnJvciBiZXR3ZWVuDQo+IGZpbGVtYXBfc2FtcGxlX3diX2Vycigp IGFuZCBmaWxlbWFwX2NoZWNrX3diX2VycigpLA0KPiBmaWxlbWFwX2NoZWNrX3diX2VycigpIHdp bGwgcmV0dXJuIHRoZSBvbGQgZXJyb3IuDQo+IA0KPiBGaXggdGhpcyBieSB1c2luZyBmaWxlLT5m X21hcHBpbmctPndiX2VyciBhcyB0aGUgb2xkIGVycm9yLg0KPiANCj4gRml4ZXM6IGNlMzY4NTM2 ZGQ2MSAoIm5mczogbmZzX2ZpbGVfd3JpdGUoKSBzaG91bGQgY2hlY2sgZm9yDQo+IHdyaXRlYmFj ayBlcnJvcnMiKQ0KPiBTaWduZWQtb2ZmLWJ5OiBDaGVuWGlhb1NvbmcgPGNoZW54aWFvc29uZzJA aHVhd2VpLmNvbT4NCj4gLS0tDQo+IMKgZnMvbmZzL2ZpbGUuYyB8IDQgKystLQ0KPiDCoDEgZmls ZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pDQo+IA0KPiBkaWZmIC0t Z2l0IGEvZnMvbmZzL2ZpbGUuYyBiL2ZzL25mcy9maWxlLmMNCj4gaW5kZXggODNkNjNiY2U5NTk2 Li44NzYzZjg5YzE3NmEgMTAwNjQ0DQo+IC0tLSBhL2ZzL25mcy9maWxlLmMNCj4gKysrIGIvZnMv bmZzL2ZpbGUuYw0KPiBAQCAtNjM1LDcgKzYzNSw3IEBAIHNzaXplX3QgbmZzX2ZpbGVfd3JpdGUo c3RydWN0IGtpb2NiICppb2NiLCBzdHJ1Y3QNCj4gaW92X2l0ZXIgKmZyb20pDQo+IMKgDQo+IMKg wqDCoMKgwqDCoMKgwqBuZnNfY2xlYXJfaW52YWxpZF9tYXBwaW5nKGZpbGUtPmZfbWFwcGluZyk7 DQo+IMKgDQo+IC3CoMKgwqDCoMKgwqDCoHNpbmNlID0gZmlsZW1hcF9zYW1wbGVfd2JfZXJyKGZp bGUtPmZfbWFwcGluZyk7DQo+ICvCoMKgwqDCoMKgwqDCoHNpbmNlID0gZmlsZS0+Zl9tYXBwaW5n LT53Yl9lcnI7DQo+IMKgwqDCoMKgwqDCoMKgwqBuZnNfc3RhcnRfaW9fd3JpdGUoaW5vZGUpOw0K PiDCoMKgwqDCoMKgwqDCoMKgcmVzdWx0ID0gZ2VuZXJpY193cml0ZV9jaGVja3MoaW9jYiwgZnJv bSk7DQo+IMKgwqDCoMKgwqDCoMKgwqBpZiAocmVzdWx0ID4gMCkgew0KPiBAQCAtNjY5LDcgKzY2 OSw3IEBAIHNzaXplX3QgbmZzX2ZpbGVfd3JpdGUoc3RydWN0IGtpb2NiICppb2NiLCBzdHJ1Y3QN Cj4gaW92X2l0ZXIgKmZyb20pDQo+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgZ290 byBvdXQ7DQo+IMKgDQo+IMKgwqDCoMKgwqDCoMKgwqAvKiBSZXR1cm4gZXJyb3IgdmFsdWVzICov DQo+IC3CoMKgwqDCoMKgwqDCoGVycm9yID0gZmlsZW1hcF9jaGVja193Yl9lcnIoZmlsZS0+Zl9t YXBwaW5nLCBzaW5jZSk7DQo+ICvCoMKgwqDCoMKgwqDCoGVycm9yID0gZXJyc2VxX2NoZWNrKCZm aWxlLT5mX21hcHBpbmctPndiX2Vyciwgc2luY2UpOw0KPiDCoMKgwqDCoMKgwqDCoMKgaWYgKG5m c19uZWVkX2NoZWNrX3dyaXRlKGZpbGUsIGlub2RlLCBlcnJvcikpIHsNCj4gwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqBpbnQgZXJyID0gbmZzX3diX2FsbChpbm9kZSk7DQo+IMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgaWYgKGVyciA8IDApDQoNCkhtbS4uLiBXaHkgaXNu J3QgdGhpcyBjb25zaWRlcmVkIGEgYnVnIHdpdGggZmlsZW1hcF9zYW1wbGVfd2JfZXJyKCk/IElm DQp3aGF0IHlvdSBzYXkgaXMgdHJ1ZSwgdGhlbiBkb19kZW50cnlfb3BlbigpIGNvdWxkIGJlIHBp Y2tpbmcgdXANCmV4aXN0aW5nIGVycm9ycyBmcm9tIHRoZSBmaWxlc3lzdGVtIGFuZCBmcm9tIHRo ZSBpbm9kZSBhbmQgcHJvcGFnYXRpbmcNCnRoZW0gdG8gcmFuZG9tIHByb2Nlc3Nlcy4NCg0KSXQg YmFzaWNhbGx5IG1lYW5zIGV2ZXJ5b25lIHdobyBjYXJlcyBhYm91dCBjb3JyZWN0bmVzcyBvZiB0 aGUgZXJyb3INCnJldHVybiB2YWx1ZXMgbmVlZHMgdG8gZG8gYSBmc3luYygpIGltbWVkaWF0ZWx5 IGFmdGVyIG9wZW4oKSBpbiBvcmRlcg0KdG8gc3luYyB1cCB0aGUgdmFsdWUgaW4gZmlsZS0+Zl93 Yl9lcnIuDQoNCi0tIA0KVHJvbmQgTXlrbGVidXN0DQpMaW51eCBORlMgY2xpZW50IG1haW50YWlu ZXIsIEhhbW1lcnNwYWNlDQp0cm9uZC5teWtsZWJ1c3RAaGFtbWVyc3BhY2UuY29tDQoNCg0K