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 1sto45-001n6O-49 for pgsql-hackers@arkaria.postgresql.org; Thu, 26 Sep 2024 12:57:50 +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 1sto42-007z23-D8 for pgsql-hackers@arkaria.postgresql.org; Thu, 26 Sep 2024 12:57:46 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1sto42-007z1v-0E for pgsql-hackers@lists.postgresql.org; Thu, 26 Sep 2024 12:57:46 +0000 Received: from oss.nttdata.com ([49.212.34.109]) by magus.postgresql.org with esmtps (TLS1.2) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1sto3v-001C1P-Rt for pgsql-hackers@postgresql.org; Thu, 26 Sep 2024 12:57:44 +0000 Received: from oss.nttdata.com (localhost [127.0.0.1]) by oss.nttdata.com (Postfix) with ESMTPA id EFE416139D; Thu, 26 Sep 2024 21:57:34 +0900 (JST) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.11 at oss.nttdata.com MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=_afee6c24482dc9a1d89632b9dffa624d" Content-Transfer-Encoding: 8bit Date: Thu, 26 Sep 2024 21:57:34 +0900 From: torikoshia To: Fujii Masao Cc: Michael Paquier , sawada.mshk@gmail.com, Pgsql Hackers Subject: Re: Add on_error and log_verbosity options to file_fdw In-Reply-To: <1b24fcc9-0f18-40bf-b532-ab4cbe4b9e32@oss.nttdata.com> 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> User-Agent: Roundcube Webmail/1.4.11 Message-ID: <6383a9a5b90a36dbe60c6f30286d2254@oss.nttdata.com> X-Sender: torikoshia@oss.nttdata.com List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --=_afee6c24482dc9a1d89632b9dffa624d Content-Transfer-Encoding: 8bit Content-Type: text/plain; charset=UTF-8; format=flowed On 2024-09-25 00:46, Fujii Masao wrote: Thanks for the comments! > On 2024/09/24 20:08, torikoshia wrote: >> Thanks for the explanation and suggestion. >> Since there is almost the same code in copyfrom.c, attached 0003 patch >> for refactoring both. > > Thanks for updating the patches! > > Regarding 0002.patch, I think it’s better to include the refactored > code > from the start rather than adding redundant code intentionally. > How about leaving just the refactor in copyfrom.c to 0003.patch? > If that works, as a refactoring, you could also replace "skipped" with > "cstate->num_errors" in that patch, as you suggested earlier. Agreed. > While reviewing again, I noticed that running ANALYZE on a file_fdw > foreign table also calls NextCopyFrom(), but it doesn’t seem to > skip erroneous rows when on_error is set to "ignore." This could lead > to inaccurate statistics. Shouldn’t ANALYZE on file_fdw foreign tables > with on_error=ignore also skip erroneous rows? Thanks, it seems the right thing to do. >>> The tab-completion needs to be updated to support the "silent" >>> option? >> >> Yes, updated 0002 patch. > > Thanks! Also, this should be part of 0001.patch since "silent" is > introduced there, right? Agreed. Updated the patches. -- Regards, -- Atsushi Torikoshi NTT DATA Group Corporation --=_afee6c24482dc9a1d89632b9dffa624d Content-Transfer-Encoding: base64 Content-Type: text/x-diff; name=v5-0001-Add-log_verbosity-to-silent.patch Content-Disposition: attachment; filename=v5-0001-Add-log_verbosity-to-silent.patch; size=6453 RnJvbSA0OTQ0NDdmY2Y5OWFiYWIxNDFjMjdlMzUxNzFkYzZkNjNmNjRjOTk0IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBdHN1c2hpIFRvcmlrb3NoaSA8dG9yaWtvc2hpYUBvc3MubnR0 ZGF0YS5jb20+CkRhdGU6IFdlZCwgMjUgU2VwIDIwMjQgMjE6Mjg6MTUgKzA5MDAKU3ViamVjdDog W1BBVENIIHY1IDEvM10gQWRkIGxvZ192ZXJib3NpdHkgdG8gJ3NpbGVudCcKCkN1cnJlbnRseSB3 aGVuIG9uX2Vycm9yIGlzIHNldCB0byBpZ25vcmUsIENPUFkgbG9ncyBhIE5PVElDRSBtZXNzYWdl CmNvbnRhaW5pbmcgdGhlIGlnbm9yZWQgcm93IGNvdW50LgpXaGVuIHVzaW5nIG9uX2Vycm9yIG9w dGlvbiB0byBmaWxlX2ZkdywgaXQnZCBiZSBiZXR0ZXIgdG8gb21pdCB0aGlzCm1lc3NhZ2UgaW4g c29tZSBjYXNlcywgc3VjaCBhcyBmcmVxdWVudCBhY2Nlc3MgdG8gYSBtYWxmb3JtZWQgZmlsZQp2 aWEgdGhlIHNhbWUgZm9yZWlnbiB0YWJsZS4KQXMgYSBwcmVsaW1pbmFyeSBzdGVwIHRvIGFkZCBv bl9lcnJvciBvcHRpb24gdG8gZmlsZV9mZHcsIHRoaXMgcGF0Y2gKYWRkcyBuZXcgdmFsdWUgJ3Np bGVudCcgdG8gbG9nX3ZlcmJvc2l0eSBhbmQgZW5hYmxlcyB0byBzaWxlbmNlCnRoZSBtZXNzYWdl LgotLS0KIGRvYy9zcmMvc2dtbC9yZWYvY29weS5zZ21sICAgICAgICAgIHwgMTAgKysrKysrKy0t LQogc3JjL2JhY2tlbmQvY29tbWFuZHMvY29weS5jICAgICAgICAgfCAgNCArKystCiBzcmMvYmFj a2VuZC9jb21tYW5kcy9jb3B5ZnJvbS5jICAgICB8ICAzICsrLQogc3JjL2Jpbi9wc3FsL3RhYi1j b21wbGV0ZS5jICAgICAgICAgfCAgMiArLQogc3JjL2luY2x1ZGUvY29tbWFuZHMvY29weS5oICAg ICAgICAgfCAgNiArKysrLS0KIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvY29weTIub3V0IHwg IDQgKysrLQogc3JjL3Rlc3QvcmVncmVzcy9zcWwvY29weTIuc3FsICAgICAgfCAgNCArKysrCiA3 IGZpbGVzIGNoYW5nZWQsIDI0IGluc2VydGlvbnMoKyksIDkgZGVsZXRpb25zKC0pCgpkaWZmIC0t Z2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9jb3B5LnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVmL2NvcHku c2dtbAppbmRleCAxNTE4YWY4YTA0Li5kODc2ODRhNWJlIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3Nn bWwvcmVmL2NvcHkuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvcmVmL2NvcHkuc2dtbApAQCAtNDA3 LDYgKzQwNyw4IEBAIENPUFkgeyA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+dGFibGVf bmFtZTwvcmVwbGFjZWFibGU+IFsgKCA8cmVwbGFjZWFibGUKICAgICAgIDxsaXRlcmFsPnZlcmJv c2U8L2xpdGVyYWw+LCBhIDxsaXRlcmFsPk5PVElDRTwvbGl0ZXJhbD4gbWVzc2FnZQogICAgICAg Y29udGFpbmluZyB0aGUgbGluZSBvZiB0aGUgaW5wdXQgZmlsZSBhbmQgdGhlIGNvbHVtbiBuYW1l IHdob3NlIGlucHV0CiAgICAgICBjb252ZXJzaW9uIGhhcyBmYWlsZWQgaXMgZW1pdHRlZCBmb3Ig ZWFjaCBkaXNjYXJkZWQgcm93LgorICAgICAgV2hlbiBpdCBpcyBzZXQgdG8gPGxpdGVyYWw+c2ls ZW50PC9saXRlcmFsPiwgbm8gbWVzc2FnZSBpcyBlbWl0dGVkCisgICAgICByZWdhcmRpbmcgaWdu b3JlZCByb3dzLgogICAgICA8L3BhcmE+CiAgICAgPC9saXN0aXRlbT4KICAgIDwvdmFybGlzdGVu dHJ5PgpAQCAtNDI4LDkgKzQzMCwxMSBAQCBDT1BZIHsgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJh bWV0ZXIiPnRhYmxlX25hbWU8L3JlcGxhY2VhYmxlPiBbICggPHJlcGxhY2VhYmxlCiAgICAgPGxp c3RpdGVtPgogICAgICA8cGFyYT4KICAgICAgIFNwZWNpZnkgdGhlIGFtb3VudCBvZiBtZXNzYWdl cyBlbWl0dGVkIGJ5IGEgPGNvbW1hbmQ+Q09QWTwvY29tbWFuZD4KLSAgICAgIGNvbW1hbmQ6IDxs aXRlcmFsPmRlZmF1bHQ8L2xpdGVyYWw+IG9yIDxsaXRlcmFsPnZlcmJvc2U8L2xpdGVyYWw+LiBJ ZgotICAgICAgPGxpdGVyYWw+dmVyYm9zZTwvbGl0ZXJhbD4gaXMgc3BlY2lmaWVkLCBhZGRpdGlv bmFsIG1lc3NhZ2VzIGFyZSBlbWl0dGVkCi0gICAgICBkdXJpbmcgcHJvY2Vzc2luZy4KKyAgICAg IGNvbW1hbmQ6IDxsaXRlcmFsPmRlZmF1bHQ8L2xpdGVyYWw+LCA8bGl0ZXJhbD52ZXJib3NlPC9s aXRlcmFsPiwgb3IKKyAgICAgIDxsaXRlcmFsPnNpbGVudDwvbGl0ZXJhbD4uCisgICAgICBJZiA8 bGl0ZXJhbD52ZXJib3NlPC9saXRlcmFsPiBpcyBzcGVjaWZpZWQsIGFkZGl0aW9uYWwgbWVzc2Fn ZXMgYXJlCisgICAgICBlbWl0dGVkIGR1cmluZyBwcm9jZXNzaW5nLgorICAgICAgPGxpdGVyYWw+ c2lsZW50PC9saXRlcmFsPiBzdXBwcmVzc2VzIGJvdGggdmVyYm9zZSBhbmQgZGVmYXVsdCBtZXNz YWdlcy4KICAgICAgPC9wYXJhPgogICAgICA8cGFyYT4KICAgICAgIFRoaXMgaXMgY3VycmVudGx5 IHVzZWQgaW4gPGNvbW1hbmQ+Q09QWSBGUk9NPC9jb21tYW5kPiBjb21tYW5kIHdoZW4KZGlmZiAt LWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2NvcHkuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRz L2NvcHkuYwppbmRleCAzYmI1NzlhM2E0Li4wM2ViN2E0ZWJhIDEwMDY0NAotLS0gYS9zcmMvYmFj a2VuZC9jb21tYW5kcy9jb3B5LmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvY29weS5jCkBA IC00MjcsOSArNDI3LDExIEBAIGRlZkdldENvcHlMb2dWZXJib3NpdHlDaG9pY2UoRGVmRWxlbSAq ZGVmLCBQYXJzZVN0YXRlICpwc3RhdGUpCiAJY2hhcgkgICAqc3ZhbDsKIAogCS8qCi0JICogQWxs b3cgImRlZmF1bHQiLCBvciAidmVyYm9zZSIgdmFsdWVzLgorCSAqIEFsbG93ICJzaWxlbnQiLCAi ZGVmYXVsdCIsIG9yICJ2ZXJib3NlIiB2YWx1ZXMuCiAJICovCiAJc3ZhbCA9IGRlZkdldFN0cmlu ZyhkZWYpOworCWlmIChwZ19zdHJjYXNlY21wKHN2YWwsICJzaWxlbnQiKSA9PSAwKQorCQlyZXR1 cm4gQ09QWV9MT0dfVkVSQk9TSVRZX1NJTEVOVDsKIAlpZiAocGdfc3RyY2FzZWNtcChzdmFsLCAi ZGVmYXVsdCIpID09IDApCiAJCXJldHVybiBDT1BZX0xPR19WRVJCT1NJVFlfREVGQVVMVDsKIAlp ZiAocGdfc3RyY2FzZWNtcChzdmFsLCAidmVyYm9zZSIpID09IDApCmRpZmYgLS1naXQgYS9zcmMv YmFja2VuZC9jb21tYW5kcy9jb3B5ZnJvbS5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvY29weWZy b20uYwppbmRleCAyZDM0NjI5MTNlLi40Nzg3OTk5NGY3IDEwMDY0NAotLS0gYS9zcmMvYmFja2Vu ZC9jb21tYW5kcy9jb3B5ZnJvbS5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2NvcHlmcm9t LmMKQEAgLTEzMjAsNyArMTMyMCw4IEBAIENvcHlGcm9tKENvcHlGcm9tU3RhdGUgY3N0YXRlKQog CWVycm9yX2NvbnRleHRfc3RhY2sgPSBlcnJjYWxsYmFjay5wcmV2aW91czsKIAogCWlmIChjc3Rh dGUtPm9wdHMub25fZXJyb3IgIT0gQ09QWV9PTl9FUlJPUl9TVE9QICYmCi0JCWNzdGF0ZS0+bnVt X2Vycm9ycyA+IDApCisJCWNzdGF0ZS0+bnVtX2Vycm9ycyA+IDAgJiYKKwkJY3N0YXRlLT5vcHRz LmxvZ192ZXJib3NpdHkgPj0gQ09QWV9MT0dfVkVSQk9TSVRZX0RFRkFVTFQpCiAJCWVyZXBvcnQo Tk9USUNFLAogCQkJCWVycm1zZ19wbHVyYWwoIiVsbHUgcm93IHdhcyBza2lwcGVkIGR1ZSB0byBk YXRhIHR5cGUgaW5jb21wYXRpYmlsaXR5IiwKIAkJCQkJCQkgICIlbGx1IHJvd3Mgd2VyZSBza2lw cGVkIGR1ZSB0byBkYXRhIHR5cGUgaW5jb21wYXRpYmlsaXR5IiwKZGlmZiAtLWdpdCBhL3NyYy9i aW4vcHNxbC90YWItY29tcGxldGUuYyBiL3NyYy9iaW4vcHNxbC90YWItY29tcGxldGUuYwppbmRl eCBhN2NjZGU2ZDdkLi42NTMwYjBmMWNlIDEwMDY0NAotLS0gYS9zcmMvYmluL3BzcWwvdGFiLWNv bXBsZXRlLmMKKysrIGIvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5jCkBAIC0yOTE2LDcgKzI5 MTYsNyBAQCBwc3FsX2NvbXBsZXRpb24oY29uc3QgY2hhciAqdGV4dCwgaW50IHN0YXJ0LCBpbnQg ZW5kKQogCiAJLyogQ29tcGxldGUgQ09QWSA8c3RoPiBGUk9NIGZpbGVuYW1lIFdJVEggKExPR19W RVJCT1NJVFkgKi8KIAllbHNlIGlmIChNYXRjaGVzKCJDT1BZfFxcY29weSIsIE1hdGNoQW55LCAi RlJPTXxUTyIsIE1hdGNoQW55LCAiV0lUSCIsICIoIiwgIkxPR19WRVJCT1NJVFkiKSkKLQkJQ09N UExFVEVfV0lUSCgiZGVmYXVsdCIsICJ2ZXJib3NlIik7CisJCUNPTVBMRVRFX1dJVEgoInNpbGVu dCIsICJkZWZhdWx0IiwgInZlcmJvc2UiKTsKIAogCS8qIENvbXBsZXRlIENPUFkgPHN0aD4gRlJP TSA8c3RoPiBXSVRIICg8b3B0aW9ucz4pICovCiAJZWxzZSBpZiAoTWF0Y2hlcygiQ09QWXxcXGNv cHkiLCBNYXRjaEFueSwgIkZST00iLCBNYXRjaEFueSwgIldJVEgiLCBNYXRjaEFueSkpCmRpZmYg LS1naXQgYS9zcmMvaW5jbHVkZS9jb21tYW5kcy9jb3B5LmggYi9zcmMvaW5jbHVkZS9jb21tYW5k cy9jb3B5LmgKaW5kZXggMTQxZmQ0OGRjMS4uOWZiMTNlOTUyZCAxMDA2NDQKLS0tIGEvc3JjL2lu Y2x1ZGUvY29tbWFuZHMvY29weS5oCisrKyBiL3NyYy9pbmNsdWRlL2NvbW1hbmRzL2NvcHkuaApA QCAtNDUsOCArNDUsMTAgQEAgdHlwZWRlZiBlbnVtIENvcHlPbkVycm9yQ2hvaWNlCiAgKi8KIHR5 cGVkZWYgZW51bSBDb3B5TG9nVmVyYm9zaXR5Q2hvaWNlCiB7Ci0JQ09QWV9MT0dfVkVSQk9TSVRZ X0RFRkFVTFQgPSAwLCAvKiBsb2dzIG5vIGFkZGl0aW9uYWwgbWVzc2FnZXMsIGRlZmF1bHQgKi8K LQlDT1BZX0xPR19WRVJCT1NJVFlfVkVSQk9TRSwgLyogbG9ncyBhZGRpdGlvbmFsIG1lc3NhZ2Vz ICovCisJQ09QWV9MT0dfVkVSQk9TSVRZX1NJTEVOVCA9IC0xLAkvKiBsb2dzIG5vbmUgKi8KKwlD T1BZX0xPR19WRVJCT1NJVFlfREVGQVVMVCA9IDAsCS8qIGxvZ3Mgbm8gYWRkaXRpb25hbCBtZXNz YWdlcy4gQXMgdGhpcyBpcworCQkJCQkJCQkJICAgdGhlIGRlZmF1bHQsIGFzc2lnbiAwICovCisJ Q09QWV9MT0dfVkVSQk9TSVRZX1ZFUkJPU0UsCS8qIGxvZ3MgYWRkaXRpb25hbCBtZXNzYWdlcyAq LwogfSBDb3B5TG9nVmVyYm9zaXR5Q2hvaWNlOwogCiAvKgpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3Qv cmVncmVzcy9leHBlY3RlZC9jb3B5Mi5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2Nv cHkyLm91dAppbmRleCA2MWExOWNkYzRjLi40ZTc1Mjk3N2I1IDEwMDY0NAotLS0gYS9zcmMvdGVz dC9yZWdyZXNzL2V4cGVjdGVkL2NvcHkyLm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVj dGVkL2NvcHkyLm91dApAQCAtNzYwLDYgKzc2MCw3IEBAIENPUFkgY2hlY2tfaWduX2VycjIgRlJP TSBTVERJTiBXSVRIIChvbl9lcnJvciBpZ25vcmUsIGxvZ192ZXJib3NpdHkgdmVyYm9zZSk7CiBO T1RJQ0U6ICBza2lwcGluZyByb3cgZHVlIHRvIGRhdGEgdHlwZSBpbmNvbXBhdGliaWxpdHkgYXQg bGluZSAyIGZvciBjb2x1bW4gImwiOiBudWxsIGlucHV0CiBDT05URVhUOiAgQ09QWSBjaGVja19p Z25fZXJyMgogTk9USUNFOiAgMSByb3cgd2FzIHNraXBwZWQgZHVlIHRvIGRhdGEgdHlwZSBpbmNv bXBhdGliaWxpdHkKK0NPUFkgY2hlY2tfaWduX2VycjIgRlJPTSBTVERJTiBXSVRIIChvbl9lcnJv ciBpZ25vcmUsIGxvZ192ZXJib3NpdHkgc2lsZW50KTsKIC0tIHJlc2V0IGNvbnRleHQgY2hvaWNl CiBcc2V0IFNIT1dfQ09OVEVYVCBlcnJvcnMKIFNFTEVDVCAqIEZST00gY2hlY2tfaWduX2VycjsK QEAgLTc3NCw3ICs3NzUsOCBAQCBTRUxFQ1QgKiBGUk9NIGNoZWNrX2lnbl9lcnIyOwogIG4gfCAg bSAgfCBrIHwgICBsICAgCiAtLS0rLS0tLS0rLS0tKy0tLS0tLS0KICAxIHwgezF9IHwgMSB8ICdm b28nCi0oMSByb3cpCisgMyB8IHszfSB8IDMgfCAnYmFyJworKDIgcm93cykKIAogLS0gdGVzdCBk YXRhdHlwZSBlcnJvciB0aGF0IGNhbid0IGJlIGhhbmRsZWQgYXMgc29mdDogc2hvdWxkIGZhaWwK IENSRUFURSBUQUJMRSBoYXJkX2Vycihmb28gd2lkZ2V0KTsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0 L3JlZ3Jlc3Mvc3FsL2NvcHkyLnNxbCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2NvcHkyLnNxbApp bmRleCA4YjE0OTYyMTk0Li5mYTZhYTE3MzQ0IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNz L3NxbC9jb3B5Mi5zcWwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvY29weTIuc3FsCkBAIC01 MzMsNiArNTMzLDEwIEBAIENPUFkgY2hlY2tfaWduX2VycjIgRlJPTSBTVERJTiBXSVRIIChvbl9l cnJvciBpZ25vcmUsIGxvZ192ZXJib3NpdHkgdmVyYm9zZSk7CiAxCXsxfQkxCSdmb28nCiAyCXsy fQkyCVxOCiBcLgorQ09QWSBjaGVja19pZ25fZXJyMiBGUk9NIFNURElOIFdJVEggKG9uX2Vycm9y IGlnbm9yZSwgbG9nX3ZlcmJvc2l0eSBzaWxlbnQpOworMwl7M30JMwknYmFyJworNAl7NH0JNAlc TgorXC4KIAogLS0gcmVzZXQgY29udGV4dCBjaG9pY2UKIFxzZXQgU0hPV19DT05URVhUIGVycm9y cwoKYmFzZS1jb21taXQ6IDFhYjY3YzlkZmFhZGRhODYwNTlmNDA1ZTU3NDZlZmI2ZGRiOWZlMjEK LS0gCjIuMzkuMgoK --=_afee6c24482dc9a1d89632b9dffa624d Content-Transfer-Encoding: base64 Content-Type: text/x-diff; name=v5-0002-Add-on_error-and-log_verbosity-options-to-file_fd.patch Content-Disposition: attachment; filename=v5-0002-Add-on_error-and-log_verbosity-options-to-file_fd.patch; size=7805 RnJvbSBkZDhmMjA3MTY1MjQ5ODJlMzY4N2VhM2U2YTQ0YTExZTVmMGI4ODZjIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBdHN1c2hpIFRvcmlrb3NoaSA8dG9yaWtvc2hpYUBvc3MubnR0 ZGF0YS5jb20+CkRhdGU6IFdlZCwgMjUgU2VwIDIwMjQgMjE6Mjk6NDggKzA5MDAKU3ViamVjdDog W1BBVENIIHY1IDIvM10gQWRkIG9uX2Vycm9yIGFuZCBsb2dfdmVyYm9zaXR5IG9wdGlvbnMgdG8g ZmlsZV9mZHcKCjllMmQ4NzAsIGI3MjViN2UgYW5kIGY1YTIyNzggaW50cm9kdWNlZCBvbl9lcnJv ciBhbmQgbG9nX3ZlcmJvc2l0eSB0byBDT1BZLgpTaW5jZSB0aGVzZSBvcHRpb25zIHNlZW0gdXNl ZnVsIHRvIGZpbGVfZmR3IHdoZW4gYWNjZXNzaW5nIGRpcnR5IGRhdGEsCnRoaXMgcGF0Y2ggYWRk cyB0aGVtIHRvIGZpbGVfZmR3LgotLS0KIGNvbnRyaWIvZmlsZV9mZHcvZXhwZWN0ZWQvZmlsZV9m ZHcub3V0IHwgMTggKysrKysrKwogY29udHJpYi9maWxlX2Zkdy9maWxlX2Zkdy5jICAgICAgICAg ICAgfCA3NCArKysrKysrKysrKysrKysrKysrKysrKy0tLQogY29udHJpYi9maWxlX2Zkdy9zcWwv ZmlsZV9mZHcuc3FsICAgICAgfCAgNiArKysKIGRvYy9zcmMvc2dtbC9maWxlLWZkdy5zZ21sICAg ICAgICAgICAgIHwgMjMgKysrKysrKysKIDQgZmlsZXMgY2hhbmdlZCwgMTE1IGluc2VydGlvbnMo KyksIDYgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvY29udHJpYi9maWxlX2Zkdy9leHBlY3Rl ZC9maWxlX2Zkdy5vdXQgYi9jb250cmliL2ZpbGVfZmR3L2V4cGVjdGVkL2ZpbGVfZmR3Lm91dApp bmRleCA4NmMxNDhhODZiLi4yZWEwZGVlYjEwIDEwMDY0NAotLS0gYS9jb250cmliL2ZpbGVfZmR3 L2V4cGVjdGVkL2ZpbGVfZmR3Lm91dAorKysgYi9jb250cmliL2ZpbGVfZmR3L2V4cGVjdGVkL2Zp bGVfZmR3Lm91dApAQCAtMjA2LDYgKzIwNiwyNCBAQCBTRUxFQ1QgKiBGUk9NIGFnZ19jc3YgYyBK T0lOIGFnZ190ZXh0IHQgT04gKHQuYSA9IGMuYSkgT1JERVIgQlkgYy5hOwogU0VMRUNUICogRlJP TSBhZ2dfYmFkOyAgICAgICAgICAgICAgIC0tIEVSUk9SCiBFUlJPUjogIGludmFsaWQgaW5wdXQg c3ludGF4IGZvciB0eXBlIHJlYWw6ICJhYWEiCiBDT05URVhUOiAgQ09QWSBhZ2dfYmFkLCBsaW5l IDMsIGNvbHVtbiBiOiAiYWFhIgorLS0gb25fZXJyb3IgYW5kIGxvZ192ZXJib3NpdHkgdGVzdHMK K0FMVEVSIEZPUkVJR04gVEFCTEUgYWdnX2JhZCBPUFRJT05TIChBREQgb25fZXJyb3IgJ2lnbm9y ZScpOworU0VMRUNUICogRlJPTSBhZ2dfYmFkOworTk9USUNFOiAgMSByb3cgd2FzIHNraXBwZWQg ZHVlIHRvIGRhdGEgdHlwZSBpbmNvbXBhdGliaWxpdHkKKyAgYSAgfCAgIGIgICAgCistLS0tLSst LS0tLS0tLQorIDEwMCB8IDk5LjA5NworICA0MiB8IDMyNC43OAorKDIgcm93cykKKworQUxURVIg Rk9SRUlHTiBUQUJMRSBhZ2dfYmFkIE9QVElPTlMgKEFERCBsb2dfdmVyYm9zaXR5ICdzaWxlbnQn KTsKK1NFTEVDVCAqIEZST00gYWdnX2JhZDsKKyAgYSAgfCAgIGIgICAgCistLS0tLSstLS0tLS0t LQorIDEwMCB8IDk5LjA5NworICA0MiB8IDMyNC43OAorKDIgcm93cykKKwogLS0gbWlzYyBxdWVy eSB0ZXN0cwogXHQgb24KIFNFTEVDVCBleHBsYWluX2ZpbHRlcignRVhQTEFJTiAoVkVSQk9TRSwg Q09TVFMgRkFMU0UpIFNFTEVDVCAqIEZST00gYWdnX2NzdicpOwpkaWZmIC0tZ2l0IGEvY29udHJp Yi9maWxlX2Zkdy9maWxlX2Zkdy5jIGIvY29udHJpYi9maWxlX2Zkdy9maWxlX2Zkdy5jCmluZGV4 IGQxNjgyMWY4ZTEuLjU0M2IxY2E0ZjkgMTAwNjQ0Ci0tLSBhL2NvbnRyaWIvZmlsZV9mZHcvZmls ZV9mZHcuYworKysgYi9jb250cmliL2ZpbGVfZmR3L2ZpbGVfZmR3LmMKQEAgLTIyLDggKzIyLDEw IEBACiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19hdXRoaWQuaCIKICNpbmNsdWRlICJjYXRhbG9nL3Bn X2ZvcmVpZ25fdGFibGUuaCIKICNpbmNsdWRlICJjb21tYW5kcy9jb3B5LmgiCisjaW5jbHVkZSAi Y29tbWFuZHMvY29weWZyb21faW50ZXJuYWwuaCIKICNpbmNsdWRlICJjb21tYW5kcy9kZWZyZW0u aCIKICNpbmNsdWRlICJjb21tYW5kcy9leHBsYWluLmgiCisjaW5jbHVkZSAiY29tbWFuZHMvcHJv Z3Jlc3MuaCIKICNpbmNsdWRlICJjb21tYW5kcy92YWN1dW0uaCIKICNpbmNsdWRlICJmb3JlaWdu L2Zkd2FwaS5oIgogI2luY2x1ZGUgImZvcmVpZ24vZm9yZWlnbi5oIgpAQCAtMzQsNiArMzYsNyBA QAogI2luY2x1ZGUgIm9wdGltaXplci9wbGFubWFpbi5oIgogI2luY2x1ZGUgIm9wdGltaXplci9y ZXN0cmljdGluZm8uaCIKICNpbmNsdWRlICJ1dGlscy9hY2wuaCIKKyNpbmNsdWRlICJ1dGlscy9i YWNrZW5kX3Byb2dyZXNzLmgiCiAjaW5jbHVkZSAidXRpbHMvbWVtdXRpbHMuaCIKICNpbmNsdWRl ICJ1dGlscy9yZWwuaCIKICNpbmNsdWRlICJ1dGlscy9zYW1wbGluZy5oIgpAQCAtNzQsNiArNzcs OCBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IEZpbGVGZHdPcHRpb24gdmFsaWRfb3B0aW9uc1tdID0g ewogCXsibnVsbCIsIEZvcmVpZ25UYWJsZVJlbGF0aW9uSWR9LAogCXsiZGVmYXVsdCIsIEZvcmVp Z25UYWJsZVJlbGF0aW9uSWR9LAogCXsiZW5jb2RpbmciLCBGb3JlaWduVGFibGVSZWxhdGlvbklk fSwKKwl7Im9uX2Vycm9yIiwgRm9yZWlnblRhYmxlUmVsYXRpb25JZH0sCisJeyJsb2dfdmVyYm9z aXR5IiwgRm9yZWlnblRhYmxlUmVsYXRpb25JZH0sCiAJeyJmb3JjZV9ub3RfbnVsbCIsIEF0dHJp YnV0ZVJlbGF0aW9uSWR9LAogCXsiZm9yY2VfbnVsbCIsIEF0dHJpYnV0ZVJlbGF0aW9uSWR9LAog CkBAIC03MjYsMTEgKzczMSwxMiBAQCBmaWxlSXRlcmF0ZUZvcmVpZ25TY2FuKEZvcmVpZ25TY2Fu U3RhdGUgKm5vZGUpCiAJTWVtb3J5Q29udGV4dCBvbGRjb250ZXh0OwogCVR1cGxlVGFibGVTbG90 ICpzbG90ID0gbm9kZS0+c3Muc3NfU2NhblR1cGxlU2xvdDsKIAlib29sCQlmb3VuZDsKKwlDb3B5 RnJvbVN0YXRlIGNzdGF0ZSA9IGZlc3RhdGUtPmNzdGF0ZTsKIAlFcnJvckNvbnRleHRDYWxsYmFj ayBlcnJjYWxsYmFjazsKIAogCS8qIFNldCB1cCBjYWxsYmFjayB0byBpZGVudGlmeSBlcnJvciBs aW5lIG51bWJlci4gKi8KIAllcnJjYWxsYmFjay5jYWxsYmFjayA9IENvcHlGcm9tRXJyb3JDYWxs YmFjazsKLQllcnJjYWxsYmFjay5hcmcgPSAodm9pZCAqKSBmZXN0YXRlLT5jc3RhdGU7CisJZXJy Y2FsbGJhY2suYXJnID0gKHZvaWQgKikgY3N0YXRlOwogCWVycmNhbGxiYWNrLnByZXZpb3VzID0g ZXJyb3JfY29udGV4dF9zdGFjazsKIAllcnJvcl9jb250ZXh0X3N0YWNrID0gJmVycmNhbGxiYWNr OwogCkBAIC03NTEsMTAgKzc1NywzNiBAQCBmaWxlSXRlcmF0ZUZvcmVpZ25TY2FuKEZvcmVpZ25T Y2FuU3RhdGUgKm5vZGUpCiAJICogc3dpdGNoIGluIGNhc2Ugd2UgYXJlIGRvaW5nIHRoYXQuCiAJ ICovCiAJb2xkY29udGV4dCA9IE1lbW9yeUNvbnRleHRTd2l0Y2hUbyhHZXRQZXJUdXBsZU1lbW9y eUNvbnRleHQoZXN0YXRlKSk7Ci0JZm91bmQgPSBOZXh0Q29weUZyb20oZmVzdGF0ZS0+Y3N0YXRl LCBlY29udGV4dCwKLQkJCQkJCSBzbG90LT50dHNfdmFsdWVzLCBzbG90LT50dHNfaXNudWxsKTsK LQlpZiAoZm91bmQpCisKKwlmb3IoOzspCisJeworCQlmb3VuZCA9IE5leHRDb3B5RnJvbShjc3Rh dGUsIGVjb250ZXh0LAorCQkJCQkgc2xvdC0+dHRzX3ZhbHVlcywgc2xvdC0+dHRzX2lzbnVsbCk7 CisJCWlmICghZm91bmQpCisJCQlicmVhazsKKworCQlpZiAoY3N0YXRlLT5vcHRzLm9uX2Vycm9y ID09IENPUFlfT05fRVJST1JfSUdOT1JFICYmCisJCQljc3RhdGUtPmVzY29udGV4dC0+ZXJyb3Jf b2NjdXJyZWQpCisJCXsKKwkJCS8qCisJCQkgKiBTb2Z0IGVycm9yIG9jY3VycmVkLCBza2lwIHRo aXMgdHVwbGUgYW5kIGp1c3QgbWFrZQorCQkJICogRXJyb3JTYXZlQ29udGV4dCByZWFkeSBmb3Ig dGhlIG5leHQgTmV4dENvcHlGcm9tLiBTaW5jZSB3ZSBkb24ndAorCQkJICogc2V0IGRldGFpbHNf d2FudGVkIGFuZCBlcnJvcl9kYXRhIGlzIG5vdCB0byBiZSBmaWxsZWQsIGp1c3QKKwkJCSAqIHJl c2V0dGluZyBlcnJvcl9vY2N1cnJlZCBpcyBlbm91Z2guCisJCQkgKi8KKwkJCWNzdGF0ZS0+ZXNj b250ZXh0LT5lcnJvcl9vY2N1cnJlZCA9IGZhbHNlOworCisJCQkvKiBSZXBvcnQgdGhhdCB0aGlz IHR1cGxlIHdhcyBza2lwcGVkIGJ5IHRoZSBPTl9FUlJPUiBjbGF1c2UgKi8KKwkJCXBnc3RhdF9w cm9ncmVzc191cGRhdGVfcGFyYW0oUFJPR1JFU1NfQ09QWV9UVVBMRVNfU0tJUFBFRCwKKwkJCQkJ CQkJCQljc3RhdGUtPm51bV9lcnJvcnMpOworCisJCQkvKiBSZXBlYXQgTmV4dENvcHlGcm9tKCkg dW50aWwgbm8gc29mdCBlcnJvciBvY2N1cnMgKi8KKwkJCWNvbnRpbnVlOworCQl9CisKIAkJRXhl Y1N0b3JlVmlydHVhbFR1cGxlKHNsb3QpOworCQlicmVhazsKKwl9CiAKIAkvKiBTd2l0Y2ggYmFj ayB0byBvcmlnaW5hbCBtZW1vcnkgY29udGV4dCAqLwogCU1lbW9yeUNvbnRleHRTd2l0Y2hUbyhv bGRjb250ZXh0KTsKQEAgLTc5Niw4ICs4MjgsMTkgQEAgZmlsZUVuZEZvcmVpZ25TY2FuKEZvcmVp Z25TY2FuU3RhdGUgKm5vZGUpCiAJRmlsZUZkd0V4ZWN1dGlvblN0YXRlICpmZXN0YXRlID0gKEZp bGVGZHdFeGVjdXRpb25TdGF0ZSAqKSBub2RlLT5mZHdfc3RhdGU7CiAKIAkvKiBpZiBmZXN0YXRl IGlzIE5VTEwsIHdlIGFyZSBpbiBFWFBMQUlOOyBub3RoaW5nIHRvIGRvICovCi0JaWYgKGZlc3Rh dGUpCi0JCUVuZENvcHlGcm9tKGZlc3RhdGUtPmNzdGF0ZSk7CisJaWYgKCFmZXN0YXRlKQorCQly ZXR1cm47CisKKwlpZiAoZmVzdGF0ZS0+Y3N0YXRlLT5vcHRzLm9uX2Vycm9yICE9IENPUFlfT05f RVJST1JfU1RPUCAmJgorCQlmZXN0YXRlLT5jc3RhdGUtPm51bV9lcnJvcnMgPiAwICYmCisJCWZl c3RhdGUtPmNzdGF0ZS0+b3B0cy5sb2dfdmVyYm9zaXR5ID49IENPUFlfTE9HX1ZFUkJPU0lUWV9E RUZBVUxUKQorCQllcmVwb3J0KE5PVElDRSwKKwkJCQllcnJtc2dfcGx1cmFsKCIlbGx1IHJvdyB3 YXMgc2tpcHBlZCBkdWUgdG8gZGF0YSB0eXBlIGluY29tcGF0aWJpbGl0eSIsCisJCQkJCQkJICAi JWxsdSByb3dzIHdlcmUgc2tpcHBlZCBkdWUgdG8gZGF0YSB0eXBlIGluY29tcGF0aWJpbGl0eSIs CisJCQkJCQkJICAodW5zaWduZWQgbG9uZyBsb25nKSBmZXN0YXRlLT5jc3RhdGUtPm51bV9lcnJv cnMsCisJCQkJCQkJICAodW5zaWduZWQgbG9uZyBsb25nKSBmZXN0YXRlLT5jc3RhdGUtPm51bV9l cnJvcnMpKTsKKworCUVuZENvcHlGcm9tKGZlc3RhdGUtPmNzdGF0ZSk7CiB9CiAKIC8qCkBAIC0x MTkxLDYgKzEyMzQsMjUgQEAgZmlsZV9hY3F1aXJlX3NhbXBsZV9yb3dzKFJlbGF0aW9uIG9uZXJl bCwgaW50IGVsZXZlbCwKIAkJaWYgKCFmb3VuZCkKIAkJCWJyZWFrOwogCisJCWlmIChjc3RhdGUt Pm9wdHMub25fZXJyb3IgPT0gQ09QWV9PTl9FUlJPUl9JR05PUkUgJiYKKwkJCWNzdGF0ZS0+ZXNj b250ZXh0LT5lcnJvcl9vY2N1cnJlZCkKKwkJeworCQkJLyoKKwkJCSAqIFNvZnQgZXJyb3Igb2Nj dXJyZWQsIHNraXAgdGhpcyB0dXBsZSBhbmQganVzdCBtYWtlCisJCQkgKiBFcnJvclNhdmVDb250 ZXh0IHJlYWR5IGZvciB0aGUgbmV4dCBOZXh0Q29weUZyb20uIFNpbmNlIHdlIGRvbid0CisJCQkg KiBzZXQgZGV0YWlsc193YW50ZWQgYW5kIGVycm9yX2RhdGEgaXMgbm90IHRvIGJlIGZpbGxlZCwg anVzdAorCQkJICogcmVzZXR0aW5nIGVycm9yX29jY3VycmVkIGlzIGVub3VnaC4KKwkJCSAqLwor CQkJY3N0YXRlLT5lc2NvbnRleHQtPmVycm9yX29jY3VycmVkID0gZmFsc2U7CisKKwkJCS8qIFJl cG9ydCB0aGF0IHRoaXMgdHVwbGUgd2FzIHNraXBwZWQgYnkgdGhlIE9OX0VSUk9SIGNsYXVzZSAq LworCQkJcGdzdGF0X3Byb2dyZXNzX3VwZGF0ZV9wYXJhbShQUk9HUkVTU19DT1BZX1RVUExFU19T S0lQUEVELAorCQkJCQkJCQkJCWNzdGF0ZS0+bnVtX2Vycm9ycyk7CisKKwkJCS8qIFJlcGVhdCBO ZXh0Q29weUZyb20oKSB1bnRpbCBubyBzb2Z0IGVycm9yIG9jY3VycyAqLworCQkJY29udGludWU7 CisJCX0KKwogCQkvKgogCQkgKiBUaGUgZmlyc3QgdGFyZ3Jvd3Mgc2FtcGxlIHJvd3MgYXJlIHNp bXBseSBjb3BpZWQgaW50byB0aGUKIAkJICogcmVzZXJ2b2lyLiAgVGhlbiB3ZSBzdGFydCByZXBs YWNpbmcgdHVwbGVzIGluIHRoZSBzYW1wbGUgdW50aWwgd2UKZGlmZiAtLWdpdCBhL2NvbnRyaWIv ZmlsZV9mZHcvc3FsL2ZpbGVfZmR3LnNxbCBiL2NvbnRyaWIvZmlsZV9mZHcvc3FsL2ZpbGVfZmR3 LnNxbAppbmRleCBmMDU0OGUxNGUxLi5hNDE3MDY3ZTU0IDEwMDY0NAotLS0gYS9jb250cmliL2Zp bGVfZmR3L3NxbC9maWxlX2Zkdy5zcWwKKysrIGIvY29udHJpYi9maWxlX2Zkdy9zcWwvZmlsZV9m ZHcuc3FsCkBAIC0xNTAsNiArMTUwLDEyIEBAIFNFTEVDVCAqIEZST00gYWdnX2NzdiBjIEpPSU4g YWdnX3RleHQgdCBPTiAodC5hID0gYy5hKSBPUkRFUiBCWSBjLmE7CiAtLSBlcnJvciBjb250ZXh0 IHJlcG9ydCB0ZXN0cwogU0VMRUNUICogRlJPTSBhZ2dfYmFkOyAgICAgICAgICAgICAgIC0tIEVS Uk9SCiAKKy0tIG9uX2Vycm9yIGFuZCBsb2dfdmVyYm9zaXR5IHRlc3RzCitBTFRFUiBGT1JFSUdO IFRBQkxFIGFnZ19iYWQgT1BUSU9OUyAoQUREIG9uX2Vycm9yICdpZ25vcmUnKTsKK1NFTEVDVCAq IEZST00gYWdnX2JhZDsKK0FMVEVSIEZPUkVJR04gVEFCTEUgYWdnX2JhZCBPUFRJT05TIChBREQg bG9nX3ZlcmJvc2l0eSAnc2lsZW50Jyk7CitTRUxFQ1QgKiBGUk9NIGFnZ19iYWQ7CisKIC0tIG1p c2MgcXVlcnkgdGVzdHMKIFx0IG9uCiBTRUxFQ1QgZXhwbGFpbl9maWx0ZXIoJ0VYUExBSU4gKFZF UkJPU0UsIENPU1RTIEZBTFNFKSBTRUxFQ1QgKiBGUk9NIGFnZ19jc3YnKTsKZGlmZiAtLWdpdCBh L2RvYy9zcmMvc2dtbC9maWxlLWZkdy5zZ21sIGIvZG9jL3NyYy9zZ21sL2ZpbGUtZmR3LnNnbWwK aW5kZXggZjJmMmFmOWE1OS4uYmIzNTc5YjA3NyAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL2Zp bGUtZmR3LnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL2ZpbGUtZmR3LnNnbWwKQEAgLTEyNiw2ICsx MjYsMjkgQEAKICAgIDwvbGlzdGl0ZW0+CiAgIDwvdmFybGlzdGVudHJ5PgogCisgIDx2YXJsaXN0 ZW50cnk+CisgICA8dGVybT48bGl0ZXJhbD5vbl9lcnJvcjwvbGl0ZXJhbD48L3Rlcm0+CisKKyAg IDxsaXN0aXRlbT4KKyAgICA8cGFyYT4KKyAgICAgU3BlY2lmaWVzIGhvdyB0byBiZWhhdmUgd2hl biBlbmNvdW50ZXJpbmcgYW4gZXJyb3IgY29udmVydGluZyBhIGNvbHVtbidzCisgICAgIGlucHV0 IHZhbHVlIGludG8gaXRzIGRhdGEgdHlwZSwKKyAgICAgdGhlIHNhbWUgYXMgPGNvbW1hbmQ+Q09Q WTwvY29tbWFuZD4ncyA8bGl0ZXJhbD5PTl9FUlJPUjwvbGl0ZXJhbD4gb3B0aW9uLgorICAgIDwv cGFyYT4KKyAgIDwvbGlzdGl0ZW0+CisgIDwvdmFybGlzdGVudHJ5PgorCisgIDx2YXJsaXN0ZW50 cnk+CisgICA8dGVybT48bGl0ZXJhbD5sb2dfdmVyYm9zaXR5PC9saXRlcmFsPjwvdGVybT4KKwor ICAgPGxpc3RpdGVtPgorICAgIDxwYXJhPgorICAgICBTcGVjaWZpZXMgdGhlIGFtb3VudCBvZiBt ZXNzYWdlcyBlbWl0dGVkIGJ5IDxsaXRlcmFsPmZpbGVfZmR3PC9saXRlcmFsPiwKKyAgICAgdGhl IHNhbWUgYXMgPGNvbW1hbmQ+Q09QWTwvY29tbWFuZD4ncyA8bGl0ZXJhbD5MT0dfVkVSQk9TSVRZ PC9saXRlcmFsPiBvcHRpb24uCisgICAgPC9wYXJhPgorICAgPC9saXN0aXRlbT4KKyAgPC92YXJs aXN0ZW50cnk+CisKICA8L3ZhcmlhYmxlbGlzdD4KIAogIDxwYXJhPgotLSAKMi4zOS4yCgo= --=_afee6c24482dc9a1d89632b9dffa624d Content-Transfer-Encoding: base64 Content-Type: text/x-diff; name=v5-0003-Refactor-copyfrom.c.patch Content-Disposition: attachment; filename=v5-0003-Refactor-copyfrom.c.patch; size=2446 RnJvbSA0Y2M5MTNhMDk2NWRkYzA3NDEzYjI1NmFiOTc5YzUwY2JiZmE4YjFhIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBdHN1c2hpIFRvcmlrb3NoaSA8dG9yaWtvc2hpYUBvc3MubnR0 ZGF0YS5jb20+CkRhdGU6IFdlZCwgMjUgU2VwIDIwMjQgMjE6MzA6MjYgKzA5MDAKU3ViamVjdDog W1BBVENIIHY1IDMvM10gUmVmYWN0b3IgY29weWZyb20uYyByZWdhcmRpbmcgT05fRVJST1IKClJl ZmFjdG9yIGNvcHlmcm9tLmMgRm9yIHRoZSBjb25zaXN0ZW5jeSB3aXRoIDAwMDEgYW5kIDAwMDIg cGF0Y2g6Ci0gY3VycmVudGx5IGxvY2FsIHZhcmlhYmxlICdza2lwcGVkJyBpcyBkZWZpbmVkLCBi dXQgcmVtb3ZlIGl0IGJlY2F1c2UgCiAgd2UndmUgYWxyZWFkeSBjb3VudGVkIGl0IGFzIGNzdGF0 ZS0+bnVtX2Vycm9ycwotIHNpbXBsaWZ5IHRoZSBsb2dpYyB1c2luZyB0aGUgY29uZHRpb24gdGhh dCBDb3B5T25FcnJvckNob2ljZSBvbmx5IGFjY2VwdHMKICB0d28gdmFsdWVzCi0gYWRkIHRoZSBz YW1lIGNvbW1lbnQKCi0tLQogc3JjL2JhY2tlbmQvY29tbWFuZHMvY29weWZyb20uYyB8IDIxICsr KysrKysrLS0tLS0tLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDggaW5zZXJ0aW9ucygrKSwgMTMg ZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvY29weWZyb20u YyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2NvcHlmcm9tLmMKaW5kZXggNDc4Nzk5OTRmNy4uMWNk MDA0ZmZiYyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvY29weWZyb20uYworKysg Yi9zcmMvYmFja2VuZC9jb21tYW5kcy9jb3B5ZnJvbS5jCkBAIC02NTcsNyArNjU3LDYgQEAgQ29w eUZyb20oQ29weUZyb21TdGF0ZSBjc3RhdGUpCiAJQ29weU11bHRpSW5zZXJ0SW5mbyBtdWx0aUlu c2VydEluZm8gPSB7MH07CS8qIHBhY2lmeSBjb21waWxlciAqLwogCWludDY0CQlwcm9jZXNzZWQg PSAwOwogCWludDY0CQlleGNsdWRlZCA9IDA7Ci0JaW50NjQJCXNraXBwZWQgPSAwOwogCWJvb2wJ CWhhc19iZWZvcmVfaW5zZXJ0X3Jvd190cmlnOwogCWJvb2wJCWhhc19pbnN0ZWFkX2luc2VydF9y b3dfdHJpZzsKIAlib29sCQlsZWFmcGFydF91c2VfbXVsdGlfaW5zZXJ0ID0gZmFsc2U7CkBAIC0x MDA0LDI2ICsxMDAzLDIyIEBAIENvcHlGcm9tKENvcHlGcm9tU3RhdGUgY3N0YXRlKQogCQlpZiAo IU5leHRDb3B5RnJvbShjc3RhdGUsIGVjb250ZXh0LCBteXNsb3QtPnR0c192YWx1ZXMsIG15c2xv dC0+dHRzX2lzbnVsbCkpCiAJCQlicmVhazsKIAotCQlpZiAoY3N0YXRlLT5vcHRzLm9uX2Vycm9y ICE9IENPUFlfT05fRVJST1JfU1RPUCAmJgorCQlpZiAoY3N0YXRlLT5vcHRzLm9uX2Vycm9yID09 IENPUFlfT05fRVJST1JfSUdOT1JFICYmCiAJCQljc3RhdGUtPmVzY29udGV4dC0+ZXJyb3Jfb2Nj dXJyZWQpCiAJCXsKIAkJCS8qCi0JCQkgKiBTb2Z0IGVycm9yIG9jY3VycmVkLCBza2lwIHRoaXMg dHVwbGUgYW5kIGRlYWwgd2l0aCBlcnJvcgotCQkJICogaW5mb3JtYXRpb24gYWNjb3JkaW5nIHRv IE9OX0VSUk9SLgorCQkJICogU29mdCBlcnJvciBvY2N1cnJlZCwgc2tpcCB0aGlzIHR1cGxlIGFu ZCBqdXN0IG1ha2UKKwkJCSAqIEVycm9yU2F2ZUNvbnRleHQgcmVhZHkgZm9yIHRoZSBuZXh0IE5l eHRDb3B5RnJvbS4gU2luY2Ugd2UgZG9uJ3QKKwkJCSAqIHNldCBkZXRhaWxzX3dhbnRlZCBhbmQg ZXJyb3JfZGF0YSBpcyBub3QgdG8gYmUgZmlsbGVkLCBqdXN0CisJCQkgKiByZXNldHRpbmcgZXJy b3Jfb2NjdXJyZWQgaXMgZW5vdWdoLgogCQkJICovCi0JCQlpZiAoY3N0YXRlLT5vcHRzLm9uX2Vy cm9yID09IENPUFlfT05fRVJST1JfSUdOT1JFKQotCi0JCQkJLyoKLQkJCQkgKiBKdXN0IG1ha2Ug RXJyb3JTYXZlQ29udGV4dCByZWFkeSBmb3IgdGhlIG5leHQgTmV4dENvcHlGcm9tLgotCQkJCSAq IFNpbmNlIHdlIGRvbid0IHNldCBkZXRhaWxzX3dhbnRlZCBhbmQgZXJyb3JfZGF0YSBpcyBub3Qg dG8KLQkJCQkgKiBiZSBmaWxsZWQsIGp1c3QgcmVzZXR0aW5nIGVycm9yX29jY3VycmVkIGlzIGVu b3VnaC4KLQkJCQkgKi8KLQkJCQljc3RhdGUtPmVzY29udGV4dC0+ZXJyb3Jfb2NjdXJyZWQgPSBm YWxzZTsKKwkJCWNzdGF0ZS0+ZXNjb250ZXh0LT5lcnJvcl9vY2N1cnJlZCA9IGZhbHNlOwogCiAJ CQkvKiBSZXBvcnQgdGhhdCB0aGlzIHR1cGxlIHdhcyBza2lwcGVkIGJ5IHRoZSBPTl9FUlJPUiBj bGF1c2UgKi8KIAkJCXBnc3RhdF9wcm9ncmVzc191cGRhdGVfcGFyYW0oUFJPR1JFU1NfQ09QWV9U VVBMRVNfU0tJUFBFRCwKLQkJCQkJCQkJCQkgKytza2lwcGVkKTsKKwkJCQkJCQkJCQkgY3N0YXRl LT5udW1fZXJyb3JzKTsKIAorCQkJLyogUmVwZWF0IE5leHRDb3B5RnJvbSgpIHVudGlsIG5vIHNv ZnQgZXJyb3Igb2NjdXJzICovCiAJCQljb250aW51ZTsKIAkJfQogCi0tIAoyLjM5LjIKCg== --=_afee6c24482dc9a1d89632b9dffa624d--