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 1st3Ot-00DAcn-Qi for pgsql-hackers@arkaria.postgresql.org; Tue, 24 Sep 2024 11:08:12 +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 1st3Os-006U9N-Uc for pgsql-hackers@arkaria.postgresql.org; Tue, 24 Sep 2024 11:08:10 +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 1st3Os-006U8R-Gj for pgsql-hackers@lists.postgresql.org; Tue, 24 Sep 2024 11:08:10 +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 1st3On-000pZj-Au for pgsql-hackers@postgresql.org; Tue, 24 Sep 2024 11:08:09 +0000 Received: from oss.nttdata.com (localhost [127.0.0.1]) by oss.nttdata.com (Postfix) with ESMTPA id 3B52061048; Tue, 24 Sep 2024 20:08:00 +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="=_f9e8680823ed1f51664a42b20efebdc5" Content-Transfer-Encoding: 8bit Date: Tue, 24 Sep 2024 20:08:00 +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: <81844000-703c-408a-9296-14f5e176098d@oss.nttdata.com> References: <841721f3ca9a69574a72eb141c83933c@oss.nttdata.com> <79a336ccebc70401625743686c41b81a@oss.nttdata.com> <5739a8ee4320a31ca04752fe3972aa73@oss.nttdata.com> <81844000-703c-408a-9296-14f5e176098d@oss.nttdata.com> User-Agent: Roundcube Webmail/1.4.11 Message-ID: <156b2c1bfe27441aa5e59a52d0af5142@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 --=_f9e8680823ed1f51664a42b20efebdc5 Content-Transfer-Encoding: 8bit Content-Type: text/plain; charset=UTF-8; format=flowed On 2024-09-20 11:27, Fujii Masao wrote: Thanks for your comments! > On 2024/09/19 23:16, torikoshia wrote: >>> -       COPY_LOG_VERBOSITY_DEFAULT = 0, /* logs no additional >>> messages, default */ >>> -       COPY_LOG_VERBOSITY_VERBOSE, /* logs additional messages */ >>> +       COPY_LOG_VERBOSITY_SILENT = -1, /* logs none */ >>> +       COPY_LOG_VERBOSITY_DEFAULT = 0, /* logs no additional >>> messages, default */ >>> +       COPY_LOG_VERBOSITY_VERBOSE,     /* logs additional messages >>> */ >>> >>> Why do we need to assign specific numbers like -1 or 0 in this enum >>> definition? >> >> CopyFormatOptions is initialized by palloc0() at the beginning of >> ProcessCopyOptions(). >> The reason to assign specific numbers here is to assign >> COPY_LOG_VERBOSITY_DEFAULT to 0 as default value and sort elements of >> enum according to the amount of logging. > > Understood. > > >> BTW CopyFrom() also uses local variable skipped. It isn't reset like >> file_fdw, but using local variable seems not necessary since we can >> use cstate->num_errors here as well. > > Sounds reasonable to me. > > >>> +               if (cstate->opts.on_error != COPY_ON_ERROR_STOP && >>> +                       cstate->escontext->error_occurred) >>> +               { >>> +                       /* >>> +                        * Soft error occurred, skip this tuple and >>> deal with error >>> +                        * information according to ON_ERROR. >>> +                        */ >>> +                       if (cstate->opts.on_error == >>> COPY_ON_ERROR_IGNORE) >>> >>> If COPY_ON_ERROR_IGNORE indicates tuple skipping, shouldn’t we not >>> only reset >>> error_occurred but also call "pgstat_progress_update_param" and >>> continue within >>> this block? >> >> I may misunderstand your comment, but I thought it to behave as you >> expect in the below codes: > > The "on_error == COPY_ON_ERROR_IGNORE" condition isn't needed since > "on_error != COPY_ON_ERROR_STOP" is already checked, and on_error > accepts > only two values "ignore" and "stop." I assume you added it with > a future option in mind, like "set_to_null" (as discussed in another > thread). > However, I’m not sure how much this helps such future changes. > So, how about simplifying the code by replacing "on_error != > COPY_ON_ERROR_STOP" > with "on_error == COPY_ON_ERROR_IGNORE" at the top and removing > the "on_error == COPY_ON_ERROR_IGNORE" check in the middle? > It could improve readability. Thanks for the explanation and suggestion. Since there is almost the same code in copyfrom.c, attached 0003 patch for refactoring both. >>> +       for(;;) >>> +       { >>> Using "goto" here might improve readability instead of using a "for" >>> loop. >> >> Hmm, AFAIU we need to return a slot here before the end of file is >> reached. >> >> ``` >> --src/backend/executor/execMain.c [ExecutePlan()] >>            /* >>             * if the tuple is null, then we assume there is nothing >> more to >>             * process so we just end the loop... >>             */ >>            if (TupIsNull(slot)) >>                break; >> ``` >> >> When ignoring errors, we have to keep calling NextCopyFrom() until we >> find a non error tuple or EOF and to do so calling NextCopyFrom() in >> for loop seems straight forward. >> >> Replacing the "for" loop using "goto" as follows is possible, but >> seems not so readable because of the upward "goto": > > Understood. > > >> Attached v4 patches reflected these comments. > > Thanks for updating the patches! > > The tab-completion needs to be updated to support the "silent" option? Yes, updated 0002 patch. -- Regards, -- Atsushi Torikoshi NTT DATA Group Corporation --=_f9e8680823ed1f51664a42b20efebdc5 Content-Transfer-Encoding: base64 Content-Type: text/x-diff; name=v4-0001-Add-log_verbosity-to-silent.patch Content-Disposition: attachment; filename=v4-0001-Add-log_verbosity-to-silent.patch; size=5768 RnJvbSA4OWE5NzQ2MWVhYjJlMTRhYjg0Nzc4ZDkzZjBiNGU5MTk5OTYwNmRmIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBdHN1c2hpIFRvcmlrb3NoaSA8dG9yaWtvc2hpYUBvc3MubnR0 ZGF0YS5jb20+CkRhdGU6IFR1ZSwgMjQgU2VwIDIwMjQgMTQ6MzI6NTQgKzA5MDAKU3ViamVjdDog W1BBVENIIHY0IDEvM10gQWRkIGxvZ192ZXJib3NpdHkgdG8gJ3NpbGVudCcKCkN1cnJlbnRseSB3 aGVuIG9uX2Vycm9yIGlzIHNldCB0byBpZ25vcmUsIENPUFkgbG9ncyBhIE5PVElDRSBtZXNzYWdl CmNvbnRhaW5pbmcgdGhlIGlnbm9yZWQgcm93IGNvdW50LgpXaGVuIHVzaW5nIG9uX2Vycm9yIG9w dGlvbiB0byBmaWxlX2ZkdywgaXQnZCBiZSBiZXR0ZXIgdG8gb21pdCB0aGlzCm1lc3NhZ2UgaW4g c29tZSBjYXNlcywgc3VjaCBhcyBmcmVxdWVudCBhY2Nlc3MgdG8gYSBtYWxmb3JtZWQgZmlsZQp2 aWEgdGhlIHNhbWUgZm9yZWlnbiB0YWJsZS4KQXMgYSBwcmVsaW1pbmFyeSBzdGVwIHRvIGFkZCBv bl9lcnJvciBvcHRpb24gdG8gZmlsZV9mZHcsIHRoaXMgcGF0Y2gKYWRkcyBuZXcgdmFsdWUgJ3Np bGVudCcgdG8gbG9nX3ZlcmJvc2l0eSBhbmQgZW5hYmxlcyB0byBzaWxlbmNlCnRoZSBtZXNzYWdl LgotLS0KIGRvYy9zcmMvc2dtbC9yZWYvY29weS5zZ21sICAgICAgICAgIHwgMTAgKysrKysrKy0t LQogc3JjL2JhY2tlbmQvY29tbWFuZHMvY29weS5jICAgICAgICAgfCAgNCArKystCiBzcmMvYmFj a2VuZC9jb21tYW5kcy9jb3B5ZnJvbS5jICAgICB8ICAzICsrLQogc3JjL2luY2x1ZGUvY29tbWFu ZHMvY29weS5oICAgICAgICAgfCAgNiArKysrLS0KIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQv Y29weTIub3V0IHwgIDQgKysrLQogc3JjL3Rlc3QvcmVncmVzcy9zcWwvY29weTIuc3FsICAgICAg fCAgNCArKysrCiA2IGZpbGVzIGNoYW5nZWQsIDIzIGluc2VydGlvbnMoKyksIDggZGVsZXRpb25z KC0pCgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9jb3B5LnNnbWwgYi9kb2Mvc3JjL3Nn bWwvcmVmL2NvcHkuc2dtbAppbmRleCAxNTE4YWY4YTA0Li5kODc2ODRhNWJlIDEwMDY0NAotLS0g YS9kb2Mvc3JjL3NnbWwvcmVmL2NvcHkuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvcmVmL2NvcHku c2dtbApAQCAtNDA3LDYgKzQwNyw4IEBAIENPUFkgeyA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFt ZXRlciI+dGFibGVfbmFtZTwvcmVwbGFjZWFibGU+IFsgKCA8cmVwbGFjZWFibGUKICAgICAgIDxs aXRlcmFsPnZlcmJvc2U8L2xpdGVyYWw+LCBhIDxsaXRlcmFsPk5PVElDRTwvbGl0ZXJhbD4gbWVz c2FnZQogICAgICAgY29udGFpbmluZyB0aGUgbGluZSBvZiB0aGUgaW5wdXQgZmlsZSBhbmQgdGhl IGNvbHVtbiBuYW1lIHdob3NlIGlucHV0CiAgICAgICBjb252ZXJzaW9uIGhhcyBmYWlsZWQgaXMg ZW1pdHRlZCBmb3IgZWFjaCBkaXNjYXJkZWQgcm93LgorICAgICAgV2hlbiBpdCBpcyBzZXQgdG8g PGxpdGVyYWw+c2lsZW50PC9saXRlcmFsPiwgbm8gbWVzc2FnZSBpcyBlbWl0dGVkCisgICAgICBy ZWdhcmRpbmcgaWdub3JlZCByb3dzLgogICAgICA8L3BhcmE+CiAgICAgPC9saXN0aXRlbT4KICAg IDwvdmFybGlzdGVudHJ5PgpAQCAtNDI4LDkgKzQzMCwxMSBAQCBDT1BZIHsgPHJlcGxhY2VhYmxl IGNsYXNzPSJwYXJhbWV0ZXIiPnRhYmxlX25hbWU8L3JlcGxhY2VhYmxlPiBbICggPHJlcGxhY2Vh YmxlCiAgICAgPGxpc3RpdGVtPgogICAgICA8cGFyYT4KICAgICAgIFNwZWNpZnkgdGhlIGFtb3Vu dCBvZiBtZXNzYWdlcyBlbWl0dGVkIGJ5IGEgPGNvbW1hbmQ+Q09QWTwvY29tbWFuZD4KLSAgICAg IGNvbW1hbmQ6IDxsaXRlcmFsPmRlZmF1bHQ8L2xpdGVyYWw+IG9yIDxsaXRlcmFsPnZlcmJvc2U8 L2xpdGVyYWw+LiBJZgotICAgICAgPGxpdGVyYWw+dmVyYm9zZTwvbGl0ZXJhbD4gaXMgc3BlY2lm aWVkLCBhZGRpdGlvbmFsIG1lc3NhZ2VzIGFyZSBlbWl0dGVkCi0gICAgICBkdXJpbmcgcHJvY2Vz c2luZy4KKyAgICAgIGNvbW1hbmQ6IDxsaXRlcmFsPmRlZmF1bHQ8L2xpdGVyYWw+LCA8bGl0ZXJh bD52ZXJib3NlPC9saXRlcmFsPiwgb3IKKyAgICAgIDxsaXRlcmFsPnNpbGVudDwvbGl0ZXJhbD4u CisgICAgICBJZiA8bGl0ZXJhbD52ZXJib3NlPC9saXRlcmFsPiBpcyBzcGVjaWZpZWQsIGFkZGl0 aW9uYWwgbWVzc2FnZXMgYXJlCisgICAgICBlbWl0dGVkIGR1cmluZyBwcm9jZXNzaW5nLgorICAg ICAgPGxpdGVyYWw+c2lsZW50PC9saXRlcmFsPiBzdXBwcmVzc2VzIGJvdGggdmVyYm9zZSBhbmQg ZGVmYXVsdCBtZXNzYWdlcy4KICAgICAgPC9wYXJhPgogICAgICA8cGFyYT4KICAgICAgIFRoaXMg aXMgY3VycmVudGx5IHVzZWQgaW4gPGNvbW1hbmQ+Q09QWSBGUk9NPC9jb21tYW5kPiBjb21tYW5k IHdoZW4KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2NvcHkuYyBiL3NyYy9iYWNr ZW5kL2NvbW1hbmRzL2NvcHkuYwppbmRleCAzYmI1NzlhM2E0Li4wM2ViN2E0ZWJhIDEwMDY0NAot LS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy9jb3B5LmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFu ZHMvY29weS5jCkBAIC00MjcsOSArNDI3LDExIEBAIGRlZkdldENvcHlMb2dWZXJib3NpdHlDaG9p Y2UoRGVmRWxlbSAqZGVmLCBQYXJzZVN0YXRlICpwc3RhdGUpCiAJY2hhcgkgICAqc3ZhbDsKIAog CS8qCi0JICogQWxsb3cgImRlZmF1bHQiLCBvciAidmVyYm9zZSIgdmFsdWVzLgorCSAqIEFsbG93 ICJzaWxlbnQiLCAiZGVmYXVsdCIsIG9yICJ2ZXJib3NlIiB2YWx1ZXMuCiAJICovCiAJc3ZhbCA9 IGRlZkdldFN0cmluZyhkZWYpOworCWlmIChwZ19zdHJjYXNlY21wKHN2YWwsICJzaWxlbnQiKSA9 PSAwKQorCQlyZXR1cm4gQ09QWV9MT0dfVkVSQk9TSVRZX1NJTEVOVDsKIAlpZiAocGdfc3RyY2Fz ZWNtcChzdmFsLCAiZGVmYXVsdCIpID09IDApCiAJCXJldHVybiBDT1BZX0xPR19WRVJCT1NJVFlf REVGQVVMVDsKIAlpZiAocGdfc3RyY2FzZWNtcChzdmFsLCAidmVyYm9zZSIpID09IDApCmRpZmYg LS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy9jb3B5ZnJvbS5jIGIvc3JjL2JhY2tlbmQvY29t bWFuZHMvY29weWZyb20uYwppbmRleCAyZDM0NjI5MTNlLi40Nzg3OTk5NGY3IDEwMDY0NAotLS0g YS9zcmMvYmFja2VuZC9jb21tYW5kcy9jb3B5ZnJvbS5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1h bmRzL2NvcHlmcm9tLmMKQEAgLTEzMjAsNyArMTMyMCw4IEBAIENvcHlGcm9tKENvcHlGcm9tU3Rh dGUgY3N0YXRlKQogCWVycm9yX2NvbnRleHRfc3RhY2sgPSBlcnJjYWxsYmFjay5wcmV2aW91czsK IAogCWlmIChjc3RhdGUtPm9wdHMub25fZXJyb3IgIT0gQ09QWV9PTl9FUlJPUl9TVE9QICYmCi0J CWNzdGF0ZS0+bnVtX2Vycm9ycyA+IDApCisJCWNzdGF0ZS0+bnVtX2Vycm9ycyA+IDAgJiYKKwkJ Y3N0YXRlLT5vcHRzLmxvZ192ZXJib3NpdHkgPj0gQ09QWV9MT0dfVkVSQk9TSVRZX0RFRkFVTFQp CiAJCWVyZXBvcnQoTk9USUNFLAogCQkJCWVycm1zZ19wbHVyYWwoIiVsbHUgcm93IHdhcyBza2lw cGVkIGR1ZSB0byBkYXRhIHR5cGUgaW5jb21wYXRpYmlsaXR5IiwKIAkJCQkJCQkgICIlbGx1IHJv d3Mgd2VyZSBza2lwcGVkIGR1ZSB0byBkYXRhIHR5cGUgaW5jb21wYXRpYmlsaXR5IiwKZGlmZiAt LWdpdCBhL3NyYy9pbmNsdWRlL2NvbW1hbmRzL2NvcHkuaCBiL3NyYy9pbmNsdWRlL2NvbW1hbmRz L2NvcHkuaAppbmRleCAxNDFmZDQ4ZGMxLi45ZmIxM2U5NTJkIDEwMDY0NAotLS0gYS9zcmMvaW5j bHVkZS9jb21tYW5kcy9jb3B5LmgKKysrIGIvc3JjL2luY2x1ZGUvY29tbWFuZHMvY29weS5oCkBA IC00NSw4ICs0NSwxMCBAQCB0eXBlZGVmIGVudW0gQ29weU9uRXJyb3JDaG9pY2UKICAqLwogdHlw ZWRlZiBlbnVtIENvcHlMb2dWZXJib3NpdHlDaG9pY2UKIHsKLQlDT1BZX0xPR19WRVJCT1NJVFlf REVGQVVMVCA9IDAsIC8qIGxvZ3Mgbm8gYWRkaXRpb25hbCBtZXNzYWdlcywgZGVmYXVsdCAqLwot CUNPUFlfTE9HX1ZFUkJPU0lUWV9WRVJCT1NFLCAvKiBsb2dzIGFkZGl0aW9uYWwgbWVzc2FnZXMg Ki8KKwlDT1BZX0xPR19WRVJCT1NJVFlfU0lMRU5UID0gLTEsCS8qIGxvZ3Mgbm9uZSAqLworCUNP UFlfTE9HX1ZFUkJPU0lUWV9ERUZBVUxUID0gMCwJLyogbG9ncyBubyBhZGRpdGlvbmFsIG1lc3Nh Z2VzLiBBcyB0aGlzIGlzCisJCQkJCQkJCQkgICB0aGUgZGVmYXVsdCwgYXNzaWduIDAgKi8KKwlD T1BZX0xPR19WRVJCT1NJVFlfVkVSQk9TRSwJLyogbG9ncyBhZGRpdGlvbmFsIG1lc3NhZ2VzICov CiB9IENvcHlMb2dWZXJib3NpdHlDaG9pY2U7CiAKIC8qCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9y ZWdyZXNzL2V4cGVjdGVkL2NvcHkyLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvY29w eTIub3V0CmluZGV4IDYxYTE5Y2RjNGMuLjRlNzUyOTc3YjUgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0 L3JlZ3Jlc3MvZXhwZWN0ZWQvY29weTIub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0 ZWQvY29weTIub3V0CkBAIC03NjAsNiArNzYwLDcgQEAgQ09QWSBjaGVja19pZ25fZXJyMiBGUk9N IFNURElOIFdJVEggKG9uX2Vycm9yIGlnbm9yZSwgbG9nX3ZlcmJvc2l0eSB2ZXJib3NlKTsKIE5P VElDRTogIHNraXBwaW5nIHJvdyBkdWUgdG8gZGF0YSB0eXBlIGluY29tcGF0aWJpbGl0eSBhdCBs aW5lIDIgZm9yIGNvbHVtbiAibCI6IG51bGwgaW5wdXQKIENPTlRFWFQ6ICBDT1BZIGNoZWNrX2ln bl9lcnIyCiBOT1RJQ0U6ICAxIHJvdyB3YXMgc2tpcHBlZCBkdWUgdG8gZGF0YSB0eXBlIGluY29t cGF0aWJpbGl0eQorQ09QWSBjaGVja19pZ25fZXJyMiBGUk9NIFNURElOIFdJVEggKG9uX2Vycm9y IGlnbm9yZSwgbG9nX3ZlcmJvc2l0eSBzaWxlbnQpOwogLS0gcmVzZXQgY29udGV4dCBjaG9pY2UK IFxzZXQgU0hPV19DT05URVhUIGVycm9ycwogU0VMRUNUICogRlJPTSBjaGVja19pZ25fZXJyOwpA QCAtNzc0LDcgKzc3NSw4IEBAIFNFTEVDVCAqIEZST00gY2hlY2tfaWduX2VycjI7CiAgbiB8ICBt ICB8IGsgfCAgIGwgICAKIC0tLSstLS0tLSstLS0rLS0tLS0tLQogIDEgfCB7MX0gfCAxIHwgJ2Zv bycKLSgxIHJvdykKKyAzIHwgezN9IHwgMyB8ICdiYXInCisoMiByb3dzKQogCiAtLSB0ZXN0IGRh dGF0eXBlIGVycm9yIHRoYXQgY2FuJ3QgYmUgaGFuZGxlZCBhcyBzb2Z0OiBzaG91bGQgZmFpbAog Q1JFQVRFIFRBQkxFIGhhcmRfZXJyKGZvbyB3aWRnZXQpOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3Qv cmVncmVzcy9zcWwvY29weTIuc3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvY29weTIuc3FsCmlu ZGV4IDhiMTQ5NjIxOTQuLmZhNmFhMTczNDQgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mv c3FsL2NvcHkyLnNxbAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9jb3B5Mi5zcWwKQEAgLTUz Myw2ICs1MzMsMTAgQEAgQ09QWSBjaGVja19pZ25fZXJyMiBGUk9NIFNURElOIFdJVEggKG9uX2Vy cm9yIGlnbm9yZSwgbG9nX3ZlcmJvc2l0eSB2ZXJib3NlKTsKIDEJezF9CTEJJ2ZvbycKIDIJezJ9 CTIJXE4KIFwuCitDT1BZIGNoZWNrX2lnbl9lcnIyIEZST00gU1RESU4gV0lUSCAob25fZXJyb3Ig aWdub3JlLCBsb2dfdmVyYm9zaXR5IHNpbGVudCk7CiszCXszfQkzCSdiYXInCis0CXs0fQk0CVxO CitcLgogCiAtLSByZXNldCBjb250ZXh0IGNob2ljZQogXHNldCBTSE9XX0NPTlRFWFQgZXJyb3Jz CgpiYXNlLWNvbW1pdDogYmJiYTU5ZTY5YTU2ZTE2MjJlMjcwZjVlNDdiNDAyYzNhOTA0Y2VmYwot LSAKMi4zOS4yCgo= --=_f9e8680823ed1f51664a42b20efebdc5 Content-Transfer-Encoding: base64 Content-Type: text/x-diff; name=v4-0002-Add-on_error-and-log_verbosity-options-to-file_fd.patch Content-Disposition: attachment; filename=v4-0002-Add-on_error-and-log_verbosity-options-to-file_fd.patch; size=7741 RnJvbSBjM2FkMzIxMWM2NjYwZjc0YWJkYTMwYjA2MDdkYTZjZjlmN2ZiMmIwIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBdHN1c2hpIFRvcmlrb3NoaSA8dG9yaWtvc2hpYUBvc3MubnR0 ZGF0YS5jb20+CkRhdGU6IFR1ZSwgMjQgU2VwIDIwMjQgMTQ6MzY6MTcgKzA5MDAKU3ViamVjdDog W1BBVENIIHY0IDIvM10gQWRkIG9uX2Vycm9yIGFuZCBsb2dfdmVyYm9zaXR5IG9wdGlvbnMgdG8g ZmlsZV9mZHcKCjllMmQ4NzAsIGI3MjViN2UgYW5kIGY1YTIyNzggaW50cm9kdWNlZCBvbl9lcnJv ciBhbmQgbG9nX3ZlcmJvc2l0eSB0byBDT1BZLgpTaW5jZSB0aGVzZSBvcHRpb25zIHNlZW0gdXNl ZnVsIHRvIGZpbGVfZmR3IHdoZW4gYWNjZXNzaW5nIGRpcnR5IGRhdGEsCnRoaXMgcGF0Y2ggYWRk cyB0aGVtIHRvIGZpbGVfZmR3LgotLS0KIGNvbnRyaWIvZmlsZV9mZHcvZXhwZWN0ZWQvZmlsZV9m ZHcub3V0IHwgMTggKysrKysrKysKIGNvbnRyaWIvZmlsZV9mZHcvZmlsZV9mZHcuYyAgICAgICAg ICAgIHwgNjAgKysrKysrKysrKysrKysrKysrKysrKystLS0KIGNvbnRyaWIvZmlsZV9mZHcvc3Fs L2ZpbGVfZmR3LnNxbCAgICAgIHwgIDYgKysrCiBkb2Mvc3JjL3NnbWwvZmlsZS1mZHcuc2dtbCAg ICAgICAgICAgICB8IDIzICsrKysrKysrKysKIHNyYy9iaW4vcHNxbC90YWItY29tcGxldGUuYyAg ICAgICAgICAgIHwgIDIgKy0KIDUgZmlsZXMgY2hhbmdlZCwgMTAxIGluc2VydGlvbnMoKyksIDgg ZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvY29udHJpYi9maWxlX2Zkdy9leHBlY3RlZC9maWxl X2Zkdy5vdXQgYi9jb250cmliL2ZpbGVfZmR3L2V4cGVjdGVkL2ZpbGVfZmR3Lm91dAppbmRleCA4 NmMxNDhhODZiLi4yZWEwZGVlYjEwIDEwMDY0NAotLS0gYS9jb250cmliL2ZpbGVfZmR3L2V4cGVj dGVkL2ZpbGVfZmR3Lm91dAorKysgYi9jb250cmliL2ZpbGVfZmR3L2V4cGVjdGVkL2ZpbGVfZmR3 Lm91dApAQCAtMjA2LDYgKzIwNiwyNCBAQCBTRUxFQ1QgKiBGUk9NIGFnZ19jc3YgYyBKT0lOIGFn Z190ZXh0IHQgT04gKHQuYSA9IGMuYSkgT1JERVIgQlkgYy5hOwogU0VMRUNUICogRlJPTSBhZ2df YmFkOyAgICAgICAgICAgICAgIC0tIEVSUk9SCiBFUlJPUjogIGludmFsaWQgaW5wdXQgc3ludGF4 IGZvciB0eXBlIHJlYWw6ICJhYWEiCiBDT05URVhUOiAgQ09QWSBhZ2dfYmFkLCBsaW5lIDMsIGNv bHVtbiBiOiAiYWFhIgorLS0gb25fZXJyb3IgYW5kIGxvZ192ZXJib3NpdHkgdGVzdHMKK0FMVEVS IEZPUkVJR04gVEFCTEUgYWdnX2JhZCBPUFRJT05TIChBREQgb25fZXJyb3IgJ2lnbm9yZScpOwor U0VMRUNUICogRlJPTSBhZ2dfYmFkOworTk9USUNFOiAgMSByb3cgd2FzIHNraXBwZWQgZHVlIHRv IGRhdGEgdHlwZSBpbmNvbXBhdGliaWxpdHkKKyAgYSAgfCAgIGIgICAgCistLS0tLSstLS0tLS0t LQorIDEwMCB8IDk5LjA5NworICA0MiB8IDMyNC43OAorKDIgcm93cykKKworQUxURVIgRk9SRUlH TiBUQUJMRSBhZ2dfYmFkIE9QVElPTlMgKEFERCBsb2dfdmVyYm9zaXR5ICdzaWxlbnQnKTsKK1NF TEVDVCAqIEZST00gYWdnX2JhZDsKKyAgYSAgfCAgIGIgICAgCistLS0tLSstLS0tLS0tLQorIDEw MCB8IDk5LjA5NworICA0MiB8IDMyNC43OAorKDIgcm93cykKKwogLS0gbWlzYyBxdWVyeSB0ZXN0 cwogXHQgb24KIFNFTEVDVCBleHBsYWluX2ZpbHRlcignRVhQTEFJTiAoVkVSQk9TRSwgQ09TVFMg RkFMU0UpIFNFTEVDVCAqIEZST00gYWdnX2NzdicpOwpkaWZmIC0tZ2l0IGEvY29udHJpYi9maWxl X2Zkdy9maWxlX2Zkdy5jIGIvY29udHJpYi9maWxlX2Zkdy9maWxlX2Zkdy5jCmluZGV4IGQxNjgy MWY4ZTEuLjgyZmQ5Y2JlNTUgMTAwNjQ0Ci0tLSBhL2NvbnRyaWIvZmlsZV9mZHcvZmlsZV9mZHcu YworKysgYi9jb250cmliL2ZpbGVfZmR3L2ZpbGVfZmR3LmMKQEAgLTIyLDggKzIyLDEwIEBACiAj aW5jbHVkZSAiY2F0YWxvZy9wZ19hdXRoaWQuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX2ZvcmVp Z25fdGFibGUuaCIKICNpbmNsdWRlICJjb21tYW5kcy9jb3B5LmgiCisjaW5jbHVkZSAiY29tbWFu ZHMvY29weWZyb21faW50ZXJuYWwuaCIKICNpbmNsdWRlICJjb21tYW5kcy9kZWZyZW0uaCIKICNp bmNsdWRlICJjb21tYW5kcy9leHBsYWluLmgiCisjaW5jbHVkZSAiY29tbWFuZHMvcHJvZ3Jlc3Mu aCIKICNpbmNsdWRlICJjb21tYW5kcy92YWN1dW0uaCIKICNpbmNsdWRlICJmb3JlaWduL2Zkd2Fw aS5oIgogI2luY2x1ZGUgImZvcmVpZ24vZm9yZWlnbi5oIgpAQCAtMzQsNiArMzYsNyBAQAogI2lu Y2x1ZGUgIm9wdGltaXplci9wbGFubWFpbi5oIgogI2luY2x1ZGUgIm9wdGltaXplci9yZXN0cmlj dGluZm8uaCIKICNpbmNsdWRlICJ1dGlscy9hY2wuaCIKKyNpbmNsdWRlICJ1dGlscy9iYWNrZW5k X3Byb2dyZXNzLmgiCiAjaW5jbHVkZSAidXRpbHMvbWVtdXRpbHMuaCIKICNpbmNsdWRlICJ1dGls cy9yZWwuaCIKICNpbmNsdWRlICJ1dGlscy9zYW1wbGluZy5oIgpAQCAtNzQsNiArNzcsOCBAQCBz dGF0aWMgY29uc3Qgc3RydWN0IEZpbGVGZHdPcHRpb24gdmFsaWRfb3B0aW9uc1tdID0gewogCXsi bnVsbCIsIEZvcmVpZ25UYWJsZVJlbGF0aW9uSWR9LAogCXsiZGVmYXVsdCIsIEZvcmVpZ25UYWJs ZVJlbGF0aW9uSWR9LAogCXsiZW5jb2RpbmciLCBGb3JlaWduVGFibGVSZWxhdGlvbklkfSwKKwl7 Im9uX2Vycm9yIiwgRm9yZWlnblRhYmxlUmVsYXRpb25JZH0sCisJeyJsb2dfdmVyYm9zaXR5Iiwg Rm9yZWlnblRhYmxlUmVsYXRpb25JZH0sCiAJeyJmb3JjZV9ub3RfbnVsbCIsIEF0dHJpYnV0ZVJl bGF0aW9uSWR9LAogCXsiZm9yY2VfbnVsbCIsIEF0dHJpYnV0ZVJlbGF0aW9uSWR9LAogCkBAIC03 MjUsMTIgKzczMCwxMiBAQCBmaWxlSXRlcmF0ZUZvcmVpZ25TY2FuKEZvcmVpZ25TY2FuU3RhdGUg Km5vZGUpCiAJRXhwckNvbnRleHQgKmVjb250ZXh0OwogCU1lbW9yeUNvbnRleHQgb2xkY29udGV4 dDsKIAlUdXBsZVRhYmxlU2xvdCAqc2xvdCA9IG5vZGUtPnNzLnNzX1NjYW5UdXBsZVNsb3Q7Ci0J Ym9vbAkJZm91bmQ7CisJQ29weUZyb21TdGF0ZSBjc3RhdGUgPSBmZXN0YXRlLT5jc3RhdGU7CiAJ RXJyb3JDb250ZXh0Q2FsbGJhY2sgZXJyY2FsbGJhY2s7CiAKIAkvKiBTZXQgdXAgY2FsbGJhY2sg dG8gaWRlbnRpZnkgZXJyb3IgbGluZSBudW1iZXIuICovCiAJZXJyY2FsbGJhY2suY2FsbGJhY2sg PSBDb3B5RnJvbUVycm9yQ2FsbGJhY2s7Ci0JZXJyY2FsbGJhY2suYXJnID0gKHZvaWQgKikgZmVz dGF0ZS0+Y3N0YXRlOworCWVycmNhbGxiYWNrLmFyZyA9ICh2b2lkICopIGNzdGF0ZTsKIAllcnJj YWxsYmFjay5wcmV2aW91cyA9IGVycm9yX2NvbnRleHRfc3RhY2s7CiAJZXJyb3JfY29udGV4dF9z dGFjayA9ICZlcnJjYWxsYmFjazsKIApAQCAtNzUxLDEwICs3NTYsNDAgQEAgZmlsZUl0ZXJhdGVG b3JlaWduU2NhbihGb3JlaWduU2NhblN0YXRlICpub2RlKQogCSAqIHN3aXRjaCBpbiBjYXNlIHdl IGFyZSBkb2luZyB0aGF0LgogCSAqLwogCW9sZGNvbnRleHQgPSBNZW1vcnlDb250ZXh0U3dpdGNo VG8oR2V0UGVyVHVwbGVNZW1vcnlDb250ZXh0KGVzdGF0ZSkpOwotCWZvdW5kID0gTmV4dENvcHlG cm9tKGZlc3RhdGUtPmNzdGF0ZSwgZWNvbnRleHQsCi0JCQkJCQkgc2xvdC0+dHRzX3ZhbHVlcywg c2xvdC0+dHRzX2lzbnVsbCk7Ci0JaWYgKGZvdW5kKQorCisJZm9yKDs7KQorCXsKKwkJaWYgKCFO ZXh0Q29weUZyb20oY3N0YXRlLCBlY29udGV4dCwKKwkJCQkJIHNsb3QtPnR0c192YWx1ZXMsIHNs b3QtPnR0c19pc251bGwpKQorCQkJYnJlYWs7CisKKwkJaWYgKGNzdGF0ZS0+b3B0cy5vbl9lcnJv ciAhPSBDT1BZX09OX0VSUk9SX1NUT1AgJiYKKwkJCWNzdGF0ZS0+ZXNjb250ZXh0LT5lcnJvcl9v Y2N1cnJlZCkKKwkJeworCQkJLyoKKwkJCSAqIFNvZnQgZXJyb3Igb2NjdXJyZWQsIHNraXAgdGhp cyB0dXBsZSBhbmQgZGVhbCB3aXRoIGVycm9yCisJCQkgKiBpbmZvcm1hdGlvbiBhY2NvcmRpbmcg dG8gT05fRVJST1IuCisJCQkgKi8KKwkJCWlmIChjc3RhdGUtPm9wdHMub25fZXJyb3IgPT0gQ09Q WV9PTl9FUlJPUl9JR05PUkUpCisKKwkJCQkvKgorCQkJCSAqIEp1c3QgbWFrZSBFcnJvclNhdmVD b250ZXh0IHJlYWR5IGZvciB0aGUgbmV4dCBOZXh0Q29weUZyb20uCisJCQkJICogU2luY2Ugd2Ug ZG9uJ3Qgc2V0IGRldGFpbHNfd2FudGVkIGFuZCBlcnJvcl9kYXRhIGlzIG5vdCB0bworCQkJCSAq IGJlIGZpbGxlZCwganVzdCByZXNldHRpbmcgZXJyb3Jfb2NjdXJyZWQgaXMgZW5vdWdoLgorCQkJ CSAqLworCQkJCWNzdGF0ZS0+ZXNjb250ZXh0LT5lcnJvcl9vY2N1cnJlZCA9IGZhbHNlOworCisJ CQkvKiBSZXBvcnQgdGhhdCB0aGlzIHR1cGxlIHdhcyBza2lwcGVkIGJ5IHRoZSBPTl9FUlJPUiBj bGF1c2UgKi8KKwkJCXBnc3RhdF9wcm9ncmVzc191cGRhdGVfcGFyYW0oUFJPR1JFU1NfQ09QWV9U VVBMRVNfU0tJUFBFRCwKKwkJCQkJCQkJCQljc3RhdGUtPm51bV9lcnJvcnMpOworCisJCQkvKiBS ZXBlYXQgTmV4dENvcHlGcm9tKCkgdW50aWwgbm8gc29mdCBlcnJvciBvY2N1cnMgKi8KKwkJCWNv bnRpbnVlOworCQl9CisKIAkJRXhlY1N0b3JlVmlydHVhbFR1cGxlKHNsb3QpOworCQlicmVhazsK Kwl9CiAKIAkvKiBTd2l0Y2ggYmFjayB0byBvcmlnaW5hbCBtZW1vcnkgY29udGV4dCAqLwogCU1l bW9yeUNvbnRleHRTd2l0Y2hUbyhvbGRjb250ZXh0KTsKQEAgLTc5Niw4ICs4MzEsMTkgQEAgZmls ZUVuZEZvcmVpZ25TY2FuKEZvcmVpZ25TY2FuU3RhdGUgKm5vZGUpCiAJRmlsZUZkd0V4ZWN1dGlv blN0YXRlICpmZXN0YXRlID0gKEZpbGVGZHdFeGVjdXRpb25TdGF0ZSAqKSBub2RlLT5mZHdfc3Rh dGU7CiAKIAkvKiBpZiBmZXN0YXRlIGlzIE5VTEwsIHdlIGFyZSBpbiBFWFBMQUlOOyBub3RoaW5n IHRvIGRvICovCi0JaWYgKGZlc3RhdGUpCi0JCUVuZENvcHlGcm9tKGZlc3RhdGUtPmNzdGF0ZSk7 CisJaWYgKCFmZXN0YXRlKQorCQlyZXR1cm47CisKKwlpZiAoZmVzdGF0ZS0+Y3N0YXRlLT5vcHRz Lm9uX2Vycm9yICE9IENPUFlfT05fRVJST1JfU1RPUCAmJgorCQlmZXN0YXRlLT5jc3RhdGUtPm51 bV9lcnJvcnMgPiAwICYmCisJCWZlc3RhdGUtPmNzdGF0ZS0+b3B0cy5sb2dfdmVyYm9zaXR5ID49 IENPUFlfTE9HX1ZFUkJPU0lUWV9ERUZBVUxUKQorCQllcmVwb3J0KE5PVElDRSwKKwkJCQllcnJt c2dfcGx1cmFsKCIlbGx1IHJvdyB3YXMgc2tpcHBlZCBkdWUgdG8gZGF0YSB0eXBlIGluY29tcGF0 aWJpbGl0eSIsCisJCQkJCQkJICAiJWxsdSByb3dzIHdlcmUgc2tpcHBlZCBkdWUgdG8gZGF0YSB0 eXBlIGluY29tcGF0aWJpbGl0eSIsCisJCQkJCQkJICAodW5zaWduZWQgbG9uZyBsb25nKSBmZXN0 YXRlLT5jc3RhdGUtPm51bV9lcnJvcnMsCisJCQkJCQkJICAodW5zaWduZWQgbG9uZyBsb25nKSBm ZXN0YXRlLT5jc3RhdGUtPm51bV9lcnJvcnMpKTsKKworCUVuZENvcHlGcm9tKGZlc3RhdGUtPmNz dGF0ZSk7CiB9CiAKIC8qCmRpZmYgLS1naXQgYS9jb250cmliL2ZpbGVfZmR3L3NxbC9maWxlX2Zk dy5zcWwgYi9jb250cmliL2ZpbGVfZmR3L3NxbC9maWxlX2Zkdy5zcWwKaW5kZXggZjA1NDhlMTRl MS4uYTQxNzA2N2U1NCAxMDA2NDQKLS0tIGEvY29udHJpYi9maWxlX2Zkdy9zcWwvZmlsZV9mZHcu c3FsCisrKyBiL2NvbnRyaWIvZmlsZV9mZHcvc3FsL2ZpbGVfZmR3LnNxbApAQCAtMTUwLDYgKzE1 MCwxMiBAQCBTRUxFQ1QgKiBGUk9NIGFnZ19jc3YgYyBKT0lOIGFnZ190ZXh0IHQgT04gKHQuYSA9 IGMuYSkgT1JERVIgQlkgYy5hOwogLS0gZXJyb3IgY29udGV4dCByZXBvcnQgdGVzdHMKIFNFTEVD VCAqIEZST00gYWdnX2JhZDsgICAgICAgICAgICAgICAtLSBFUlJPUgogCistLSBvbl9lcnJvciBh bmQgbG9nX3ZlcmJvc2l0eSB0ZXN0cworQUxURVIgRk9SRUlHTiBUQUJMRSBhZ2dfYmFkIE9QVElP TlMgKEFERCBvbl9lcnJvciAnaWdub3JlJyk7CitTRUxFQ1QgKiBGUk9NIGFnZ19iYWQ7CitBTFRF UiBGT1JFSUdOIFRBQkxFIGFnZ19iYWQgT1BUSU9OUyAoQUREIGxvZ192ZXJib3NpdHkgJ3NpbGVu dCcpOworU0VMRUNUICogRlJPTSBhZ2dfYmFkOworCiAtLSBtaXNjIHF1ZXJ5IHRlc3RzCiBcdCBv bgogU0VMRUNUIGV4cGxhaW5fZmlsdGVyKCdFWFBMQUlOIChWRVJCT1NFLCBDT1NUUyBGQUxTRSkg U0VMRUNUICogRlJPTSBhZ2dfY3N2Jyk7CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvZmlsZS1m ZHcuc2dtbCBiL2RvYy9zcmMvc2dtbC9maWxlLWZkdy5zZ21sCmluZGV4IGYyZjJhZjlhNTkuLmJi MzU3OWIwNzcgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9maWxlLWZkdy5zZ21sCisrKyBiL2Rv Yy9zcmMvc2dtbC9maWxlLWZkdy5zZ21sCkBAIC0xMjYsNiArMTI2LDI5IEBACiAgICA8L2xpc3Rp dGVtPgogICA8L3Zhcmxpc3RlbnRyeT4KIAorICA8dmFybGlzdGVudHJ5PgorICAgPHRlcm0+PGxp dGVyYWw+b25fZXJyb3I8L2xpdGVyYWw+PC90ZXJtPgorCisgICA8bGlzdGl0ZW0+CisgICAgPHBh cmE+CisgICAgIFNwZWNpZmllcyBob3cgdG8gYmVoYXZlIHdoZW4gZW5jb3VudGVyaW5nIGFuIGVy cm9yIGNvbnZlcnRpbmcgYSBjb2x1bW4ncworICAgICBpbnB1dCB2YWx1ZSBpbnRvIGl0cyBkYXRh IHR5cGUsCisgICAgIHRoZSBzYW1lIGFzIDxjb21tYW5kPkNPUFk8L2NvbW1hbmQ+J3MgPGxpdGVy YWw+T05fRVJST1I8L2xpdGVyYWw+IG9wdGlvbi4KKyAgICA8L3BhcmE+CisgICA8L2xpc3RpdGVt PgorICA8L3Zhcmxpc3RlbnRyeT4KKworICA8dmFybGlzdGVudHJ5PgorICAgPHRlcm0+PGxpdGVy YWw+bG9nX3ZlcmJvc2l0eTwvbGl0ZXJhbD48L3Rlcm0+CisKKyAgIDxsaXN0aXRlbT4KKyAgICA8 cGFyYT4KKyAgICAgU3BlY2lmaWVzIHRoZSBhbW91bnQgb2YgbWVzc2FnZXMgZW1pdHRlZCBieSA8 bGl0ZXJhbD5maWxlX2ZkdzwvbGl0ZXJhbD4sCisgICAgIHRoZSBzYW1lIGFzIDxjb21tYW5kPkNP UFk8L2NvbW1hbmQ+J3MgPGxpdGVyYWw+TE9HX1ZFUkJPU0lUWTwvbGl0ZXJhbD4gb3B0aW9uLgor ICAgIDwvcGFyYT4KKyAgIDwvbGlzdGl0ZW0+CisgIDwvdmFybGlzdGVudHJ5PgorCiAgPC92YXJp YWJsZWxpc3Q+CiAKICA8cGFyYT4KZGlmZiAtLWdpdCBhL3NyYy9iaW4vcHNxbC90YWItY29tcGxl dGUuYyBiL3NyYy9iaW4vcHNxbC90YWItY29tcGxldGUuYwppbmRleCBhN2NjZGU2ZDdkLi42NTMw YjBmMWNlIDEwMDY0NAotLS0gYS9zcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmMKKysrIGIvc3Jj L2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5jCkBAIC0yOTE2LDcgKzI5MTYsNyBAQCBwc3FsX2NvbXBs ZXRpb24oY29uc3QgY2hhciAqdGV4dCwgaW50IHN0YXJ0LCBpbnQgZW5kKQogCiAJLyogQ29tcGxl dGUgQ09QWSA8c3RoPiBGUk9NIGZpbGVuYW1lIFdJVEggKExPR19WRVJCT1NJVFkgKi8KIAllbHNl IGlmIChNYXRjaGVzKCJDT1BZfFxcY29weSIsIE1hdGNoQW55LCAiRlJPTXxUTyIsIE1hdGNoQW55 LCAiV0lUSCIsICIoIiwgIkxPR19WRVJCT1NJVFkiKSkKLQkJQ09NUExFVEVfV0lUSCgiZGVmYXVs dCIsICJ2ZXJib3NlIik7CisJCUNPTVBMRVRFX1dJVEgoInNpbGVudCIsICJkZWZhdWx0IiwgInZl cmJvc2UiKTsKIAogCS8qIENvbXBsZXRlIENPUFkgPHN0aD4gRlJPTSA8c3RoPiBXSVRIICg8b3B0 aW9ucz4pICovCiAJZWxzZSBpZiAoTWF0Y2hlcygiQ09QWXxcXGNvcHkiLCBNYXRjaEFueSwgIkZS T00iLCBNYXRjaEFueSwgIldJVEgiLCBNYXRjaEFueSkpCi0tIAoyLjM5LjIKCg== --=_f9e8680823ed1f51664a42b20efebdc5 Content-Transfer-Encoding: base64 Content-Type: text/x-diff; name=v4-0003-Refactor-CopyOnErrorChoice-option.patch Content-Disposition: attachment; filename=v4-0003-Refactor-CopyOnErrorChoice-option.patch; size=3418 RnJvbSAwOTZlMjJjNzA1YjE2NWNjMWM4ZjY4NTBmZWUxZTY0NjBhMmIzYTlkIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBdHN1c2hpIFRvcmlrb3NoaSA8dG9yaWtvc2hpYUBvc3MubnR0 ZGF0YS5jb20+CkRhdGU6IFR1ZSwgMjQgU2VwIDIwMjQgMTQ6NDA6NTYgKzA5MDAKU3ViamVjdDog W1BBVENIIHY0IDMvM10gUmVmYWN0b3IgQ29weU9uRXJyb3JDaG9pY2Ugb3B0aW9uIGhhbmRsaW5n CgpDdXJyZW50bHkgd2UgYXNzdW1lIHRoYXQgdGhlIHBvc3NpYmxlIHZhbHVlcyBvZiBDb3B5T25F cnJvckNob2ljZSB3aWxsCmluY3JlYXNlIGluIHRoZSBmdXR1ZSwgYnV0IGl0IGRlY3JlYXNlcyB0 aGUgcmVhZGFiaWxpdHkuClRoaXMgcGF0Y2ggc2ltcGxpZmllcyB0aGUgbG9naWMgdXNpbmcgdGhl IGNvbmRpdGlvbiB0aGF0IENvcHlPbkVycm9yQ2hvaWNlCmhhcyBvbmx5IDIgb3B0aW9ucyBub3cu CgotLS0KIGNvbnRyaWIvZmlsZV9mZHcvZmlsZV9mZHcuYyAgICAgfCAxOCArKysrKystLS0tLS0t LS0tLS0KIHNyYy9iYWNrZW5kL2NvbW1hbmRzL2NvcHlmcm9tLmMgfCAxNyArKysrKystLS0tLS0t LS0tLQogMiBmaWxlcyBjaGFuZ2VkLCAxMiBpbnNlcnRpb25zKCspLCAyMyBkZWxldGlvbnMoLSkK CmRpZmYgLS1naXQgYS9jb250cmliL2ZpbGVfZmR3L2ZpbGVfZmR3LmMgYi9jb250cmliL2ZpbGVf ZmR3L2ZpbGVfZmR3LmMKaW5kZXggODJmZDljYmU1NS4uMmNmMWYyY2M4NSAxMDA2NDQKLS0tIGEv Y29udHJpYi9maWxlX2Zkdy9maWxlX2Zkdy5jCisrKyBiL2NvbnRyaWIvZmlsZV9mZHcvZmlsZV9m ZHcuYwpAQCAtNzYzLDI3ICs3NjMsMjEgQEAgZmlsZUl0ZXJhdGVGb3JlaWduU2NhbihGb3JlaWdu U2NhblN0YXRlICpub2RlKQogCQkJCQkgc2xvdC0+dHRzX3ZhbHVlcywgc2xvdC0+dHRzX2lzbnVs bCkpCiAJCQlicmVhazsKIAotCQlpZiAoY3N0YXRlLT5vcHRzLm9uX2Vycm9yICE9IENPUFlfT05f RVJST1JfU1RPUCAmJgorCQlpZiAoY3N0YXRlLT5vcHRzLm9uX2Vycm9yID09IENPUFlfT05fRVJS T1JfSUdOT1JFICYmCiAJCQljc3RhdGUtPmVzY29udGV4dC0+ZXJyb3Jfb2NjdXJyZWQpCiAJCXsK IAkJCS8qCi0JCQkgKiBTb2Z0IGVycm9yIG9jY3VycmVkLCBza2lwIHRoaXMgdHVwbGUgYW5kIGRl YWwgd2l0aCBlcnJvcgotCQkJICogaW5mb3JtYXRpb24gYWNjb3JkaW5nIHRvIE9OX0VSUk9SLgor CQkJICogU29mdCBlcnJvciBvY2N1cnJlZCwgc2tpcCB0aGlzIHR1cGxlIGFuZCBqdXN0IG1ha2UK KwkJCSAqIEVycm9yU2F2ZUNvbnRleHQgcmVhZHkgZm9yIHRoZSBuZXh0IE5leHRDb3B5RnJvbS4g U2luY2Ugd2UgZG9uJ3QKKwkJCSAqIHNldCBkZXRhaWxzX3dhbnRlZCBhbmQgZXJyb3JfZGF0YSBp cyBub3QgdG8gYmUgZmlsbGVkLCBqdXN0CisJCQkgKiByZXNldHRpbmcgZXJyb3Jfb2NjdXJyZWQg aXMgZW5vdWdoLgogCQkJICovCi0JCQlpZiAoY3N0YXRlLT5vcHRzLm9uX2Vycm9yID09IENPUFlf T05fRVJST1JfSUdOT1JFKQotCi0JCQkJLyoKLQkJCQkgKiBKdXN0IG1ha2UgRXJyb3JTYXZlQ29u dGV4dCByZWFkeSBmb3IgdGhlIG5leHQgTmV4dENvcHlGcm9tLgotCQkJCSAqIFNpbmNlIHdlIGRv bid0IHNldCBkZXRhaWxzX3dhbnRlZCBhbmQgZXJyb3JfZGF0YSBpcyBub3QgdG8KLQkJCQkgKiBi ZSBmaWxsZWQsIGp1c3QgcmVzZXR0aW5nIGVycm9yX29jY3VycmVkIGlzIGVub3VnaC4KLQkJCQkg Ki8KLQkJCQljc3RhdGUtPmVzY29udGV4dC0+ZXJyb3Jfb2NjdXJyZWQgPSBmYWxzZTsKKwkJCWNz dGF0ZS0+ZXNjb250ZXh0LT5lcnJvcl9vY2N1cnJlZCA9IGZhbHNlOwogCiAJCQkvKiBSZXBvcnQg dGhhdCB0aGlzIHR1cGxlIHdhcyBza2lwcGVkIGJ5IHRoZSBPTl9FUlJPUiBjbGF1c2UgKi8KIAkJ CXBnc3RhdF9wcm9ncmVzc191cGRhdGVfcGFyYW0oUFJPR1JFU1NfQ09QWV9UVVBMRVNfU0tJUFBF RCwKIAkJCQkJCQkJCQljc3RhdGUtPm51bV9lcnJvcnMpOwogCi0JCQkvKiBSZXBlYXQgTmV4dENv cHlGcm9tKCkgdW50aWwgbm8gc29mdCBlcnJvciBvY2N1cnMgKi8KIAkJCWNvbnRpbnVlOwogCQl9 CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2NvcHlmcm9tLmMgYi9zcmMvYmFj a2VuZC9jb21tYW5kcy9jb3B5ZnJvbS5jCmluZGV4IDQ3ODc5OTk0ZjcuLjZiNTE5MmNiZWQgMTAw NjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2NvcHlmcm9tLmMKKysrIGIvc3JjL2JhY2tl bmQvY29tbWFuZHMvY29weWZyb20uYwpAQCAtMTAwNCwyMSArMTAwNCwxNiBAQCBDb3B5RnJvbShD b3B5RnJvbVN0YXRlIGNzdGF0ZSkKIAkJaWYgKCFOZXh0Q29weUZyb20oY3N0YXRlLCBlY29udGV4 dCwgbXlzbG90LT50dHNfdmFsdWVzLCBteXNsb3QtPnR0c19pc251bGwpKQogCQkJYnJlYWs7CiAK LQkJaWYgKGNzdGF0ZS0+b3B0cy5vbl9lcnJvciAhPSBDT1BZX09OX0VSUk9SX1NUT1AgJiYKKwkJ aWYgKGNzdGF0ZS0+b3B0cy5vbl9lcnJvciA9PSBDT1BZX09OX0VSUk9SX0lHTk9SRSAmJgogCQkJ Y3N0YXRlLT5lc2NvbnRleHQtPmVycm9yX29jY3VycmVkKQogCQl7CiAJCQkvKgotCQkJICogU29m dCBlcnJvciBvY2N1cnJlZCwgc2tpcCB0aGlzIHR1cGxlIGFuZCBkZWFsIHdpdGggZXJyb3IKLQkJ CSAqIGluZm9ybWF0aW9uIGFjY29yZGluZyB0byBPTl9FUlJPUi4KKwkJCSAqIFNvZnQgZXJyb3Ig b2NjdXJyZWQsIHNraXAgdGhpcyB0dXBsZSBhbmQganVzdCBtYWtlCisJCQkgKiBFcnJvclNhdmVD b250ZXh0IHJlYWR5IGZvciB0aGUgbmV4dCBOZXh0Q29weUZyb20uIFNpbmNlIHdlIGRvbid0CisJ CQkgKiBzZXQgZGV0YWlsc193YW50ZWQgYW5kIGVycm9yX2RhdGEgaXMgbm90IHRvIGJlIGZpbGxl ZCwganVzdAorCQkJICogcmVzZXR0aW5nIGVycm9yX29jY3VycmVkIGlzIGVub3VnaC4KIAkJCSAq LwotCQkJaWYgKGNzdGF0ZS0+b3B0cy5vbl9lcnJvciA9PSBDT1BZX09OX0VSUk9SX0lHTk9SRSkK LQotCQkJCS8qCi0JCQkJICogSnVzdCBtYWtlIEVycm9yU2F2ZUNvbnRleHQgcmVhZHkgZm9yIHRo ZSBuZXh0IE5leHRDb3B5RnJvbS4KLQkJCQkgKiBTaW5jZSB3ZSBkb24ndCBzZXQgZGV0YWlsc193 YW50ZWQgYW5kIGVycm9yX2RhdGEgaXMgbm90IHRvCi0JCQkJICogYmUgZmlsbGVkLCBqdXN0IHJl c2V0dGluZyBlcnJvcl9vY2N1cnJlZCBpcyBlbm91Z2guCi0JCQkJICovCi0JCQkJY3N0YXRlLT5l c2NvbnRleHQtPmVycm9yX29jY3VycmVkID0gZmFsc2U7CisJCQljc3RhdGUtPmVzY29udGV4dC0+ ZXJyb3Jfb2NjdXJyZWQgPSBmYWxzZTsKIAogCQkJLyogUmVwb3J0IHRoYXQgdGhpcyB0dXBsZSB3 YXMgc2tpcHBlZCBieSB0aGUgT05fRVJST1IgY2xhdXNlICovCiAJCQlwZ3N0YXRfcHJvZ3Jlc3Nf dXBkYXRlX3BhcmFtKFBST0dSRVNTX0NPUFlfVFVQTEVTX1NLSVBQRUQsCi0tIAoyLjM5LjIKCg== --=_f9e8680823ed1f51664a42b20efebdc5--