Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1svsxf-000UJt-1M for pgsql-hackers@arkaria.postgresql.org; Wed, 02 Oct 2024 06:35:47 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.94.2) (envelope-from ) id 1svswg-00BEE4-Ab for pgsql-hackers@arkaria.postgresql.org; Wed, 02 Oct 2024 06:34:46 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1svswf-00BEDv-NL for pgsql-hackers@lists.postgresql.org; Wed, 02 Oct 2024 06:34:45 +0000 Received: from oss.nttdata.com ([49.212.34.109]) by makus.postgresql.org with esmtps (TLS1.2) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1svswb-00254x-EQ for pgsql-hackers@postgresql.org; Wed, 02 Oct 2024 06:34:44 +0000 Received: from [192.168.179.9] (unknown [1.72.16.243]) by oss.nttdata.com (Postfix) with ESMTPSA id B91A160172; Wed, 2 Oct 2024 15:34:36 +0900 (JST) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.11 at oss.nttdata.com Content-Type: multipart/mixed; boundary="------------Th8I4dyyjLvRcdBj8gbAC7dp" Message-ID: <9fb4e232-88dc-4554-8a4f-ba307a52f9da@oss.nttdata.com> Date: Wed, 2 Oct 2024 15:34:33 +0900 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: Add on_error and log_verbosity options to file_fdw Content-Language: en-US To: Masahiko Sawada Cc: torikoshia , Michael Paquier , Pgsql Hackers References: <841721f3ca9a69574a72eb141c83933c@oss.nttdata.com> <79a336ccebc70401625743686c41b81a@oss.nttdata.com> <5739a8ee4320a31ca04752fe3972aa73@oss.nttdata.com> <81844000-703c-408a-9296-14f5e176098d@oss.nttdata.com> <156b2c1bfe27441aa5e59a52d0af5142@oss.nttdata.com> <1b24fcc9-0f18-40bf-b532-ab4cbe4b9e32@oss.nttdata.com> <6383a9a5b90a36dbe60c6f30286d2254@oss.nttdata.com> From: Fujii Masao In-Reply-To: List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk This is a multi-part message in MIME format. --------------Th8I4dyyjLvRcdBj8gbAC7dp Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit On 2024/10/02 9:27, Masahiko Sawada wrote: > Sorry for being late in joining the review of this patch. Both 0001 > and 0003 look good to me. I have two comments on the 0002 patch: Thanks for the review! > I think that while scanning a file_fdw foreign table with > log_verbosity='silent' the query is not interruptible. You're right. I added CHECK_FOR_INTERRUPTS() in the retry loop. > Also, we don't switch to the per-tuple memory context when retrying > due to a soft error. I'm not sure it's okay as in CopyFrom(), a > similar function for COPY command, we switch to the per-tuple memory > context every time before parsing an input line. Would it be > problematic if we switch to another memory context while parsing an > input line? In CopyFrom() we also call ResetPerTupleExprContext() and > ExecClearTuple() for every input, so we might want to consider calling > them for every input. Yes, I've updated the patch based on your comment. Could you please review the latest version? Regards, -- Fujii Masao Advanced Computing Technology Center Research and Development Headquarters NTT DATA CORPORATION --------------Th8I4dyyjLvRcdBj8gbAC7dp Content-Type: text/plain; charset=UTF-8; name="v7-0001-Add-log_verbosity-silent-support-to-COPY-command.patch" Content-Disposition: attachment; filename*0="v7-0001-Add-log_verbosity-silent-support-to-COPY-command.pat"; filename*1="ch" Content-Transfer-Encoding: base64 RnJvbSAyYzQ1NWQ2MmFhZDg0MjY3ZTk4N2IwN2ExMjg3ZmQ5NzlhYmMwOTk1IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBBdHN1c2hpIFRvcmlrb3NoaSA8dG9yaWtvc2hpYUBv c3MubnR0ZGF0YS5jb20+CkRhdGU6IFdlZCwgMjUgU2VwIDIwMjQgMjE6Mjg6MTUgKzA5MDAK U3ViamVjdDogW1BBVENIIHY3IDEvM10gQWRkIGxvZ192ZXJib3NpdHkgPSAnc2lsZW50JyBz dXBwb3J0IHRvIENPUFkgY29tbWFuZC4KClByZXZpb3VzbHksIHdoZW4gdGhlIG9uX2Vycm9y IG9wdGlvbiB3YXMgc2V0IHRvIGlnbm9yZSwgdGhlIENPUFkgY29tbWFuZAp3b3VsZCBhbHdh eXMgbG9nIE5PVElDRSBtZXNzYWdlcyBmb3IgaW5wdXQgcm93cyBkaXNjYXJkZWQgZHVlIHRv CmRhdGEgdHlwZSBpbmNvbXBhdGliaWxpdHkuIFVzZXJzIGhhZCBubyB3YXkgdG8gc3VwcHJl c3MgdGhlc2UgbWVzc2FnZXMuCgpUaGlzIGNvbW1pdCBpbnRyb2R1Y2VzIGEgbmV3IGxvZ192 ZXJib3NpdHkgc2V0dGluZywgJ3NpbGVudCcsCndoaWNoIHByZXZlbnRzIHRoZSBDT1BZIGNv bW1hbmQgZnJvbSBlbWl0dGluZyBOT1RJQ0UgbWVzc2FnZXMKd2hlbiBvbl9lcnJvciA9ICdp Z25vcmUnIGlzIHVzZWQsIGV2ZW4gaWYgcm93cyBhcmUgZGlzY2FyZGVkLgpUaGlzIGZlYXR1 cmUgaXMgcGFydGljdWxhcmx5IHVzZWZ1bCB3aGVuIHByb2Nlc3NpbmcgbWFsZm9ybWVkIGZp bGVzCmZyZXF1ZW50bHksIHdoZXJlIGEgZmxvb2Qgb2YgTk9USUNFIG1lc3NhZ2VzIGNhbiBi ZSB1bmRlc2lyYWJsZS4KCkZvciBleGFtcGxlLCB3aGVuIGZyZXF1ZW50bHkgbG9hZGluZyBt YWxmb3JtZWQgZmlsZXMgdmlhIHRoZSBDT1BZIGNvbW1hbmQKb3IgcXVlcnlpbmcgZm9yZWln biB0YWJsZXMgdXNpbmcgZmlsZV9mZHcgKHdpdGggYW4gdXBjb21pbmcgcGF0Y2ggdG8KYWRk IG9uX2Vycm9yIHN1cHBvcnQgZm9yIGZpbGVfZmR3KSwgdXNlcnMgbWF5IHByZWZlciB0byBz dXBwcmVzcwp0aGVzZSBtZXNzYWdlcyB0byByZWR1Y2UgbG9nIG5vaXNlIGFuZCBpbXByb3Zl IGNsYXJpdHkuCgpBdXRob3I6IEF0c3VzaGkgVG9yaWtvc2hpClJldmlld2VkLWJ5OiBNYXNh aGlrbyBTYXdhZGEsIEZ1amlpIE1hc2FvCkRpc2N1c3Npb246IGh0dHBzOi8vcG9zdGdyLmVz L20vYWI1OWRhZDEwNDkwZWEzNzM0Y2YwMjJiMTZjMjRjZmRAb3NzLm50dGRhdGEuY29tCi0t LQogZG9jL3NyYy9zZ21sL3JlZi9jb3B5LnNnbWwgICAgICAgICAgfCAxMCArKysrKysrLS0t CiBzcmMvYmFja2VuZC9jb21tYW5kcy9jb3B5LmMgICAgICAgICB8ICA0ICsrKy0KIHNyYy9i YWNrZW5kL2NvbW1hbmRzL2NvcHlmcm9tLmMgICAgIHwgIDMgKystCiBzcmMvYmluL3BzcWwv dGFiLWNvbXBsZXRlLmMgICAgICAgICB8ICAyICstCiBzcmMvaW5jbHVkZS9jb21tYW5kcy9j b3B5LmggICAgICAgICB8ICA0ICsrKy0KIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvY29w eTIub3V0IHwgIDQgKysrLQogc3JjL3Rlc3QvcmVncmVzcy9zcWwvY29weTIuc3FsICAgICAg fCAgNCArKysrCiA3IGZpbGVzIGNoYW5nZWQsIDIzIGluc2VydGlvbnMoKyksIDggZGVsZXRp b25zKC0pCgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9jb3B5LnNnbWwgYi9kb2Mv c3JjL3NnbWwvcmVmL2NvcHkuc2dtbAppbmRleCBmZGJkMjBiYzUwLi41OGExNGJjNDI3IDEw MDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVmL2NvcHkuc2dtbAorKysgYi9kb2Mvc3JjL3Nn bWwvcmVmL2NvcHkuc2dtbApAQCAtNDA3LDYgKzQwNyw4IEBAIENPUFkgeyA8cmVwbGFjZWFi bGUgY2xhc3M9InBhcmFtZXRlciI+dGFibGVfbmFtZTwvcmVwbGFjZWFibGU+IFsgKCA8cmVw bGFjZWFibGUKICAgICAgIDxsaXRlcmFsPnZlcmJvc2U8L2xpdGVyYWw+LCBhIDxsaXRlcmFs Pk5PVElDRTwvbGl0ZXJhbD4gbWVzc2FnZQogICAgICAgY29udGFpbmluZyB0aGUgbGluZSBv ZiB0aGUgaW5wdXQgZmlsZSBhbmQgdGhlIGNvbHVtbiBuYW1lIHdob3NlIGlucHV0CiAgICAg ICBjb252ZXJzaW9uIGhhcyBmYWlsZWQgaXMgZW1pdHRlZCBmb3IgZWFjaCBkaXNjYXJkZWQg cm93LgorICAgICAgV2hlbiBpdCBpcyBzZXQgdG8gPGxpdGVyYWw+c2lsZW50PC9saXRlcmFs Piwgbm8gbWVzc2FnZSBpcyBlbWl0dGVkCisgICAgICByZWdhcmRpbmcgaWdub3JlZCByb3dz LgogICAgICA8L3BhcmE+CiAgICAgPC9saXN0aXRlbT4KICAgIDwvdmFybGlzdGVudHJ5PgpA QCAtNDI4LDkgKzQzMCwxMSBAQCBDT1BZIHsgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0 ZXIiPnRhYmxlX25hbWU8L3JlcGxhY2VhYmxlPiBbICggPHJlcGxhY2VhYmxlCiAgICAgPGxp c3RpdGVtPgogICAgICA8cGFyYT4KICAgICAgIFNwZWNpZnkgdGhlIGFtb3VudCBvZiBtZXNz YWdlcyBlbWl0dGVkIGJ5IGEgPGNvbW1hbmQ+Q09QWTwvY29tbWFuZD4KLSAgICAgIGNvbW1h bmQ6IDxsaXRlcmFsPmRlZmF1bHQ8L2xpdGVyYWw+IG9yIDxsaXRlcmFsPnZlcmJvc2U8L2xp dGVyYWw+LiBJZgotICAgICAgPGxpdGVyYWw+dmVyYm9zZTwvbGl0ZXJhbD4gaXMgc3BlY2lm aWVkLCBhZGRpdGlvbmFsIG1lc3NhZ2VzIGFyZSBlbWl0dGVkCi0gICAgICBkdXJpbmcgcHJv Y2Vzc2luZy4KKyAgICAgIGNvbW1hbmQ6IDxsaXRlcmFsPmRlZmF1bHQ8L2xpdGVyYWw+LCA8 bGl0ZXJhbD52ZXJib3NlPC9saXRlcmFsPiwgb3IKKyAgICAgIDxsaXRlcmFsPnNpbGVudDwv bGl0ZXJhbD4uCisgICAgICBJZiA8bGl0ZXJhbD52ZXJib3NlPC9saXRlcmFsPiBpcyBzcGVj aWZpZWQsIGFkZGl0aW9uYWwgbWVzc2FnZXMgYXJlCisgICAgICBlbWl0dGVkIGR1cmluZyBw cm9jZXNzaW5nLgorICAgICAgPGxpdGVyYWw+c2lsZW50PC9saXRlcmFsPiBzdXBwcmVzc2Vz IGJvdGggdmVyYm9zZSBhbmQgZGVmYXVsdCBtZXNzYWdlcy4KICAgICAgPC9wYXJhPgogICAg ICA8cGFyYT4KICAgICAgIFRoaXMgaXMgY3VycmVudGx5IHVzZWQgaW4gPGNvbW1hbmQ+Q09Q WSBGUk9NPC9jb21tYW5kPiBjb21tYW5kIHdoZW4KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5k L2NvbW1hbmRzL2NvcHkuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2NvcHkuYwppbmRleCAz YmI1NzlhM2E0Li4wM2ViN2E0ZWJhIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5k cy9jb3B5LmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvY29weS5jCkBAIC00MjcsOSAr NDI3LDExIEBAIGRlZkdldENvcHlMb2dWZXJib3NpdHlDaG9pY2UoRGVmRWxlbSAqZGVmLCBQ YXJzZVN0YXRlICpwc3RhdGUpCiAJY2hhcgkgICAqc3ZhbDsKIAogCS8qCi0JICogQWxsb3cg ImRlZmF1bHQiLCBvciAidmVyYm9zZSIgdmFsdWVzLgorCSAqIEFsbG93ICJzaWxlbnQiLCAi ZGVmYXVsdCIsIG9yICJ2ZXJib3NlIiB2YWx1ZXMuCiAJICovCiAJc3ZhbCA9IGRlZkdldFN0 cmluZyhkZWYpOworCWlmIChwZ19zdHJjYXNlY21wKHN2YWwsICJzaWxlbnQiKSA9PSAwKQor CQlyZXR1cm4gQ09QWV9MT0dfVkVSQk9TSVRZX1NJTEVOVDsKIAlpZiAocGdfc3RyY2FzZWNt cChzdmFsLCAiZGVmYXVsdCIpID09IDApCiAJCXJldHVybiBDT1BZX0xPR19WRVJCT1NJVFlf REVGQVVMVDsKIAlpZiAocGdfc3RyY2FzZWNtcChzdmFsLCAidmVyYm9zZSIpID09IDApCmRp ZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy9jb3B5ZnJvbS5jIGIvc3JjL2JhY2tl bmQvY29tbWFuZHMvY29weWZyb20uYwppbmRleCAyZDM0NjI5MTNlLi40Nzg3OTk5NGY3IDEw MDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy9jb3B5ZnJvbS5jCisrKyBiL3NyYy9i YWNrZW5kL2NvbW1hbmRzL2NvcHlmcm9tLmMKQEAgLTEzMjAsNyArMTMyMCw4IEBAIENvcHlG cm9tKENvcHlGcm9tU3RhdGUgY3N0YXRlKQogCWVycm9yX2NvbnRleHRfc3RhY2sgPSBlcnJj YWxsYmFjay5wcmV2aW91czsKIAogCWlmIChjc3RhdGUtPm9wdHMub25fZXJyb3IgIT0gQ09Q WV9PTl9FUlJPUl9TVE9QICYmCi0JCWNzdGF0ZS0+bnVtX2Vycm9ycyA+IDApCisJCWNzdGF0 ZS0+bnVtX2Vycm9ycyA+IDAgJiYKKwkJY3N0YXRlLT5vcHRzLmxvZ192ZXJib3NpdHkgPj0g Q09QWV9MT0dfVkVSQk9TSVRZX0RFRkFVTFQpCiAJCWVyZXBvcnQoTk9USUNFLAogCQkJCWVy cm1zZ19wbHVyYWwoIiVsbHUgcm93IHdhcyBza2lwcGVkIGR1ZSB0byBkYXRhIHR5cGUgaW5j b21wYXRpYmlsaXR5IiwKIAkJCQkJCQkgICIlbGx1IHJvd3Mgd2VyZSBza2lwcGVkIGR1ZSB0 byBkYXRhIHR5cGUgaW5jb21wYXRpYmlsaXR5IiwKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcHNx bC90YWItY29tcGxldGUuYyBiL3NyYy9iaW4vcHNxbC90YWItY29tcGxldGUuYwppbmRleCBh N2NjZGU2ZDdkLi42NTMwYjBmMWNlIDEwMDY0NAotLS0gYS9zcmMvYmluL3BzcWwvdGFiLWNv bXBsZXRlLmMKKysrIGIvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5jCkBAIC0yOTE2LDcg KzI5MTYsNyBAQCBwc3FsX2NvbXBsZXRpb24oY29uc3QgY2hhciAqdGV4dCwgaW50IHN0YXJ0 LCBpbnQgZW5kKQogCiAJLyogQ29tcGxldGUgQ09QWSA8c3RoPiBGUk9NIGZpbGVuYW1lIFdJ VEggKExPR19WRVJCT1NJVFkgKi8KIAllbHNlIGlmIChNYXRjaGVzKCJDT1BZfFxcY29weSIs IE1hdGNoQW55LCAiRlJPTXxUTyIsIE1hdGNoQW55LCAiV0lUSCIsICIoIiwgIkxPR19WRVJC T1NJVFkiKSkKLQkJQ09NUExFVEVfV0lUSCgiZGVmYXVsdCIsICJ2ZXJib3NlIik7CisJCUNP TVBMRVRFX1dJVEgoInNpbGVudCIsICJkZWZhdWx0IiwgInZlcmJvc2UiKTsKIAogCS8qIENv bXBsZXRlIENPUFkgPHN0aD4gRlJPTSA8c3RoPiBXSVRIICg8b3B0aW9ucz4pICovCiAJZWxz ZSBpZiAoTWF0Y2hlcygiQ09QWXxcXGNvcHkiLCBNYXRjaEFueSwgIkZST00iLCBNYXRjaEFu eSwgIldJVEgiLCBNYXRjaEFueSkpCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jb21tYW5k cy9jb3B5LmggYi9zcmMvaW5jbHVkZS9jb21tYW5kcy9jb3B5LmgKaW5kZXggMTQxZmQ0OGRj MS4uNmY2NGQ5N2ZkZCAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY29tbWFuZHMvY29weS5o CisrKyBiL3NyYy9pbmNsdWRlL2NvbW1hbmRzL2NvcHkuaApAQCAtNDUsNyArNDUsOSBAQCB0 eXBlZGVmIGVudW0gQ29weU9uRXJyb3JDaG9pY2UKICAqLwogdHlwZWRlZiBlbnVtIENvcHlM b2dWZXJib3NpdHlDaG9pY2UKIHsKLQlDT1BZX0xPR19WRVJCT1NJVFlfREVGQVVMVCA9IDAs IC8qIGxvZ3Mgbm8gYWRkaXRpb25hbCBtZXNzYWdlcywgZGVmYXVsdCAqLworCUNPUFlfTE9H X1ZFUkJPU0lUWV9TSUxFTlQgPSAtMSwgLyogbG9ncyBub25lICovCisJQ09QWV9MT0dfVkVS Qk9TSVRZX0RFRkFVTFQgPSAwLCAvKiBsb2dzIG5vIGFkZGl0aW9uYWwgbWVzc2FnZXMuIEFz IHRoaXMgaXMKKwkJCQkJCQkJCSAqIHRoZSBkZWZhdWx0LCBhc3NpZ24gMCAqLwogCUNPUFlf TE9HX1ZFUkJPU0lUWV9WRVJCT1NFLCAvKiBsb2dzIGFkZGl0aW9uYWwgbWVzc2FnZXMgKi8K IH0gQ29weUxvZ1ZlcmJvc2l0eUNob2ljZTsKIApkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVn cmVzcy9leHBlY3RlZC9jb3B5Mi5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2Nv cHkyLm91dAppbmRleCA2MWExOWNkYzRjLi40ZTc1Mjk3N2I1IDEwMDY0NAotLS0gYS9zcmMv dGVzdC9yZWdyZXNzL2V4cGVjdGVkL2NvcHkyLm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNz L2V4cGVjdGVkL2NvcHkyLm91dApAQCAtNzYwLDYgKzc2MCw3IEBAIENPUFkgY2hlY2tfaWdu X2VycjIgRlJPTSBTVERJTiBXSVRIIChvbl9lcnJvciBpZ25vcmUsIGxvZ192ZXJib3NpdHkg dmVyYm9zZSk7CiBOT1RJQ0U6ICBza2lwcGluZyByb3cgZHVlIHRvIGRhdGEgdHlwZSBpbmNv bXBhdGliaWxpdHkgYXQgbGluZSAyIGZvciBjb2x1bW4gImwiOiBudWxsIGlucHV0CiBDT05U RVhUOiAgQ09QWSBjaGVja19pZ25fZXJyMgogTk9USUNFOiAgMSByb3cgd2FzIHNraXBwZWQg ZHVlIHRvIGRhdGEgdHlwZSBpbmNvbXBhdGliaWxpdHkKK0NPUFkgY2hlY2tfaWduX2VycjIg RlJPTSBTVERJTiBXSVRIIChvbl9lcnJvciBpZ25vcmUsIGxvZ192ZXJib3NpdHkgc2lsZW50 KTsKIC0tIHJlc2V0IGNvbnRleHQgY2hvaWNlCiBcc2V0IFNIT1dfQ09OVEVYVCBlcnJvcnMK IFNFTEVDVCAqIEZST00gY2hlY2tfaWduX2VycjsKQEAgLTc3NCw3ICs3NzUsOCBAQCBTRUxF Q1QgKiBGUk9NIGNoZWNrX2lnbl9lcnIyOwogIG4gfCAgbSAgfCBrIHwgICBsICAgCiAtLS0r LS0tLS0rLS0tKy0tLS0tLS0KICAxIHwgezF9IHwgMSB8ICdmb28nCi0oMSByb3cpCisgMyB8 IHszfSB8IDMgfCAnYmFyJworKDIgcm93cykKIAogLS0gdGVzdCBkYXRhdHlwZSBlcnJvciB0 aGF0IGNhbid0IGJlIGhhbmRsZWQgYXMgc29mdDogc2hvdWxkIGZhaWwKIENSRUFURSBUQUJM RSBoYXJkX2Vycihmb28gd2lkZ2V0KTsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mv c3FsL2NvcHkyLnNxbCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2NvcHkyLnNxbAppbmRleCA4 YjE0OTYyMTk0Li5mYTZhYTE3MzQ0IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL3Nx bC9jb3B5Mi5zcWwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvY29weTIuc3FsCkBAIC01 MzMsNiArNTMzLDEwIEBAIENPUFkgY2hlY2tfaWduX2VycjIgRlJPTSBTVERJTiBXSVRIIChv bl9lcnJvciBpZ25vcmUsIGxvZ192ZXJib3NpdHkgdmVyYm9zZSk7CiAxCXsxfQkxCSdmb28n CiAyCXsyfQkyCVxOCiBcLgorQ09QWSBjaGVja19pZ25fZXJyMiBGUk9NIFNURElOIFdJVEgg KG9uX2Vycm9yIGlnbm9yZSwgbG9nX3ZlcmJvc2l0eSBzaWxlbnQpOworMwl7M30JMwknYmFy JworNAl7NH0JNAlcTgorXC4KIAogLS0gcmVzZXQgY29udGV4dCBjaG9pY2UKIFxzZXQgU0hP V19DT05URVhUIGVycm9ycwotLSAKMi40NS4yCgo= --------------Th8I4dyyjLvRcdBj8gbAC7dp Content-Type: text/plain; charset=UTF-8; name="v7-0002-file_fdw-Add-on_error-and-log_verbosity-options-t.patch" Content-Disposition: attachment; filename*0="v7-0002-file_fdw-Add-on_error-and-log_verbosity-options-t.pa"; filename*1="tch" Content-Transfer-Encoding: base64 RnJvbSBmNDQ1OGEzNjY5ODk5N2RhMjNmODEzZjg1OGU2NjgwYzNlMWRhZWZhIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBGdWppaSBNYXNhbyA8ZnVqaWlAcG9zdGdyZXNxbC5v cmc+CkRhdGU6IE1vbiwgMzAgU2VwIDIwMjQgMjM6MDU6MjYgKzA5MDAKU3ViamVjdDogW1BB VENIIHY3IDIvM10gZmlsZV9mZHc6IEFkZCBvbl9lcnJvciBhbmQgbG9nX3ZlcmJvc2l0eSBv cHRpb25zIHRvCiBmaWxlX2Zkdy4KCkluIHYxNywgdGhlIG9uX2Vycm9yIGFuZCBsb2dfdmVy Ym9zaXR5IG9wdGlvbnMgd2VyZSBpbnRyb2R1Y2VkIGZvcgp0aGUgQ09QWSBjb21tYW5kLiBU aGlzIGNvbW1pdCBleHRlbmRzIHN1cHBvcnQgZm9yIHRoZXNlIG9wdGlvbnMKdG8gZmlsZV9m ZHcuCgpTZXR0aW5nIG9uX2Vycm9yID0gJ2lnbm9yZScgZm9yIGEgZmlsZV9mZHcgZm9yZWln biB0YWJsZSBhbGxvd3MgdXNlcnMKdG8gcXVlcnkgaXQgd2l0aG91dCBlcnJvcnMsIGV2ZW4g d2hlbiB0aGUgaW5wdXQgZmlsZSBjb250YWlucwptYWxmb3JtZWQgcm93cywgYnkgc2tpcHBp bmcgdGhlIHByb2JsZW1hdGljIHJvd3MuCgpCb3RoIG9uX2Vycm9yIGFuZCBsb2dfdmVyYm9z aXR5IG9wdGlvbnMgYXBwbHkgdG8gU0VMRUNUIGFuZCBBTkFMWVpFCm9wZXJhdGlvbnMgb24g ZmlsZV9mZHcgZm9yZWlnbiB0YWJsZXMuCgpBdXRob3I6IEF0c3VzaGkgVG9yaWtvc2hpClJl dmlld2VkLWJ5OiBNYXNhaGlrbyBTYXdhZGEsIEZ1amlpIE1hc2FvCkRpc2N1c3Npb246IGh0 dHBzOi8vcG9zdGdyLmVzL20vYWI1OWRhZDEwNDkwZWEzNzM0Y2YwMjJiMTZjMjRjZmRAb3Nz Lm50dGRhdGEuY29tCi0tLQogY29udHJpYi9maWxlX2Zkdy9leHBlY3RlZC9maWxlX2Zkdy5v dXQgfCAgMTkgKysrKysKIGNvbnRyaWIvZmlsZV9mZHcvZmlsZV9mZHcuYyAgICAgICAgICAg IHwgMTA3ICsrKysrKysrKysrKysrKysrKysrKy0tLS0KIGNvbnRyaWIvZmlsZV9mZHcvc3Fs L2ZpbGVfZmR3LnNxbCAgICAgIHwgICA3ICsrCiBkb2Mvc3JjL3NnbWwvZmlsZS1mZHcuc2dt bCAgICAgICAgICAgICB8ICAyMyArKysrKysKIDQgZmlsZXMgY2hhbmdlZCwgMTQwIGluc2Vy dGlvbnMoKyksIDE2IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2NvbnRyaWIvZmlsZV9m ZHcvZXhwZWN0ZWQvZmlsZV9mZHcub3V0IGIvY29udHJpYi9maWxlX2Zkdy9leHBlY3RlZC9m aWxlX2Zkdy5vdXQKaW5kZXggODZjMTQ4YTg2Yi4uNTkzZmRjNzgyZSAxMDA2NDQKLS0tIGEv Y29udHJpYi9maWxlX2Zkdy9leHBlY3RlZC9maWxlX2Zkdy5vdXQKKysrIGIvY29udHJpYi9m aWxlX2Zkdy9leHBlY3RlZC9maWxlX2Zkdy5vdXQKQEAgLTIwNiw2ICsyMDYsMjUgQEAgU0VM RUNUICogRlJPTSBhZ2dfY3N2IGMgSk9JTiBhZ2dfdGV4dCB0IE9OICh0LmEgPSBjLmEpIE9S REVSIEJZIGMuYTsKIFNFTEVDVCAqIEZST00gYWdnX2JhZDsgICAgICAgICAgICAgICAtLSBF UlJPUgogRVJST1I6ICBpbnZhbGlkIGlucHV0IHN5bnRheCBmb3IgdHlwZSByZWFsOiAiYWFh IgogQ09OVEVYVDogIENPUFkgYWdnX2JhZCwgbGluZSAzLCBjb2x1bW4gYjogImFhYSIKKy0t IG9uX2Vycm9yIGFuZCBsb2dfdmVyYm9zaXR5IHRlc3RzCitBTFRFUiBGT1JFSUdOIFRBQkxF IGFnZ19iYWQgT1BUSU9OUyAoQUREIG9uX2Vycm9yICdpZ25vcmUnKTsKK1NFTEVDVCAqIEZS T00gYWdnX2JhZDsKK05PVElDRTogIDEgcm93IHdhcyBza2lwcGVkIGR1ZSB0byBkYXRhIHR5 cGUgaW5jb21wYXRpYmlsaXR5CisgIGEgIHwgICBiICAgIAorLS0tLS0rLS0tLS0tLS0KKyAx MDAgfCA5OS4wOTcKKyAgNDIgfCAzMjQuNzgKKygyIHJvd3MpCisKK0FMVEVSIEZPUkVJR04g VEFCTEUgYWdnX2JhZCBPUFRJT05TIChBREQgbG9nX3ZlcmJvc2l0eSAnc2lsZW50Jyk7CitT RUxFQ1QgKiBGUk9NIGFnZ19iYWQ7CisgIGEgIHwgICBiICAgIAorLS0tLS0rLS0tLS0tLS0K KyAxMDAgfCA5OS4wOTcKKyAgNDIgfCAzMjQuNzgKKygyIHJvd3MpCisKK0FOQUxZWkUgYWdn X2JhZDsKIC0tIG1pc2MgcXVlcnkgdGVzdHMKIFx0IG9uCiBTRUxFQ1QgZXhwbGFpbl9maWx0 ZXIoJ0VYUExBSU4gKFZFUkJPU0UsIENPU1RTIEZBTFNFKSBTRUxFQ1QgKiBGUk9NIGFnZ19j c3YnKTsKZGlmZiAtLWdpdCBhL2NvbnRyaWIvZmlsZV9mZHcvZmlsZV9mZHcuYyBiL2NvbnRy aWIvZmlsZV9mZHcvZmlsZV9mZHcuYwppbmRleCBkMTY4MjFmOGUxLi4wNDMyMDRjM2U3IDEw MDY0NAotLS0gYS9jb250cmliL2ZpbGVfZmR3L2ZpbGVfZmR3LmMKKysrIGIvY29udHJpYi9m aWxlX2Zkdy9maWxlX2Zkdy5jCkBAIC0yMiw2ICsyMiw3IEBACiAjaW5jbHVkZSAiY2F0YWxv Zy9wZ19hdXRoaWQuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX2ZvcmVpZ25fdGFibGUuaCIK ICNpbmNsdWRlICJjb21tYW5kcy9jb3B5LmgiCisjaW5jbHVkZSAiY29tbWFuZHMvY29weWZy b21faW50ZXJuYWwuaCIKICNpbmNsdWRlICJjb21tYW5kcy9kZWZyZW0uaCIKICNpbmNsdWRl ICJjb21tYW5kcy9leHBsYWluLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvdmFjdXVtLmgiCkBA IC03NCw2ICs3NSw4IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgRmlsZUZkd09wdGlvbiB2YWxp ZF9vcHRpb25zW10gPSB7CiAJeyJudWxsIiwgRm9yZWlnblRhYmxlUmVsYXRpb25JZH0sCiAJ eyJkZWZhdWx0IiwgRm9yZWlnblRhYmxlUmVsYXRpb25JZH0sCiAJeyJlbmNvZGluZyIsIEZv cmVpZ25UYWJsZVJlbGF0aW9uSWR9LAorCXsib25fZXJyb3IiLCBGb3JlaWduVGFibGVSZWxh dGlvbklkfSwKKwl7ImxvZ192ZXJib3NpdHkiLCBGb3JlaWduVGFibGVSZWxhdGlvbklkfSwK IAl7ImZvcmNlX25vdF9udWxsIiwgQXR0cmlidXRlUmVsYXRpb25JZH0sCiAJeyJmb3JjZV9u dWxsIiwgQXR0cmlidXRlUmVsYXRpb25JZH0sCiAKQEAgLTcyMywzOCArNzI2LDc0IEBAIGZp bGVJdGVyYXRlRm9yZWlnblNjYW4oRm9yZWlnblNjYW5TdGF0ZSAqbm9kZSkKIAlGaWxlRmR3 RXhlY3V0aW9uU3RhdGUgKmZlc3RhdGUgPSAoRmlsZUZkd0V4ZWN1dGlvblN0YXRlICopIG5v ZGUtPmZkd19zdGF0ZTsKIAlFU3RhdGUJICAgKmVzdGF0ZSA9IENyZWF0ZUV4ZWN1dG9yU3Rh dGUoKTsKIAlFeHByQ29udGV4dCAqZWNvbnRleHQ7Ci0JTWVtb3J5Q29udGV4dCBvbGRjb250 ZXh0OworCU1lbW9yeUNvbnRleHQgb2xkY29udGV4dCA9IEN1cnJlbnRNZW1vcnlDb250ZXh0 OwogCVR1cGxlVGFibGVTbG90ICpzbG90ID0gbm9kZS0+c3Muc3NfU2NhblR1cGxlU2xvdDsK LQlib29sCQlmb3VuZDsKKwlDb3B5RnJvbVN0YXRlIGNzdGF0ZSA9IGZlc3RhdGUtPmNzdGF0 ZTsKIAlFcnJvckNvbnRleHRDYWxsYmFjayBlcnJjYWxsYmFjazsKIAogCS8qIFNldCB1cCBj YWxsYmFjayB0byBpZGVudGlmeSBlcnJvciBsaW5lIG51bWJlci4gKi8KIAllcnJjYWxsYmFj ay5jYWxsYmFjayA9IENvcHlGcm9tRXJyb3JDYWxsYmFjazsKLQllcnJjYWxsYmFjay5hcmcg PSAodm9pZCAqKSBmZXN0YXRlLT5jc3RhdGU7CisJZXJyY2FsbGJhY2suYXJnID0gKHZvaWQg KikgY3N0YXRlOwogCWVycmNhbGxiYWNrLnByZXZpb3VzID0gZXJyb3JfY29udGV4dF9zdGFj azsKIAllcnJvcl9jb250ZXh0X3N0YWNrID0gJmVycmNhbGxiYWNrOwogCiAJLyoKLQkgKiBU aGUgcHJvdG9jb2wgZm9yIGxvYWRpbmcgYSB2aXJ0dWFsIHR1cGxlIGludG8gYSBzbG90IGlz IGZpcnN0Ci0JICogRXhlY0NsZWFyVHVwbGUsIHRoZW4gZmlsbCB0aGUgdmFsdWVzL2lzbnVs bCBhcnJheXMsIHRoZW4KLQkgKiBFeGVjU3RvcmVWaXJ0dWFsVHVwbGUuICBJZiB3ZSBkb24n dCBmaW5kIGFub3RoZXIgcm93IGluIHRoZSBmaWxlLCB3ZQotCSAqIGp1c3Qgc2tpcCB0aGUg bGFzdCBzdGVwLCBsZWF2aW5nIHRoZSBzbG90IGVtcHR5IGFzIHJlcXVpcmVkLgotCSAqCiAJ ICogV2UgcGFzcyBFeHByQ29udGV4dCBiZWNhdXNlIHRoZXJlIG1pZ2h0IGJlIGEgdXNlIG9m IHRoZSBERUZBVUxUIG9wdGlvbgogCSAqIGluIENPUFkgRlJPTSwgc28gd2UgbWF5IG5lZWQg dG8gZXZhbHVhdGUgZGVmYXVsdCBleHByZXNzaW9ucy4KIAkgKi8KLQlFeGVjQ2xlYXJUdXBs ZShzbG90KTsKIAllY29udGV4dCA9IEdldFBlclR1cGxlRXhwckNvbnRleHQoZXN0YXRlKTsK IAorcmV0cnk6CisKIAkvKgogCSAqIERFRkFVTFQgZXhwcmVzc2lvbnMgbmVlZCB0byBiZSBl dmFsdWF0ZWQgaW4gYSBwZXItdHVwbGUgY29udGV4dCwgc28KIAkgKiBzd2l0Y2ggaW4gY2Fz ZSB3ZSBhcmUgZG9pbmcgdGhhdC4KIAkgKi8KLQlvbGRjb250ZXh0ID0gTWVtb3J5Q29udGV4 dFN3aXRjaFRvKEdldFBlclR1cGxlTWVtb3J5Q29udGV4dChlc3RhdGUpKTsKLQlmb3VuZCA9 IE5leHRDb3B5RnJvbShmZXN0YXRlLT5jc3RhdGUsIGVjb250ZXh0LAotCQkJCQkJIHNsb3Qt PnR0c192YWx1ZXMsIHNsb3QtPnR0c19pc251bGwpOwotCWlmIChmb3VuZCkKKwlNZW1vcnlD b250ZXh0U3dpdGNoVG8oR2V0UGVyVHVwbGVNZW1vcnlDb250ZXh0KGVzdGF0ZSkpOworCisJ LyoKKwkgKiBUaGUgcHJvdG9jb2wgZm9yIGxvYWRpbmcgYSB2aXJ0dWFsIHR1cGxlIGludG8g YSBzbG90IGlzIGZpcnN0CisJICogRXhlY0NsZWFyVHVwbGUsIHRoZW4gZmlsbCB0aGUgdmFs dWVzL2lzbnVsbCBhcnJheXMsIHRoZW4KKwkgKiBFeGVjU3RvcmVWaXJ0dWFsVHVwbGUuICBJ ZiB3ZSBkb24ndCBmaW5kIGFub3RoZXIgcm93IGluIHRoZSBmaWxlLCB3ZQorCSAqIGp1c3Qg c2tpcCB0aGUgbGFzdCBzdGVwLCBsZWF2aW5nIHRoZSBzbG90IGVtcHR5IGFzIHJlcXVpcmVk LgorCSAqCisJICovCisJRXhlY0NsZWFyVHVwbGUoc2xvdCk7CisKKwlpZiAoTmV4dENvcHlG cm9tKGNzdGF0ZSwgZWNvbnRleHQsIHNsb3QtPnR0c192YWx1ZXMsIHNsb3QtPnR0c19pc251 bGwpKQorCXsKKwkJaWYgKGNzdGF0ZS0+b3B0cy5vbl9lcnJvciA9PSBDT1BZX09OX0VSUk9S X0lHTk9SRSAmJgorCQkJY3N0YXRlLT5lc2NvbnRleHQtPmVycm9yX29jY3VycmVkKQorCQl7 CisJCQkvKgorCQkJICogU29mdCBlcnJvciBvY2N1cnJlZCwgc2tpcCB0aGlzIHR1cGxlIGFu ZCBqdXN0IG1ha2UKKwkJCSAqIEVycm9yU2F2ZUNvbnRleHQgcmVhZHkgZm9yIHRoZSBuZXh0 IE5leHRDb3B5RnJvbS4gU2luY2Ugd2UKKwkJCSAqIGRvbid0IHNldCBkZXRhaWxzX3dhbnRl ZCBhbmQgZXJyb3JfZGF0YSBpcyBub3QgdG8gYmUgZmlsbGVkLAorCQkJICoganVzdCByZXNl dHRpbmcgZXJyb3Jfb2NjdXJyZWQgaXMgZW5vdWdoLgorCQkJICovCisJCQljc3RhdGUtPmVz Y29udGV4dC0+ZXJyb3Jfb2NjdXJyZWQgPSBmYWxzZTsKKworCQkJLyogU3dpdGNoIGJhY2sg dG8gb3JpZ2luYWwgbWVtb3J5IGNvbnRleHQgKi8KKwkJCU1lbW9yeUNvbnRleHRTd2l0Y2hU byhvbGRjb250ZXh0KTsKKworCQkJLyoKKwkJCSAqIE1ha2Ugc3VyZSB3ZSBhcmUgaW50ZXJy dXB0aWJsZSB3aGlsZSByZXBlYXRlZGx5IGNhbGxpbmcKKwkJCSAqIE5leHRDb3B5RnJvbSgp IHVudGlsIG5vIHNvZnQgZXJyb3Igb2NjdXJzLgorCQkJICovCisJCQlDSEVDS19GT1JfSU5U RVJSVVBUUygpOworCisJCQkvKgorCQkJICogUmVzZXQgdGhlIHBlci10dXBsZSBleHByY29u dGV4dCwgdG8gY2xlYW4tdXAgYWZ0ZXIgZXhwcmVzc2lvbgorCQkJICogZXZhbHVhdGlvbnMg ZXRjLgorCQkJICovCisJCQlSZXNldFBlclR1cGxlRXhwckNvbnRleHQoZXN0YXRlKTsKKwor CQkJLyogUmVwZWF0IE5leHRDb3B5RnJvbSgpIHVudGlsIG5vIHNvZnQgZXJyb3Igb2NjdXJz ICovCisJCQlnb3RvIHJldHJ5OworCQl9CisKIAkJRXhlY1N0b3JlVmlydHVhbFR1cGxlKHNs b3QpOworCX0KIAogCS8qIFN3aXRjaCBiYWNrIHRvIG9yaWdpbmFsIG1lbW9yeSBjb250ZXh0 ICovCiAJTWVtb3J5Q29udGV4dFN3aXRjaFRvKG9sZGNvbnRleHQpOwpAQCAtNzk2LDggKzgz NSwxOSBAQCBmaWxlRW5kRm9yZWlnblNjYW4oRm9yZWlnblNjYW5TdGF0ZSAqbm9kZSkKIAlG aWxlRmR3RXhlY3V0aW9uU3RhdGUgKmZlc3RhdGUgPSAoRmlsZUZkd0V4ZWN1dGlvblN0YXRl ICopIG5vZGUtPmZkd19zdGF0ZTsKIAogCS8qIGlmIGZlc3RhdGUgaXMgTlVMTCwgd2UgYXJl IGluIEVYUExBSU47IG5vdGhpbmcgdG8gZG8gKi8KLQlpZiAoZmVzdGF0ZSkKLQkJRW5kQ29w eUZyb20oZmVzdGF0ZS0+Y3N0YXRlKTsKKwlpZiAoIWZlc3RhdGUpCisJCXJldHVybjsKKwor CWlmIChmZXN0YXRlLT5jc3RhdGUtPm9wdHMub25fZXJyb3IgPT0gQ09QWV9PTl9FUlJPUl9J R05PUkUgJiYKKwkJZmVzdGF0ZS0+Y3N0YXRlLT5udW1fZXJyb3JzID4gMCAmJgorCQlmZXN0 YXRlLT5jc3RhdGUtPm9wdHMubG9nX3ZlcmJvc2l0eSA+PSBDT1BZX0xPR19WRVJCT1NJVFlf REVGQVVMVCkKKwkJZXJlcG9ydChOT1RJQ0UsCisJCQkJZXJybXNnX3BsdXJhbCgiJWxsdSBy b3cgd2FzIHNraXBwZWQgZHVlIHRvIGRhdGEgdHlwZSBpbmNvbXBhdGliaWxpdHkiLAorCQkJ CQkJCSAgIiVsbHUgcm93cyB3ZXJlIHNraXBwZWQgZHVlIHRvIGRhdGEgdHlwZSBpbmNvbXBh dGliaWxpdHkiLAorCQkJCQkJCSAgKHVuc2lnbmVkIGxvbmcgbG9uZykgZmVzdGF0ZS0+Y3N0 YXRlLT5udW1fZXJyb3JzLAorCQkJCQkJCSAgKHVuc2lnbmVkIGxvbmcgbG9uZykgZmVzdGF0 ZS0+Y3N0YXRlLT5udW1fZXJyb3JzKSk7CisKKwlFbmRDb3B5RnJvbShmZXN0YXRlLT5jc3Rh dGUpOwogfQogCiAvKgpAQCAtMTExMyw3ICsxMTYzLDggQEAgZXN0aW1hdGVfY29zdHMoUGxh bm5lckluZm8gKnJvb3QsIFJlbE9wdEluZm8gKmJhc2VyZWwsCiAgKiB3aGljaCBtdXN0IGhh dmUgYXQgbGVhc3QgdGFyZ3Jvd3MgZW50cmllcy4KICAqIFRoZSBhY3R1YWwgbnVtYmVyIG9m IHJvd3Mgc2VsZWN0ZWQgaXMgcmV0dXJuZWQgYXMgdGhlIGZ1bmN0aW9uIHJlc3VsdC4KICAq IFdlIGFsc28gY291bnQgdGhlIHRvdGFsIG51bWJlciBvZiByb3dzIGluIHRoZSBmaWxlIGFu ZCByZXR1cm4gaXQgaW50bwotICogKnRvdGFscm93cy4gIE5vdGUgdGhhdCAqdG90YWxkZWFk cm93cyBpcyBhbHdheXMgc2V0IHRvIDAuCisgKiAqdG90YWxyb3dzLiAgUm93cyBza2lwcGVk IGR1ZSB0byBvbl9lcnJvciA9ICdpZ25vcmUnIGFyZSBub3QgaW5jbHVkZWQKKyAqIGluIHRo aXMgY291bnQuICBOb3RlIHRoYXQgKnRvdGFsZGVhZHJvd3MgaXMgYWx3YXlzIHNldCB0byAw LgogICoKICAqIE5vdGUgdGhhdCB0aGUgcmV0dXJuZWQgbGlzdCBvZiByb3dzIGlzIG5vdCBh bHdheXMgaW4gb3JkZXIgYnkgcGh5c2ljYWwKICAqIHBvc2l0aW9uIGluIHRoZSBmaWxlLiAg VGhlcmVmb3JlLCBjb3JyZWxhdGlvbiBlc3RpbWF0ZXMgZGVyaXZlZCBsYXRlcgpAQCAtMTE5 MSw2ICsxMjQyLDIxIEBAIGZpbGVfYWNxdWlyZV9zYW1wbGVfcm93cyhSZWxhdGlvbiBvbmVy ZWwsIGludCBlbGV2ZWwsCiAJCWlmICghZm91bmQpCiAJCQlicmVhazsKIAorCQlpZiAoY3N0 YXRlLT5vcHRzLm9uX2Vycm9yID09IENPUFlfT05fRVJST1JfSUdOT1JFICYmCisJCQljc3Rh dGUtPmVzY29udGV4dC0+ZXJyb3Jfb2NjdXJyZWQpCisJCXsKKwkJCS8qCisJCQkgKiBTb2Z0 IGVycm9yIG9jY3VycmVkLCBza2lwIHRoaXMgdHVwbGUgYW5kIGp1c3QgbWFrZQorCQkJICog RXJyb3JTYXZlQ29udGV4dCByZWFkeSBmb3IgdGhlIG5leHQgTmV4dENvcHlGcm9tLiBTaW5j ZSB3ZQorCQkJICogZG9uJ3Qgc2V0IGRldGFpbHNfd2FudGVkIGFuZCBlcnJvcl9kYXRhIGlz IG5vdCB0byBiZSBmaWxsZWQsCisJCQkgKiBqdXN0IHJlc2V0dGluZyBlcnJvcl9vY2N1cnJl ZCBpcyBlbm91Z2guCisJCQkgKi8KKwkJCWNzdGF0ZS0+ZXNjb250ZXh0LT5lcnJvcl9vY2N1 cnJlZCA9IGZhbHNlOworCisJCQkvKiBSZXBlYXQgTmV4dENvcHlGcm9tKCkgdW50aWwgbm8g c29mdCBlcnJvciBvY2N1cnMgKi8KKwkJCWNvbnRpbnVlOworCQl9CisKIAkJLyoKIAkJICog VGhlIGZpcnN0IHRhcmdyb3dzIHNhbXBsZSByb3dzIGFyZSBzaW1wbHkgY29waWVkIGludG8g dGhlCiAJCSAqIHJlc2Vydm9pci4gIFRoZW4gd2Ugc3RhcnQgcmVwbGFjaW5nIHR1cGxlcyBp biB0aGUgc2FtcGxlIHVudGlsIHdlCkBAIC0xMjM2LDYgKzEzMDIsMTUgQEAgZmlsZV9hY3F1 aXJlX3NhbXBsZV9yb3dzKFJlbGF0aW9uIG9uZXJlbCwgaW50IGVsZXZlbCwKIAkvKiBDbGVh biB1cC4gKi8KIAlNZW1vcnlDb250ZXh0RGVsZXRlKHR1cGNvbnRleHQpOwogCisJaWYgKGNz dGF0ZS0+b3B0cy5vbl9lcnJvciA9PSBDT1BZX09OX0VSUk9SX0lHTk9SRSAmJgorCQljc3Rh dGUtPm51bV9lcnJvcnMgPiAwICYmCisJCWNzdGF0ZS0+b3B0cy5sb2dfdmVyYm9zaXR5ID49 IENPUFlfTE9HX1ZFUkJPU0lUWV9ERUZBVUxUKQorCQllcmVwb3J0KE5PVElDRSwKKwkJCQll cnJtc2dfcGx1cmFsKCIlbGx1IHJvdyB3YXMgc2tpcHBlZCBkdWUgdG8gZGF0YSB0eXBlIGlu Y29tcGF0aWJpbGl0eSIsCisJCQkJCQkJICAiJWxsdSByb3dzIHdlcmUgc2tpcHBlZCBkdWUg dG8gZGF0YSB0eXBlIGluY29tcGF0aWJpbGl0eSIsCisJCQkJCQkJICAodW5zaWduZWQgbG9u ZyBsb25nKSBjc3RhdGUtPm51bV9lcnJvcnMsCisJCQkJCQkJICAodW5zaWduZWQgbG9uZyBs b25nKSBjc3RhdGUtPm51bV9lcnJvcnMpKTsKKwogCUVuZENvcHlGcm9tKGNzdGF0ZSk7CiAK IAlwZnJlZSh2YWx1ZXMpOwpkaWZmIC0tZ2l0IGEvY29udHJpYi9maWxlX2Zkdy9zcWwvZmls ZV9mZHcuc3FsIGIvY29udHJpYi9maWxlX2Zkdy9zcWwvZmlsZV9mZHcuc3FsCmluZGV4IGYw NTQ4ZTE0ZTEuLmVkZDc3YzVjZDIgMTAwNjQ0Ci0tLSBhL2NvbnRyaWIvZmlsZV9mZHcvc3Fs L2ZpbGVfZmR3LnNxbAorKysgYi9jb250cmliL2ZpbGVfZmR3L3NxbC9maWxlX2Zkdy5zcWwK QEAgLTE1MCw2ICsxNTAsMTMgQEAgU0VMRUNUICogRlJPTSBhZ2dfY3N2IGMgSk9JTiBhZ2df dGV4dCB0IE9OICh0LmEgPSBjLmEpIE9SREVSIEJZIGMuYTsKIC0tIGVycm9yIGNvbnRleHQg cmVwb3J0IHRlc3RzCiBTRUxFQ1QgKiBGUk9NIGFnZ19iYWQ7ICAgICAgICAgICAgICAgLS0g RVJST1IKIAorLS0gb25fZXJyb3IgYW5kIGxvZ192ZXJib3NpdHkgdGVzdHMKK0FMVEVSIEZP UkVJR04gVEFCTEUgYWdnX2JhZCBPUFRJT05TIChBREQgb25fZXJyb3IgJ2lnbm9yZScpOwor U0VMRUNUICogRlJPTSBhZ2dfYmFkOworQUxURVIgRk9SRUlHTiBUQUJMRSBhZ2dfYmFkIE9Q VElPTlMgKEFERCBsb2dfdmVyYm9zaXR5ICdzaWxlbnQnKTsKK1NFTEVDVCAqIEZST00gYWdn X2JhZDsKK0FOQUxZWkUgYWdnX2JhZDsKKwogLS0gbWlzYyBxdWVyeSB0ZXN0cwogXHQgb24K IFNFTEVDVCBleHBsYWluX2ZpbHRlcignRVhQTEFJTiAoVkVSQk9TRSwgQ09TVFMgRkFMU0Up IFNFTEVDVCAqIEZST00gYWdnX2NzdicpOwpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL2Zp bGUtZmR3LnNnbWwgYi9kb2Mvc3JjL3NnbWwvZmlsZS1mZHcuc2dtbAppbmRleCBmMmYyYWY5 YTU5Li5iYjM1NzliMDc3IDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvZmlsZS1mZHcuc2dt bAorKysgYi9kb2Mvc3JjL3NnbWwvZmlsZS1mZHcuc2dtbApAQCAtMTI2LDYgKzEyNiwyOSBA QAogICAgPC9saXN0aXRlbT4KICAgPC92YXJsaXN0ZW50cnk+CiAKKyAgPHZhcmxpc3RlbnRy eT4KKyAgIDx0ZXJtPjxsaXRlcmFsPm9uX2Vycm9yPC9saXRlcmFsPjwvdGVybT4KKworICAg PGxpc3RpdGVtPgorICAgIDxwYXJhPgorICAgICBTcGVjaWZpZXMgaG93IHRvIGJlaGF2ZSB3 aGVuIGVuY291bnRlcmluZyBhbiBlcnJvciBjb252ZXJ0aW5nIGEgY29sdW1uJ3MKKyAgICAg aW5wdXQgdmFsdWUgaW50byBpdHMgZGF0YSB0eXBlLAorICAgICB0aGUgc2FtZSBhcyA8Y29t bWFuZD5DT1BZPC9jb21tYW5kPidzIDxsaXRlcmFsPk9OX0VSUk9SPC9saXRlcmFsPiBvcHRp b24uCisgICAgPC9wYXJhPgorICAgPC9saXN0aXRlbT4KKyAgPC92YXJsaXN0ZW50cnk+CisK KyAgPHZhcmxpc3RlbnRyeT4KKyAgIDx0ZXJtPjxsaXRlcmFsPmxvZ192ZXJib3NpdHk8L2xp dGVyYWw+PC90ZXJtPgorCisgICA8bGlzdGl0ZW0+CisgICAgPHBhcmE+CisgICAgIFNwZWNp ZmllcyB0aGUgYW1vdW50IG9mIG1lc3NhZ2VzIGVtaXR0ZWQgYnkgPGxpdGVyYWw+ZmlsZV9m ZHc8L2xpdGVyYWw+LAorICAgICB0aGUgc2FtZSBhcyA8Y29tbWFuZD5DT1BZPC9jb21tYW5k PidzIDxsaXRlcmFsPkxPR19WRVJCT1NJVFk8L2xpdGVyYWw+IG9wdGlvbi4KKyAgICA8L3Bh cmE+CisgICA8L2xpc3RpdGVtPgorICA8L3Zhcmxpc3RlbnRyeT4KKwogIDwvdmFyaWFibGVs aXN0PgogCiAgPHBhcmE+Ci0tIAoyLjQ1LjIKCg== --------------Th8I4dyyjLvRcdBj8gbAC7dp Content-Type: text/plain; charset=UTF-8; name="v7-0003-Refactor-CopyFrom-in-copyfrom.c.patch" Content-Disposition: attachment; filename="v7-0003-Refactor-CopyFrom-in-copyfrom.c.patch" Content-Transfer-Encoding: base64 RnJvbSA2YzEzMmRjNjAxZDk3OWVkOGZmYTRmYWRjMGFmOWE4YzczZjg4ZmNlIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBBdHN1c2hpIFRvcmlrb3NoaSA8dG9yaWtvc2hpYUBv c3MubnR0ZGF0YS5jb20+CkRhdGU6IFdlZCwgMjUgU2VwIDIwMjQgMjE6MzA6MjYgKzA5MDAK U3ViamVjdDogW1BBVENIIHY3IDMvM10gUmVmYWN0b3IgQ29weUZyb20oKSBpbiBjb3B5ZnJv bS5jLgpNSU1FLVZlcnNpb246IDEuMApDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJz ZXQ9VVRGLTgKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogOGJpdAoKVGhpcyBjb21taXQg c2ltcGxpZmllcyBDb3B5RnJvbSgpIGJ5IHJlbW92aW5nIHRoZSB1bm5lY2Vzc2FyeSBsb2Nh bCB2YXJpYWJsZQonc2tpcHBlZCcsIHdoaWNoIHRyYWNrZWQgdGhlIG51bWJlciBvZiByb3dz IHNraXBwZWQgZHVlIHRvIG9uX2Vycm9yID0gJ2lnbm9yZScuClRoYXQgY291bnQgaXMgYWxy ZWFkeSBoYW5kbGVkIGJ5IGNzdGF0ZS0+bnVtX2Vycm9ycywgc28gdGhlICdza2lwcGVkJyB2 YXJpYWJsZQp3YXMgcmVkdW5kYW50LgoKQWRkaXRpb25hbGx5LCB0aGUgY29uZGl0aW9uIG9u X2Vycm9yICE9IENPUFlfT05fRVJST1JfU1RPUCBpcyByZW1vdmVkLgpTaW5jZSBvbl9lcnJv ciA9PSBDT1BZX09OX0VSUk9SX0lHTk9SRSBpcyBhbHJlYWR5IGNoZWNrZWQsIGFuZCBvbl9l cnJvcgpvbmx5IGhhcyB0d28gdmFsdWVzIChpZ25vcmUgYW5kIHN0b3ApLCB0aGUgYWRkaXRp b25hbCBjaGVjayB3YXMgcmVkdW5kYW50CmFuZCBtYWRlIHRoZSBsb2dpYyBoYXJkZXIgdG8g cmVhZC4gU2VlbWluZ2x5IHRoaXMgd2FzIGludHJvZHVjZWQKaW4gcHJlcGFyYXRpb24gZm9y IGEgZnV0dXJlIHBhdGNoLCBidXQgdGhlIGN1cnJlbnQgY2hlY2tzIGRvbuKAmXQgb2ZmZXIK Y2xlYXIgdmFsdWUgYW5kIGhhdmUgYmVlbiByZW1vdmVkIHRvIGltcHJvdmUgcmVhZGFiaWxp dHkuCgpBdXRob3I6IEF0c3VzaGkgVG9yaWtvc2hpClJldmlld2VkLWJ5OiBNYXNhaGlrbyBT YXdhZGEsIEZ1amlpIE1hc2FvCkRpc2N1c3Npb246IGh0dHBzOi8vcG9zdGdyLmVzL20vYWI1 OWRhZDEwNDkwZWEzNzM0Y2YwMjJiMTZjMjRjZmRAb3NzLm50dGRhdGEuY29tCi0tLQogc3Jj L2JhY2tlbmQvY29tbWFuZHMvY29weWZyb20uYyB8IDIxICsrKysrKysrLS0tLS0tLS0tLS0t LQogMSBmaWxlIGNoYW5nZWQsIDggaW5zZXJ0aW9ucygrKSwgMTMgZGVsZXRpb25zKC0pCgpk aWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvY29weWZyb20uYyBiL3NyYy9iYWNr ZW5kL2NvbW1hbmRzL2NvcHlmcm9tLmMKaW5kZXggNDc4Nzk5OTRmNy4uOTEzOWE0MDc4NSAx MDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvY29weWZyb20uYworKysgYi9zcmMv YmFja2VuZC9jb21tYW5kcy9jb3B5ZnJvbS5jCkBAIC02NTcsNyArNjU3LDYgQEAgQ29weUZy b20oQ29weUZyb21TdGF0ZSBjc3RhdGUpCiAJQ29weU11bHRpSW5zZXJ0SW5mbyBtdWx0aUlu c2VydEluZm8gPSB7MH07CS8qIHBhY2lmeSBjb21waWxlciAqLwogCWludDY0CQlwcm9jZXNz ZWQgPSAwOwogCWludDY0CQlleGNsdWRlZCA9IDA7Ci0JaW50NjQJCXNraXBwZWQgPSAwOwog CWJvb2wJCWhhc19iZWZvcmVfaW5zZXJ0X3Jvd190cmlnOwogCWJvb2wJCWhhc19pbnN0ZWFk X2luc2VydF9yb3dfdHJpZzsKIAlib29sCQlsZWFmcGFydF91c2VfbXVsdGlfaW5zZXJ0ID0g ZmFsc2U7CkBAIC0xMDA0LDI2ICsxMDAzLDIyIEBAIENvcHlGcm9tKENvcHlGcm9tU3RhdGUg Y3N0YXRlKQogCQlpZiAoIU5leHRDb3B5RnJvbShjc3RhdGUsIGVjb250ZXh0LCBteXNsb3Qt PnR0c192YWx1ZXMsIG15c2xvdC0+dHRzX2lzbnVsbCkpCiAJCQlicmVhazsKIAotCQlpZiAo Y3N0YXRlLT5vcHRzLm9uX2Vycm9yICE9IENPUFlfT05fRVJST1JfU1RPUCAmJgorCQlpZiAo Y3N0YXRlLT5vcHRzLm9uX2Vycm9yID09IENPUFlfT05fRVJST1JfSUdOT1JFICYmCiAJCQlj c3RhdGUtPmVzY29udGV4dC0+ZXJyb3Jfb2NjdXJyZWQpCiAJCXsKIAkJCS8qCi0JCQkgKiBT b2Z0IGVycm9yIG9jY3VycmVkLCBza2lwIHRoaXMgdHVwbGUgYW5kIGRlYWwgd2l0aCBlcnJv cgotCQkJICogaW5mb3JtYXRpb24gYWNjb3JkaW5nIHRvIE9OX0VSUk9SLgorCQkJICogU29m dCBlcnJvciBvY2N1cnJlZCwgc2tpcCB0aGlzIHR1cGxlIGFuZCBqdXN0IG1ha2UKKwkJCSAq IEVycm9yU2F2ZUNvbnRleHQgcmVhZHkgZm9yIHRoZSBuZXh0IE5leHRDb3B5RnJvbS4gU2lu Y2Ugd2UKKwkJCSAqIGRvbid0IHNldCBkZXRhaWxzX3dhbnRlZCBhbmQgZXJyb3JfZGF0YSBp cyBub3QgdG8gYmUgZmlsbGVkLAorCQkJICoganVzdCByZXNldHRpbmcgZXJyb3Jfb2NjdXJy ZWQgaXMgZW5vdWdoLgogCQkJICovCi0JCQlpZiAoY3N0YXRlLT5vcHRzLm9uX2Vycm9yID09 IENPUFlfT05fRVJST1JfSUdOT1JFKQotCi0JCQkJLyoKLQkJCQkgKiBKdXN0IG1ha2UgRXJy b3JTYXZlQ29udGV4dCByZWFkeSBmb3IgdGhlIG5leHQgTmV4dENvcHlGcm9tLgotCQkJCSAq IFNpbmNlIHdlIGRvbid0IHNldCBkZXRhaWxzX3dhbnRlZCBhbmQgZXJyb3JfZGF0YSBpcyBu b3QgdG8KLQkJCQkgKiBiZSBmaWxsZWQsIGp1c3QgcmVzZXR0aW5nIGVycm9yX29jY3VycmVk IGlzIGVub3VnaC4KLQkJCQkgKi8KLQkJCQljc3RhdGUtPmVzY29udGV4dC0+ZXJyb3Jfb2Nj dXJyZWQgPSBmYWxzZTsKKwkJCWNzdGF0ZS0+ZXNjb250ZXh0LT5lcnJvcl9vY2N1cnJlZCA9 IGZhbHNlOwogCiAJCQkvKiBSZXBvcnQgdGhhdCB0aGlzIHR1cGxlIHdhcyBza2lwcGVkIGJ5 IHRoZSBPTl9FUlJPUiBjbGF1c2UgKi8KIAkJCXBnc3RhdF9wcm9ncmVzc191cGRhdGVfcGFy YW0oUFJPR1JFU1NfQ09QWV9UVVBMRVNfU0tJUFBFRCwKLQkJCQkJCQkJCQkgKytza2lwcGVk KTsKKwkJCQkJCQkJCQkgY3N0YXRlLT5udW1fZXJyb3JzKTsKIAorCQkJLyogUmVwZWF0IE5l eHRDb3B5RnJvbSgpIHVudGlsIG5vIHNvZnQgZXJyb3Igb2NjdXJzICovCiAJCQljb250aW51 ZTsKIAkJfQogCi0tIAoyLjQ1LjIKCg== --------------Th8I4dyyjLvRcdBj8gbAC7dp--