Received: from malur.postgresql.org ([2a02:16a8:dc51::56]) by arkaria.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA384:256) (Exim 4.89) (envelope-from ) id 1fQapM-00048B-5g for pgsql-hackers@arkaria.postgresql.org; Wed, 06 Jun 2018 15:58:24 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.89) (envelope-from ) id 1fQapK-0003UF-RN for pgsql-hackers@arkaria.postgresql.org; Wed, 06 Jun 2018 15:58:22 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA384:256) (Exim 4.89) (envelope-from ) id 1fQapK-0003U5-Ij for pgsql-hackers@lists.postgresql.org; Wed, 06 Jun 2018 15:58:22 +0000 Received: from out1-smtp.messagingengine.com ([66.111.4.25]) by magus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA384:256) (Exim 4.89) (envelope-from ) id 1fQapF-0005rT-Bg for pgsql-hackers@postgresql.org; Wed, 06 Jun 2018 15:58:21 +0000 Received: from compute7.internal (compute7.nyi.internal [10.202.2.47]) by mailout.nyi.internal (Postfix) with ESMTP id 3270021C73; Wed, 6 Jun 2018 11:58:16 -0400 (EDT) Received: from mailfrontend2 ([10.202.2.163]) by compute7.internal (MEProxy); Wed, 06 Jun 2018 11:58:16 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to:x-me-sender :x-me-sender:x-sasl-enc; s=fm2; bh=I6Ypr1si72RRT4gE1o5QQ3kvwf1XK G1GOgAzpPTdDfE=; b=lv0oQ+d0iwlBSKJJ5ZiLesE1o+YVbQ3QJ9TS/zVGfml43 dtOFkwcLL8QsGSZLUhoO+ElMXRP75rtBKBRkXoM/L8FQNIvWHLwAEECragxdFEVc PIxjeU7CosYyrcSI9AA1wsaXC2+LM/e4iiZc1TMJnM8ZhaqLSBEWUFBeByFncyPB 1Ki1RSeS3lgAEXciLea79TSv3EJtMHIIAiaUSxtMlHmX/WjXDwKBh8kRveV55BU8 7/U9nhvP38UgTu7tjAoZgB9ntqnjxwd0J7AgCxRA/LVIMCOOGvH+nYQ92RZrcN+R kAmrDhO4sToRGjTkA7ziJIt7O4pvoKXFm5Wj2ENtw== X-ME-Proxy: X-ME-Proxy: X-ME-Proxy: X-ME-Proxy: X-ME-Proxy: X-ME-Proxy: X-ME-Sender: Received: from april.local (c-73-13-66-39.hsd1.pa.comcast.net [73.13.66.39]) by mail.messagingengine.com (Postfix) with ESMTPA id 9A66210266; Wed, 6 Jun 2018 11:58:15 -0400 (EDT) Subject: Re: file cloning in pg_upgrade and CREATE DATABASE From: Peter Eisentraut References: <20180319070636.GA4633@paquier.xyz> <20180319071415.GB4633@paquier.xyz> <20180320025849.GB4963@paquier.xyz> <678999c6-0967-d22a-e7d1-2a3aff83a77b@2ndquadrant.com> <20180323171650.GI1302@momjian.us> <4a62b089-ee93-50ee-f3f7-43c67b4c8ea4@2ndquadrant.com> Cc: Bruce Momjian , Michael Paquier Openpgp: preference=signencrypt Autocrypt: addr=peter.eisentraut@2ndquadrant.com; prefer-encrypt=mutual; keydata= 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 3jI= Organization: 2ndQuadrant To: pgsql-hackers Message-ID: <0241eae2-2f31-3667-200d-ae0e2293f692@2ndquadrant.com> Date: Wed, 6 Jun 2018 11:58:14 -0400 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.13; rv:52.0) Gecko/20100101 Thunderbird/52.7.0 MIME-Version: 1.0 In-Reply-To: <4a62b089-ee93-50ee-f3f7-43c67b4c8ea4@2ndquadrant.com> Content-Type: multipart/mixed; boundary="------------C04AD7D81D1234058A48C831" Content-Language: en-US List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Precedence: bulk This is a multi-part message in MIME format. --------------C04AD7D81D1234058A48C831 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit I have made a major revision of this patch. I have removed all the changes to CREATE DATABASE. That was too contentious and we got lost in unrelated details there. The real benefit is for pg_upgrade. Another point was that for pg_upgrade use a user would like to know beforehand whether reflinking would be used, which was not possible with the copy_file_range() API. So here I have switched to using the ioctl() call directly. So the new interface is that pg_upgrade has a new option --reflink={always,auto,never}. (This option name is adapted from GNU cp.) From the documentation: The setting always requires the use of relinks. If they are not supported, the pg_upgrade run will abort. Use this in production to limit the upgrade run time. The setting auto uses reflinks when available, otherwise it falls back to a normal copy. This is the default. The setting never prevents use of reflinks and always uses a normal copy. This can be useful to ensure that the upgraded cluster has its disk space fully allocated and not shared with the old cluster. Also, pg_upgrade --check will check whether the selected option would work. -- Peter Eisentraut http://www.2ndQuadrant.com/ PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services --------------C04AD7D81D1234058A48C831 Content-Type: text/plain; charset=UTF-8; x-mac-type="0"; x-mac-creator="0"; name="v3-0001-pg_upgrade-Allow-use-of-file-cloning.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="v3-0001-pg_upgrade-Allow-use-of-file-cloning.patch" RnJvbSBjMzllNDA2NDBlNzBlOGZjNGI5MGU3NjJiOTg1MjAxYTFjZTlmOTEyIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQZXRlciBFaXNlbnRyYXV0IDxwZXRlcl9lQGdteC5u ZXQ+CkRhdGU6IFR1ZSwgNSBKdW4gMjAxOCAxNzoyNDo1MyAtMDQwMApTdWJqZWN0OiBbUEFU Q0ggdjNdIHBnX3VwZ3JhZGU6IEFsbG93IHVzZSBvZiBmaWxlIGNsb25pbmcKCkZvciBmaWxl IGNvcHlpbmcgaW4gcGdfdXBncmFkZSwgYWxsb3cgdXNpbmcgc3BlY2lhbCBmaWxlIGNsb25p bmcgY2FsbHMKaWYgYXZhaWxhYmxlLiAgVGhpcyBtYWtlcyB0aGUgY29weWluZyBmYXN0ZXIg YW5kIG1vcmUgc3BhY2UgZWZmaWNpZW50LgpUaGlzIGFjaGlldmVzIHNwZWVkIHNpbWlsYXIg dG8gLS1saW5rIG1vZGUgd2l0aG91dCB0aGUgYXNzb2NpYXRlZApkcmF3YmFja3MuCgpBZGQg YW4gb3B0aW9uIC0tcmVmbGluayB0byBzZWxlY3Qgd2hldGhlciBmaWxlIGNsb25pbmcgaXMg dHVybmVkIG9uLApvZmYsIG9yIGF1dG9tYXRpYy4gIEF1dG9tYXRpYyBpcyB0aGUgZGVmYXVs dC4KCk9uIExpbnV4LCBmaWxlIGNsb25pbmcgaXMgc3VwcG9ydGVkIG9uIEJ0cmZzIGFuZCBY RlMgKGlmIGZvcm1hdHRlZCB3aXRoCnJlZmxpbmsgc3VwcG9ydCkuICBPbiBtYWNPUywgZmls ZSBjbG9uaW5nIGlzIHN1cHBvcnRlZCBvbiBBUEZTLgotLS0KIGNvbmZpZ3VyZSAgICAgICAg ICAgICAgICAgICAgICAgIHwgICAyICstCiBjb25maWd1cmUuaW4gICAgICAgICAgICAgICAg ICAgICB8ICAgMiArLQogZG9jL3NyYy9zZ21sL3JlZi9wZ3VwZ3JhZGUuc2dtbCAgfCAgMzMg KysrKysrKysrCiBzcmMvYmluL3BnX3VwZ3JhZGUvY2hlY2suYyAgICAgICB8ICAgMiArCiBz cmMvYmluL3BnX3VwZ3JhZGUvZmlsZS5jICAgICAgICB8IDEyMyArKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrCiBzcmMvYmluL3BnX3VwZ3JhZGUvb3B0aW9uLmMgICAgICB8ICAx NCArKysrCiBzcmMvYmluL3BnX3VwZ3JhZGUvcGdfdXBncmFkZS5oICB8ICAxNSArKysrCiBz cmMvYmluL3BnX3VwZ3JhZGUvcmVsZmlsZW5vZGUuYyB8ICAzMSArKysrKysrLQogc3JjL2lu Y2x1ZGUvcGdfY29uZmlnLmguaW4gICAgICAgfCAgIDMgKwogOSBmaWxlcyBjaGFuZ2VkLCAy MjAgaW5zZXJ0aW9ucygrKSwgNSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9jb25maWd1 cmUgYi9jb25maWd1cmUKaW5kZXggM2QyMTljODAyYi4uYTBlZWJmNzQ2MiAxMDA3NTUKLS0t IGEvY29uZmlndXJlCisrKyBiL2NvbmZpZ3VyZQpAQCAtMTQ4MjcsNyArMTQ4MjcsNyBAQCBm aQogTElCU19pbmNsdWRpbmdfcmVhZGxpbmU9IiRMSUJTIgogTElCUz1gZWNobyAiJExJQlMi IHwgc2VkIC1lICdzLy1sZWRpdC8vZycgLWUgJ3MvLWxyZWFkbGluZS8vZydgCiAKLWZvciBh Y19mdW5jIGluIGNicnQgY2xvY2tfZ2V0dGltZSBkbG9wZW4gZmRhdGFzeW5jIGdldGlmYWRk cnMgZ2V0cGVlcnVjcmVkIGdldHJsaW1pdCBtYnN0b3djc19sIG1lbW1vdmUgcG9sbCBwb3Np eF9mYWxsb2NhdGUgcHN0YXQgcHRocmVhZF9pc190aHJlYWRlZF9ucCByZWFkbGluayBzZXRw cm9jdGl0bGUgc2V0c2lkIHNobV9vcGVuIHN5bWxpbmsgc3luY19maWxlX3JhbmdlIHV0aW1l IHV0aW1lcyB3Y3N0b21ic19sCitmb3IgYWNfZnVuYyBpbiBjYnJ0IGNsb2NrX2dldHRpbWUg Y29weWZpbGUgZGxvcGVuIGZkYXRhc3luYyBnZXRpZmFkZHJzIGdldHBlZXJ1Y3JlZCBnZXRy bGltaXQgbWJzdG93Y3NfbCBtZW1tb3ZlIHBvbGwgcG9zaXhfZmFsbG9jYXRlIHBzdGF0IHB0 aHJlYWRfaXNfdGhyZWFkZWRfbnAgcmVhZGxpbmsgc2V0cHJvY3RpdGxlIHNldHNpZCBzaG1f b3BlbiBzeW1saW5rIHN5bmNfZmlsZV9yYW5nZSB1dGltZSB1dGltZXMgd2NzdG9tYnNfbAog ZG8gOgogICBhc19hY192YXI9YCRhc19lY2hvICJhY19jdl9mdW5jXyRhY19mdW5jIiB8ICRh c190cl9zaGAKIGFjX2ZuX2NfY2hlY2tfZnVuYyAiJExJTkVOTyIgIiRhY19mdW5jIiAiJGFz X2FjX3ZhciIKZGlmZiAtLWdpdCBhL2NvbmZpZ3VyZS5pbiBiL2NvbmZpZ3VyZS5pbgppbmRl eCA4NjJkOGIxMjhkLi43MzYzMmJlZTkxIDEwMDY0NAotLS0gYS9jb25maWd1cmUuaW4KKysr IGIvY29uZmlndXJlLmluCkBAIC0xNTI4LDcgKzE1MjgsNyBAQCBQR0FDX0ZVTkNfV0NTVE9N QlNfTAogTElCU19pbmNsdWRpbmdfcmVhZGxpbmU9IiRMSUJTIgogTElCUz1gZWNobyAiJExJ QlMiIHwgc2VkIC1lICdzLy1sZWRpdC8vZycgLWUgJ3MvLWxyZWFkbGluZS8vZydgCiAKLUFD X0NIRUNLX0ZVTkNTKFtjYnJ0IGNsb2NrX2dldHRpbWUgZGxvcGVuIGZkYXRhc3luYyBnZXRp ZmFkZHJzIGdldHBlZXJ1Y3JlZCBnZXRybGltaXQgbWJzdG93Y3NfbCBtZW1tb3ZlIHBvbGwg cG9zaXhfZmFsbG9jYXRlIHBzdGF0IHB0aHJlYWRfaXNfdGhyZWFkZWRfbnAgcmVhZGxpbmsg c2V0cHJvY3RpdGxlIHNldHNpZCBzaG1fb3BlbiBzeW1saW5rIHN5bmNfZmlsZV9yYW5nZSB1 dGltZSB1dGltZXMgd2NzdG9tYnNfbF0pCitBQ19DSEVDS19GVU5DUyhbY2JydCBjbG9ja19n ZXR0aW1lIGNvcHlmaWxlIGRsb3BlbiBmZGF0YXN5bmMgZ2V0aWZhZGRycyBnZXRwZWVydWNy ZWQgZ2V0cmxpbWl0IG1ic3Rvd2NzX2wgbWVtbW92ZSBwb2xsIHBvc2l4X2ZhbGxvY2F0ZSBw c3RhdCBwdGhyZWFkX2lzX3RocmVhZGVkX25wIHJlYWRsaW5rIHNldHByb2N0aXRsZSBzZXRz aWQgc2htX29wZW4gc3ltbGluayBzeW5jX2ZpbGVfcmFuZ2UgdXRpbWUgdXRpbWVzIHdjc3Rv bWJzX2xdKQogCiBBQ19SRVBMQUNFX0ZVTkNTKGZzZWVrbykKIGNhc2UgJGhvc3Rfb3MgaW4K ZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvcGd1cGdyYWRlLnNnbWwgYi9kb2Mvc3Jj L3NnbWwvcmVmL3BndXBncmFkZS5zZ21sCmluZGV4IDZkYWZiNDA0YTEuLjAxYTQyNmY3MTQg MTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9yZWYvcGd1cGdyYWRlLnNnbWwKKysrIGIvZG9j L3NyYy9zZ21sL3JlZi9wZ3VwZ3JhZGUuc2dtbApAQCAtMTgyLDYgKzE4MiwzOSBAQCA8dGl0 bGU+T3B0aW9uczwvdGl0bGU+CiAgICAgICA8bGlzdGl0ZW0+PHBhcmE+ZGlzcGxheSB2ZXJz aW9uIGluZm9ybWF0aW9uLCB0aGVuIGV4aXQ8L3BhcmE+PC9saXN0aXRlbT4KICAgICAgPC92 YXJsaXN0ZW50cnk+CiAKKyAgICAgPHZhcmxpc3RlbnRyeT4KKyAgICAgIDx0ZXJtPjxsaXRl cmFsPjxvcHRpb24+LS1yZWZsaW5rPC9vcHRpb24+PXthbHdheXN8YXV0b3xuZXZlcn08L2xp dGVyYWw+PC90ZXJtPgorICAgICAgPGxpc3RpdGVtPgorICAgICAgIDxwYXJhPgorICAgICAg ICBEZXRlcm1pbmVzIHdoZXRoZXIgPGFwcGxpY2F0aW9uPnBnX3VwZ3JhZGU8L2FwcGxpY2F0 aW9uPiwgd2hlbiBpbiBjb3B5CisgICAgICAgIG1vZGUsIHNob3VsZCB1c2UgZWZmaWNpZW50 IGZpbGUgY2xvbmluZyAoYWxzbyBrbm93biBhcworICAgICAgICA8cXVvdGU+cmVmbGlua3M8 L3F1b3RlPikgb24gc29tZSBvcGVyYXRpbmcgc3lzdGVtcyBhbmQgZmlsZSBzeXN0ZW1zLgor ICAgICAgICBUaGlzIGNhbiByZXN1bHQgaW4gbmVhci1pbnN0YW50YW5lb3VzIGNvcHlpbmcg b2YgdGhlIGRhdGEgZmlsZXMsCisgICAgICAgIGdpdmluZyB0aGUgc3BlZWQgYWR2YW50YWdl cyBvZgorICAgICAgICA8b3B0aW9uPi1rPC9vcHRpb24+LzxvcHRpb24+LS1saW5rPC9vcHRp b24+IHdoaWxlIGxlYXZpbmcgdGhlIG9sZAorICAgICAgICBjbHVzdGVyIHVudG91Y2hlZC4K KyAgICAgICA8L3BhcmE+CisKKyAgICAgICA8cGFyYT4KKyAgICAgICAgVGhlIHNldHRpbmcg PGxpdGVyYWw+YWx3YXlzPC9saXRlcmFsPiByZXF1aXJlcyB0aGUgdXNlIG9mIHJlbGlua3Mu ICBJZgorICAgICAgICB0aGV5IGFyZSBub3Qgc3VwcG9ydGVkLCB0aGUgPGFwcGxpY2F0aW9u PnBnX3VwZ3JhZGU8L2FwcGxpY2F0aW9uPiBydW4KKyAgICAgICAgd2lsbCBhYm9ydC4gIFVz ZSB0aGlzIGluIHByb2R1Y3Rpb24gdG8gbGltaXQgdGhlIHVwZ3JhZGUgcnVuIHRpbWUuCisg ICAgICAgIFRoZSBzZXR0aW5nIDxsaXRlcmFsPmF1dG88L2xpdGVyYWw+IHVzZXMgcmVmbGlu a3Mgd2hlbiBhdmFpbGFibGUsCisgICAgICAgIG90aGVyd2lzZSBpdCBmYWxscyBiYWNrIHRv IGEgbm9ybWFsIGNvcHkuICBUaGlzIGlzIHRoZSBkZWZhdWx0LiAgVGhlCisgICAgICAgIHNl dHRpbmcgPGxpdGVyYWw+bmV2ZXI8L2xpdGVyYWw+IHByZXZlbnRzIHVzZSBvZiByZWZsaW5r cyBhbmQgYWx3YXlzCisgICAgICAgIHVzZXMgYSBub3JtYWwgY29weS4gIFRoaXMgY2FuIGJl IHVzZWZ1bCB0byBlbnN1cmUgdGhhdCB0aGUgdXBncmFkZWQKKyAgICAgICAgY2x1c3RlciBo YXMgaXRzIGRpc2sgc3BhY2UgZnVsbHkgYWxsb2NhdGVkIGFuZCBub3Qgc2hhcmVkIHdpdGgg dGhlIG9sZAorICAgICAgICBjbHVzdGVyLgorICAgICAgIDwvcGFyYT4KKworICAgICAgIDxw YXJhPgorICAgICAgICBBdCBwcmVzZW50LCByZWZsaW5rcyBhcmUgc3VwcG9ydGVkIG9uIExp bnV4IChrZXJuZWwgNC41IG9yIGxhdGVyKSB3aXRoCisgICAgICAgIEJ0cmZzIGFuZCBYRlMg KG9uIGZpbGUgc3lzdGVtcyBjcmVhdGVkIHdpdGggcmVmbGluayBzdXBwb3J0LCB3aGljaCBp cworICAgICAgICBub3QgdGhlIGRlZmF1bHQgZm9yIFhGUyBhdCB0aGlzIHdyaXRpbmcpLCBh bmQgb24gbWFjT1Mgd2l0aCBBUEZTLgorICAgICAgIDwvcGFyYT4KKyAgICAgIDwvbGlzdGl0 ZW0+CisgICAgIDwvdmFybGlzdGVudHJ5PgorCiAgICAgIDx2YXJsaXN0ZW50cnk+CiAgICAg ICA8dGVybT48b3B0aW9uPi0/PC9vcHRpb24+PC90ZXJtPgogICAgICAgPHRlcm0+PG9wdGlv bj4tLWhlbHA8L29wdGlvbj48L3Rlcm0+CmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX3VwZ3Jh ZGUvY2hlY2suYyBiL3NyYy9iaW4vcGdfdXBncmFkZS9jaGVjay5jCmluZGV4IDU3N2RiNzNm MTAuLjBkN2E2NzUzOWEgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfdXBncmFkZS9jaGVjay5j CisrKyBiL3NyYy9iaW4vcGdfdXBncmFkZS9jaGVjay5jCkBAIC0xNTEsNiArMTUxLDggQEAg Y2hlY2tfbmV3X2NsdXN0ZXIodm9pZCkKIAogCWlmICh1c2VyX29wdHMudHJhbnNmZXJfbW9k ZSA9PSBUUkFOU0ZFUl9NT0RFX0xJTkspCiAJCWNoZWNrX2hhcmRfbGluaygpOworCWVsc2Ug aWYgKHVzZXJfb3B0cy50cmFuc2Zlcl9tb2RlID09IFRSQU5TRkVSX01PREVfQ09QWSAmJiB1 c2VyX29wdHMucmVmbGlua19tb2RlICE9IFJFRkxJTktfTkVWRVIpCisJCWNoZWNrX3JlZmxp bmsoKTsKIAogCWNoZWNrX2lzX2luc3RhbGxfdXNlcigmbmV3X2NsdXN0ZXIpOwogCmRpZmYg LS1naXQgYS9zcmMvYmluL3BnX3VwZ3JhZGUvZmlsZS5jIGIvc3JjL2Jpbi9wZ191cGdyYWRl L2ZpbGUuYwppbmRleCBmNjgyMTFhYTIwLi43ZGQ4MTA2YzM5IDEwMDY0NAotLS0gYS9zcmMv YmluL3BnX3VwZ3JhZGUvZmlsZS5jCisrKyBiL3NyYy9iaW4vcGdfdXBncmFkZS9maWxlLmMK QEAgLTE4LDYgKzE4LDEzIEBACiAKICNpbmNsdWRlIDxzeXMvc3RhdC5oPgogI2luY2x1ZGUg PGZjbnRsLmg+CisjaWZkZWYgSEFWRV9DT1BZRklMRQorI2luY2x1ZGUgPGNvcHlmaWxlLmg+ CisjZW5kaWYKKyNpZmRlZiBfX2xpbnV4X18KKyNpbmNsdWRlIDxzeXMvaW9jdGwuaD4KKyNp bmNsdWRlIDxsaW51eC9mcy5oPgorI2VuZGlmCiAKIAogI2lmZGVmIFdJTjMyCkBAIC05Myw2 ICsxMDAsNjggQEAgY29weUZpbGUoY29uc3QgY2hhciAqc3JjLCBjb25zdCBjaGFyICpkc3Qs CiAjZW5kaWYJCQkJCQkJLyogV0lOMzIgKi8KIH0KIAorLyoKKyAqIGNsb25lRmlsZSgpCisg KgorICogQ2xvbmVzL3JlZmxpbmtzIGEgcmVsYXRpb24gZmlsZSBmcm9tIHNyYyB0byBkc3Qu CisgKgorICogc2NoZW1hTmFtZS9yZWxOYW1lIGFyZSByZWxhdGlvbidzIFNRTCBuYW1lICh1 c2VkIGZvciBlcnJvciBtZXNzYWdlcyBvbmx5KS4KKyAqCisgKiBJZiB1bnN1cHBvcnRlZF9v ayBpcyB0cnVlLCB0aGVuIGlmIHRoZSBjbG9uaW5nIGZhaWxzIGJlY2F1c2UgdGhlIE9TIG9y IGZpbGUKKyAqIHN5c3RlbSBkb24ndCBzdXBwb3J0IGl0LCBkb24ndCBlcnJvciwgaW5zdGVh ZCByZXR1cm4gZmFsc2UuICBPdGhlcndpc2UsCisgKiB0cnVlIGlzIHJldHVybmVkLiAgQmFz ZWQgb24gdGhpcywgdGhlIGNhbGxlciBjYW4gdGhlbiB0cnkgdG8gY2FsbAorICogY29weUZp bGUoKSBpbnN0ZWFkLCBmb3IgZXhhbXBsZS4KKyAqLworYm9vbAorY2xvbmVGaWxlKGNvbnN0 IGNoYXIgKnNyYywgY29uc3QgY2hhciAqZHN0LAorCQkgIGNvbnN0IGNoYXIgKnNjaGVtYU5h bWUsIGNvbnN0IGNoYXIgKnJlbE5hbWUsCisJCSAgYm9vbCB1bnN1cHBvcnRlZF9vaykKK3sK KyNpZiBkZWZpbmVkKEhBVkVfQ09QWUZJTEUpICYmIGRlZmluZWQoQ09QWUZJTEVfQ0xPTkVf Rk9SQ0UpCisJaWYgKGNvcHlmaWxlKHNyYywgZHN0LCBOVUxMLCBDT1BZRklMRV9DTE9ORV9G T1JDRSkgPCAwKQorCXsKKwkJaWYgKHVuc3VwcG9ydGVkX29rICYmIGVycm5vID09IEVOT1RT VVApCisJCQlyZXR1cm4gZmFsc2U7CisJCWVsc2UKKwkJCXBnX2ZhdGFsKCJlcnJvciB3aGls ZSBjbG9uaW5nIHJlbGF0aW9uIFwiJXMuJXNcIiAoXCIlc1wiIHRvIFwiJXNcIik6ICVzXG4i LAorCQkJCQkgc2NoZW1hTmFtZSwgcmVsTmFtZSwgc3JjLCBkc3QsIHN0cmVycm9yKGVycm5v KSk7CisJfQorCXJldHVybiB0cnVlOworI2VsaWYgZGVmaW5lZChfX2xpbnV4X18pICYmIGRl ZmluZWQoRklDTE9ORSkKKwlpbnQJCQlzcmNfZmQ7CisJaW50CQkJZGVzdF9mZDsKKworCWlm ICgoc3JjX2ZkID0gb3BlbihzcmMsIE9fUkRPTkxZIHwgUEdfQklOQVJZLCAwKSkgPCAwKQor CQlwZ19mYXRhbCgiZXJyb3Igd2hpbGUgY2xvbmluZyByZWxhdGlvbiBcIiVzLiVzXCI6IGNv dWxkIG5vdCBvcGVuIGZpbGUgXCIlc1wiOiAlc1xuIiwKKwkJCQkgc2NoZW1hTmFtZSwgcmVs TmFtZSwgc3JjLCBzdHJlcnJvcihlcnJubykpOworCisJaWYgKChkZXN0X2ZkID0gb3Blbihk c3QsIE9fUkRXUiB8IE9fQ1JFQVQgfCBPX0VYQ0wgfCBQR19CSU5BUlksCisJCQkJCQlwZ19m aWxlX2NyZWF0ZV9tb2RlKSkgPCAwKQorCQlwZ19mYXRhbCgiZXJyb3Igd2hpbGUgY2xvbmlu ZyByZWxhdGlvbiBcIiVzLiVzXCI6IGNvdWxkIG5vdCBjcmVhdGUgZmlsZSBcIiVzXCI6ICVz XG4iLAorCQkJCSBzY2hlbWFOYW1lLCByZWxOYW1lLCBkc3QsIHN0cmVycm9yKGVycm5vKSk7 CisKKwlpZiAoaW9jdGwoZGVzdF9mZCwgRklDTE9ORSwgc3JjX2ZkKSA8IDApCisJeworCQl1 bmxpbmsoZHN0KTsKKwkJaWYgKHVuc3VwcG9ydGVkX29rICYmIGVycm5vID09IEVPUE5PVFNV UFApCisJCXsKKwkJCWNsb3NlKHNyY19mZCk7CisJCQljbG9zZShkZXN0X2ZkKTsKKwkJCXJl dHVybiBmYWxzZTsKKwkJfQorCQllbHNlCisJCQlwZ19mYXRhbCgiZXJyb3Igd2hpbGUgY2xv bmluZyByZWxhdGlvbiBcIiVzLiVzXCIgKFwiJXNcIiB0byBcIiVzXCIpOiAlc1xuIiwKKwkJ CQkJIHNjaGVtYU5hbWUsIHJlbE5hbWUsIHNyYywgZHN0LCBzdHJlcnJvcihlcnJubykpOwor CX0KKworCWNsb3NlKHNyY19mZCk7CisJY2xvc2UoZGVzdF9mZCk7CisJcmV0dXJuIHRydWU7 CisjZWxzZQorCXJldHVybiBmYWxzZTsKKyNlbmRpZgorfQorCiAKIC8qCiAgKiBsaW5rRmls ZSgpCkBAIC0yNzksNiArMzQ4LDYwIEBAIHJld3JpdGVWaXNpYmlsaXR5TWFwKGNvbnN0IGNo YXIgKmZyb21maWxlLCBjb25zdCBjaGFyICp0b2ZpbGUsCiAJY2xvc2Uoc3JjX2ZkKTsKIH0K IAordm9pZAorY2hlY2tfcmVmbGluayh2b2lkKQoreworCWNoYXIJCWV4aXN0aW5nX2ZpbGVb TUFYUEdQQVRIXTsKKwljaGFyCQluZXdfbGlua19maWxlW01BWFBHUEFUSF07CisKKwlzbnBy aW50ZihleGlzdGluZ19maWxlLCBzaXplb2YoZXhpc3RpbmdfZmlsZSksICIlcy9QR19WRVJT SU9OIiwgb2xkX2NsdXN0ZXIucGdkYXRhKTsKKwlzbnByaW50ZihuZXdfbGlua19maWxlLCBz aXplb2YobmV3X2xpbmtfZmlsZSksICIlcy9QR19WRVJTSU9OLnJlZmxpbmt0ZXN0IiwgbmV3 X2NsdXN0ZXIucGdkYXRhKTsKKwl1bmxpbmsobmV3X2xpbmtfZmlsZSk7CQkvKiBtaWdodCBm YWlsICovCisKKyNpZiBkZWZpbmVkKEhBVkVfQ09QWUZJTEUpICYmIGRlZmluZWQoQ09QWUZJ TEVfQ0xPTkVfRk9SQ0UpCisJaWYgKGNvcHlmaWxlKGV4aXN0aW5nX2ZpbGUsIG5ld19saW5r X2ZpbGUsIE5VTEwsIENPUFlGSUxFX0NMT05FX0ZPUkNFKSA8IDApCisJeworCQlpZiAodXNl cl9vcHRzLnJlZmxpbmtfbW9kZSA9PSBSRUZMSU5LX0FMV0FZUykKKwkJCXBnX2ZhdGFsKCJj b3VsZCBub3QgY2xvbmUgZmlsZSBiZXR3ZWVuIG9sZCBhbmQgbmV3IGRhdGEgZGlyZWN0b3Jp ZXM6ICVzXG4iLAorCQkJCQkgc3RyZXJyb3IoZXJybm8pKTsKKwkJZWxzZSBpZiAodXNlcl9v cHRzLmNoZWNrKQorCQkJcGdfbG9nKFBHX1JFUE9SVCwgImNvdWxkIG5vdCBjbG9uZSBmaWxl IGJldHdlZW4gb2xkIGFuZCBuZXcgZGF0YSBkaXJlY3RvcmllczogJXNcbiIsCisJCQkJICAg c3RyZXJyb3IoZXJybm8pKTsKKwl9CisjZWxpZiBkZWZpbmVkKF9fbGludXhfXykgJiYgZGVm aW5lZChGSUNMT05FKQorCXsKKwkJaW50CQkJc3JjX2ZkOworCQlpbnQJCQlkZXN0X2ZkOwor CisJCWlmICgoc3JjX2ZkID0gb3BlbihleGlzdGluZ19maWxlLCBPX1JET05MWSB8IFBHX0JJ TkFSWSwgMCkpIDwgMCkKKwkJCXBnX2ZhdGFsKCJjb3VsZCBub3Qgb3BlbiBmaWxlIFwiJXNc IjogJXNcbiIsCisJCQkJCSBleGlzdGluZ19maWxlLCBzdHJlcnJvcihlcnJubykpOworCisJ CWlmICgoZGVzdF9mZCA9IG9wZW4obmV3X2xpbmtfZmlsZSwgT19SRFdSIHwgT19DUkVBVCB8 IE9fRVhDTCB8IFBHX0JJTkFSWSwKKwkJCQkJCQlwZ19maWxlX2NyZWF0ZV9tb2RlKSkgPCAw KQorCQkJcGdfZmF0YWwoImNvdWxkIG5vdCBjcmVhdGUgZmlsZSBcIiVzXCI6ICVzXG4iLAor CQkJCQkgbmV3X2xpbmtfZmlsZSwgc3RyZXJyb3IoZXJybm8pKTsKKworCQlpZiAoaW9jdGwo ZGVzdF9mZCwgRklDTE9ORSwgc3JjX2ZkKSA8IDApCisJCXsKKwkJCWlmICh1c2VyX29wdHMu cmVmbGlua19tb2RlID09IFJFRkxJTktfQUxXQVlTKQorCQkJCXBnX2ZhdGFsKCJjb3VsZCBu b3QgY2xvbmUgZmlsZSBiZXR3ZWVuIG9sZCBhbmQgbmV3IGRhdGEgZGlyZWN0b3JpZXM6ICVz XG4iLAorCQkJCQkJIHN0cmVycm9yKGVycm5vKSk7CisJCQllbHNlIGlmICh1c2VyX29wdHMu Y2hlY2spCisJCQkJcGdfbG9nKFBHX1JFUE9SVCwgImNvdWxkIG5vdCBjbG9uZSBmaWxlIGJl dHdlZW4gb2xkIGFuZCBuZXcgZGF0YSBkaXJlY3RvcmllczogJXNcbiIsCisJCQkJCSAgIHN0 cmVycm9yKGVycm5vKSk7CisJCX0KKworCQljbG9zZShzcmNfZmQpOworCQljbG9zZShkZXN0 X2ZkKTsKKwl9CisjZWxzZQorCXBnX2ZhdGFsKCJmaWxlIGNsb25pbmcgbm90IHN1cHBvcnRl ZCBvbiB0aGlzIHBsYXRmb3JtXG4iKTsKKyNlbmRpZgorCisJdW5saW5rKG5ld19saW5rX2Zp bGUpOworfQorCiB2b2lkCiBjaGVja19oYXJkX2xpbmsodm9pZCkKIHsKZGlmZiAtLWdpdCBh L3NyYy9iaW4vcGdfdXBncmFkZS9vcHRpb24uYyBiL3NyYy9iaW4vcGdfdXBncmFkZS9vcHRp b24uYwppbmRleCA5ZGJjOTIyNWE2Li5kNTJhMWJjZWUzIDEwMDY0NAotLS0gYS9zcmMvYmlu L3BnX3VwZ3JhZGUvb3B0aW9uLmMKKysrIGIvc3JjL2Jpbi9wZ191cGdyYWRlL29wdGlvbi5j CkBAIC01Myw2ICs1Myw5IEBAIHBhcnNlQ29tbWFuZExpbmUoaW50IGFyZ2MsIGNoYXIgKmFy Z3ZbXSkKIAkJeyJyZXRhaW4iLCBub19hcmd1bWVudCwgTlVMTCwgJ3InfSwKIAkJeyJqb2Jz IiwgcmVxdWlyZWRfYXJndW1lbnQsIE5VTEwsICdqJ30sCiAJCXsidmVyYm9zZSIsIG5vX2Fy Z3VtZW50LCBOVUxMLCAndid9LAorCisJCXsicmVmbGluayIsIHJlcXVpcmVkX2FyZ3VtZW50 LCBOVUxMLCAxfSwKKwogCQl7TlVMTCwgMCwgTlVMTCwgMH0KIAl9OwogCWludAkJCW9wdGlv bjsJCQkvKiBDb21tYW5kIGxpbmUgb3B0aW9uICovCkBAIC0yMDMsNiArMjA2LDE3IEBAIHBh cnNlQ29tbWFuZExpbmUoaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKIAkJCQlsb2dfb3B0cy52 ZXJib3NlID0gdHJ1ZTsKIAkJCQlicmVhazsKIAorCQkJY2FzZSAxOgorCQkJCWlmIChzdHJj bXAob3B0YXJnLCAiYWx3YXlzIikgPT0gMCkKKwkJCQkJdXNlcl9vcHRzLnJlZmxpbmtfbW9k ZSA9IFJFRkxJTktfQUxXQVlTOworCQkJCWVsc2UgaWYgKHN0cmNtcChvcHRhcmcsICJhdXRv IikgPT0gMCkKKwkJCQkJdXNlcl9vcHRzLnJlZmxpbmtfbW9kZSA9IFJFRkxJTktfQVVUTzsK KwkJCQllbHNlIGlmIChzdHJjbXAob3B0YXJnLCAibmV2ZXIiKSA9PSAwKQorCQkJCQl1c2Vy X29wdHMucmVmbGlua19tb2RlID0gUkVGTElOS19ORVZFUjsKKwkJCQllbHNlCisJCQkJCXBn X2ZhdGFsKCJpbnZhbGlkIHJlZmxpbmsgbW9kZTogJXNcbiIsIG9wdGFyZyk7CisJCQkJYnJl YWs7CisKIAkJCWRlZmF1bHQ6CiAJCQkJcGdfZmF0YWwoIlRyeSBcIiVzIC0taGVscFwiIGZv ciBtb3JlIGluZm9ybWF0aW9uLlxuIiwKIAkJCQkJCSBvc19pbmZvLnByb2duYW1lKTsKZGlm ZiAtLWdpdCBhL3NyYy9iaW4vcGdfdXBncmFkZS9wZ191cGdyYWRlLmggYi9zcmMvYmluL3Bn X3VwZ3JhZGUvcGdfdXBncmFkZS5oCmluZGV4IDdlNWU5NzEyOTQuLjlhZGZjODcxNDAgMTAw NjQ0Ci0tLSBhL3NyYy9iaW4vcGdfdXBncmFkZS9wZ191cGdyYWRlLmgKKysrIGIvc3JjL2Jp bi9wZ191cGdyYWRlL3BnX3VwZ3JhZGUuaApAQCAtMjM4LDYgKzIzOCwxNiBAQCB0eXBlZGVm IGVudW0KIAlUUkFOU0ZFUl9NT0RFX0xJTksKIH0gdHJhbnNmZXJNb2RlOwogCisvKgorICog RW51bWVyYXRpb24gdG8gZGVub3RlIHJlZmxpbmsgbW9kZXMKKyAqLwordHlwZWRlZiBlbnVt Cit7CisJUkVGTElOS19ORVZFUiwKKwlSRUZMSU5LX0FVVE8sCisJUkVGTElOS19BTFdBWVMK K30gcmVmbGlua01vZGU7CisKIC8qCiAgKiBFbnVtZXJhdGlvbiB0byBkZW5vdGUgcGdfbG9n IG1vZGVzCiAgKi8KQEAgLTI5Nyw2ICszMDcsNyBAQCB0eXBlZGVmIHN0cnVjdAogCWJvb2wJ CWNoZWNrOwkJCS8qIHRydWUgLT4gYXNrIHVzZXIgZm9yIHBlcm1pc3Npb24gdG8gbWFrZQog CQkJCQkJCQkgKiBjaGFuZ2VzICovCiAJdHJhbnNmZXJNb2RlIHRyYW5zZmVyX21vZGU7IC8q IGNvcHkgZmlsZXMgb3IgbGluayB0aGVtPyAqLworCXJlZmxpbmtNb2RlCXJlZmxpbmtfbW9k ZTsKIAlpbnQJCQlqb2JzOwogfSBVc2VyT3B0czsKIApAQCAtMzY5LDEwICszODAsMTQgQEAg Ym9vbAkJcGlkX2xvY2tfZmlsZV9leGlzdHMoY29uc3QgY2hhciAqZGF0YWRpcik7CiAKIHZv aWQgY29weUZpbGUoY29uc3QgY2hhciAqc3JjLCBjb25zdCBjaGFyICpkc3QsCiAJCSBjb25z dCBjaGFyICpzY2hlbWFOYW1lLCBjb25zdCBjaGFyICpyZWxOYW1lKTsKK2Jvb2wgY2xvbmVG aWxlKGNvbnN0IGNoYXIgKnNyYywgY29uc3QgY2hhciAqZHN0LAorCQkgY29uc3QgY2hhciAq c2NoZW1hTmFtZSwgY29uc3QgY2hhciAqcmVsTmFtZSwKKwkJIGJvb2wgdW5zdXBwb3J0ZWRf b2spOwogdm9pZCBsaW5rRmlsZShjb25zdCBjaGFyICpzcmMsIGNvbnN0IGNoYXIgKmRzdCwK IAkJIGNvbnN0IGNoYXIgKnNjaGVtYU5hbWUsIGNvbnN0IGNoYXIgKnJlbE5hbWUpOwogdm9p ZCByZXdyaXRlVmlzaWJpbGl0eU1hcChjb25zdCBjaGFyICpmcm9tZmlsZSwgY29uc3QgY2hh ciAqdG9maWxlLAogCQkJCQkgY29uc3QgY2hhciAqc2NoZW1hTmFtZSwgY29uc3QgY2hhciAq cmVsTmFtZSk7Cit2b2lkCQljaGVja19yZWZsaW5rKHZvaWQpOwogdm9pZAkJY2hlY2tfaGFy ZF9saW5rKHZvaWQpOwogCiAvKiBmb3Blbl9wcml2KCkgaXMgbm8gbG9uZ2VyIGRpZmZlcmVu dCBmcm9tIGZvcGVuKCkgKi8KZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfdXBncmFkZS9yZWxm aWxlbm9kZS5jIGIvc3JjL2Jpbi9wZ191cGdyYWRlL3JlbGZpbGVub2RlLmMKaW5kZXggZWQ2 MDRmMjZjYS4uZmMwMGNmZGZhZSAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ191cGdyYWRlL3Jl bGZpbGVub2RlLmMKKysrIGIvc3JjL2Jpbi9wZ191cGdyYWRlL3JlbGZpbGVub2RlLmMKQEAg LTI1Miw5ICsyNTIsMzQgQEAgdHJhbnNmZXJfcmVsZmlsZShGaWxlTmFtZU1hcCAqbWFwLCBj b25zdCBjaGFyICp0eXBlX3N1ZmZpeCwgYm9vbCB2bV9tdXN0X2FkZF9mcm8KIAkJfQogCQll bHNlIGlmICh1c2VyX29wdHMudHJhbnNmZXJfbW9kZSA9PSBUUkFOU0ZFUl9NT0RFX0NPUFkp CiAJCXsKLQkJCXBnX2xvZyhQR19WRVJCT1NFLCAiY29weWluZyBcIiVzXCIgdG8gXCIlc1wi XG4iLAotCQkJCSAgIG9sZF9maWxlLCBuZXdfZmlsZSk7Ci0JCQljb3B5RmlsZShvbGRfZmls ZSwgbmV3X2ZpbGUsIG1hcC0+bnNwbmFtZSwgbWFwLT5yZWxuYW1lKTsKKwkJCWlmICh1c2Vy X29wdHMucmVmbGlua19tb2RlID09IFJFRkxJTktfQUxXQVlTKQorCQkJeworCQkJCXBnX2xv ZyhQR19WRVJCT1NFLCAiY2xvbmluZyBcIiVzXCIgdG8gXCIlc1wiXG4iLAorCQkJCQkgICBv bGRfZmlsZSwgbmV3X2ZpbGUpOworCQkJCWNsb25lRmlsZShvbGRfZmlsZSwgbmV3X2ZpbGUs IG1hcC0+bnNwbmFtZSwgbWFwLT5yZWxuYW1lLCBmYWxzZSk7CisJCQl9CisJCQllbHNlIGlm ICh1c2VyX29wdHMucmVmbGlua19tb2RlID09IFJFRkxJTktfQVVUTykKKwkJCXsKKwkJCQlz dGF0aWMgYm9vbAkJY2xvbmluZ19vayA9IHRydWU7CisKKwkJCQlwZ19sb2coUEdfVkVSQk9T RSwgImNvcHlpbmcgXCIlc1wiIHRvIFwiJXNcIlxuIiwKKwkJCQkJICAgb2xkX2ZpbGUsIG5l d19maWxlKTsKKwkJCQlpZiAoY2xvbmluZ19vayAmJgorCQkJCQkhY2xvbmVGaWxlKG9sZF9m aWxlLCBuZXdfZmlsZSwgbWFwLT5uc3BuYW1lLCBtYXAtPnJlbG5hbWUsIHRydWUpKQorCQkJ CXsKKwkJCQkJcGdfbG9nKFBHX1ZFUkJPU0UsICJjbG9uaW5nIG5vdCBzdXBwb3J0ZWQsIHN3 aXRjaGluZyB0byBjb3B5aW5nXG4iKTsKKwkJCQkJY2xvbmluZ19vayA9IGZhbHNlOworCQkJ CQljb3B5RmlsZShvbGRfZmlsZSwgbmV3X2ZpbGUsIG1hcC0+bnNwbmFtZSwgbWFwLT5yZWxu YW1lKTsKKwkJCQl9CisJCQkJZWxzZQorCQkJCQljb3B5RmlsZShvbGRfZmlsZSwgbmV3X2Zp bGUsIG1hcC0+bnNwbmFtZSwgbWFwLT5yZWxuYW1lKTsKKwkJCX0KKwkJCWVsc2UKKwkJCXsK KwkJCQlwZ19sb2coUEdfVkVSQk9TRSwgImNvcHlpbmcgXCIlc1wiIHRvIFwiJXNcIlxuIiwK KwkJCQkJICAgb2xkX2ZpbGUsIG5ld19maWxlKTsKKwkJCQljb3B5RmlsZShvbGRfZmlsZSwg bmV3X2ZpbGUsIG1hcC0+bnNwbmFtZSwgbWFwLT5yZWxuYW1lKTsKKwkJCX0KIAkJfQogCQll bHNlCiAJCXsKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3BnX2NvbmZpZy5oLmluIGIvc3Jj L2luY2x1ZGUvcGdfY29uZmlnLmguaW4KaW5kZXggODliODgwNDI1MS4uNWE4N2E5NWQ2NyAx MDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvcGdfY29uZmlnLmguaW4KKysrIGIvc3JjL2luY2x1 ZGUvcGdfY29uZmlnLmguaW4KQEAgLTExNCw2ICsxMTQsOSBAQAogLyogRGVmaW5lIHRvIDEg aWYgeW91ciBjb21waWxlciBoYW5kbGVzIGNvbXB1dGVkIGdvdG9zLiAqLwogI3VuZGVmIEhB VkVfQ09NUFVURURfR09UTwogCisvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYGNv cHlmaWxlJyBmdW5jdGlvbi4gKi8KKyN1bmRlZiBIQVZFX0NPUFlGSUxFCisKIC8qIERlZmlu ZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8Y3J0ZGVmcy5oPiBoZWFkZXIgZmlsZS4gKi8KICN1 bmRlZiBIQVZFX0NSVERFRlNfSAogCgpiYXNlLWNvbW1pdDogM2Y4NWM2MmQ5ZTgyNWVlZGQx MzE1ZDI0OWVmMWFkNzkzY2E3OGVkNAotLSAKMi4xNy4xCgo= --------------C04AD7D81D1234058A48C831--