From mboxrd@z Thu Jan 1 00:00:00 1970 From: Edward Shishkin Subject: [PATCH 1/3] reiser4: add metadata checksums support Date: Sun, 16 Aug 2015 20:15:27 +0200 Message-ID: <55D0D33F.4050901@gmail.com> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="------------090605030906090601070501" Return-path: DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=message-id:date:from:user-agent:mime-version:to:subject :content-type; bh=s/Q9UF1QocjVQJo7czle9rKlYeGIXM+MjXrabM+uPw0=; b=QIFTNAOCB+1/6Fhdz31Qye33tZgdl8tvPszAS4LMkf9K6hqre8yvunrYaEfNqD626w DqqfOlh/01YzqEn7at2eY9mz75jBclePO/BO7cVIsuWNXxh/+sCPqNtLojwmYgeZEcvQ 0QztS4fLw2qrA1L7zjMhkNy3nEGeqho3sIF2Q+5sE7nzB40sCIo52WaO7sQ542JfoJmt y0kIlfk9jQS70i0U0domC5iQe3Jwo2WD+wWcuAvJWm+TboybU0sf0JvwCpELhOTavPL2 tM4p26dzKnnWajdtTBkekEqVnRFoRsnuX618VaSt8UzdQMdesz+Q5/cZ0w7ijY3z27ax NLcg== Sender: reiserfs-devel-owner@vger.kernel.org List-ID: To: ReiserFS development mailing list This is a multi-part message in MIME format. --------------090605030906090601070501 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit --------------090605030906090601070501 Content-Type: text/plain; charset=UTF-8; name="reiser4-metadata-checksums.patch-1" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="reiser4-metadata-checksums.patch-1" LS0tCiBmcy9yZWlzZXI0L01ha2VmaWxlICAgICAgICAgICAgIHwgICAgMSAKIGZzL3JlaXNl cjQvY2hlY2tzdW0uYyAgICAgICAgICAgfCAgIDI5ICsrKysrKysrKysrKysrKysrKysrKysr KysrCiBmcy9yZWlzZXI0L2NoZWNrc3VtLmggICAgICAgICAgIHwgICAzOSArKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKwogZnMvcmVpc2VyNC9wbHVnaW4vbm9kZS9ub2Rl LmMgICB8ICAgIDMgKy0KIGZzL3JlaXNlcjQvcGx1Z2luL25vZGUvbm9kZS5oICAgfCAgICAz ICsrCiBmcy9yZWlzZXI0L3BsdWdpbi9ub2RlL25vZGU0MS5jIHwgICA0NCArKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tCiBmcy9yZWlzZXI0L3BsdWdpbi9ub2Rl L25vZGU0MS5oIHwgICAgMiArCiBmcy9yZWlzZXI0L3N1cGVyLmggICAgICAgICAgICAgIHwg ICAgMSAKIGZzL3JlaXNlcjQvc3VwZXJfb3BzLmMgICAgICAgICAgfCAgICA3ICsrKysrKwog ZnMvcmVpc2VyNC93YW5kZXIuYyAgICAgICAgICAgICB8ICAgMTMgKysrKysrKysrKy0KIGZz L3JlaXNlcjQvem5vZGUuYyAgICAgICAgICAgICAgfCAgICAzIC0tCiBmcy9yZWlzZXI0L3pu b2RlLmggICAgICAgICAgICAgIHwgICAgMSAKIDEyIGZpbGVzIGNoYW5nZWQsIDEzMyBpbnNl cnRpb25zKCspLCAxMyBkZWxldGlvbnMoLSkKCi0tLSBhL2ZzL3JlaXNlcjQvcGx1Z2luL25v ZGUvbm9kZS5oCisrKyBiL2ZzL3JlaXNlcjQvcGx1Z2luL25vZGUvbm9kZS5oCkBAIC0yMzMs NiArMjMzLDkgQEAgdHlwZWRlZiBzdHJ1Y3Qgbm9kZV9wbHVnaW4gewogCS8qIGNoYW5nZSBw bHVnaW4gaWQgb2YgaXRlbXMgd2hpY2ggYXJlIGluIGEgbm9kZSBhbHJlYWR5LiBDdXJyZW50 bHkgaXQgaXMgVXNlZCBpbiB0YWlsIGNvbnZlcnNpb24gZm9yIHJlZ3VsYXIKIAkgKiBmaWxl cyAqLwogCWludCAoKnNldF9pdGVtX3BsdWdpbikgKGNvb3JkX3QgKiBjb29yZCwgaXRlbV9p ZCk7CisJLyogY2FsY3VsYXRlIGFuZCBjaGVjay91cGRhdGUgem5vZGUncyBjaGVja3N1bQor CSAgIChpZiBAY2hlY2sgaXMgdHJ1ZSwgdGhlbiBjaGVjaywgb3RoZXJ3aXNlIHVwZGF0ZSkg Ki8KKwlpbnQgKCpjc3VtKSh6bm9kZSAqbm9kZSwgaW50IGNoZWNrKTsKIH0gbm9kZV9wbHVn aW47CiAKIHR5cGVkZWYgZW51bSB7Ci0tLSBhL2ZzL3JlaXNlcjQvTWFrZWZpbGUKKysrIGIv ZnMvcmVpc2VyNC9NYWtlZmlsZQpAQCAtNDgsNiArNDgsNyBAQCByZWlzZXI0LXkgOj0gXAog CQkgICBzYWZlX2xpbmsubyBcCiAJCSAgIGJsb2NrbnJsaXN0Lm8gXAogCQkgICBkaXNjYXJk Lm8gXAorCQkgICBjaGVja3N1bS5vIFwKICAgICAgICAgICAgXAogCQkgICBwbHVnaW4vcGx1 Z2luLm8gXAogCQkgICBwbHVnaW4vcGx1Z2luX3NldC5vIFwKLS0tIC9kZXYvbnVsbAorKysg Yi9mcy9yZWlzZXI0L2NoZWNrc3VtLmMKQEAgLTAsMCArMSwyOSBAQAorI2luY2x1ZGUgPGxp bnV4L2Vyci5oPgorI2luY2x1ZGUgImRlYnVnLmgiCisjaW5jbHVkZSAiY2hlY2tzdW0uaCIK KworaW50IHJlaXNlcjRfaW5pdF9jc3VtX3RmbShzdHJ1Y3QgY3J5cHRvX3NoYXNoICoqdGZt KQoreworCSp0Zm0gPSBjcnlwdG9fYWxsb2Nfc2hhc2goImNyYzMyYyIsIDAsIDApOworCWlm IChJU19FUlIoKnRmbSkpIHsKKwkJKnRmbSA9IE5VTEw7CisJCXJldHVybiAxOworCX0KKwly ZXR1cm4gMDsKK30KKwordm9pZCByZWlzZXI0X2RvbmVfY3N1bV90Zm0oc3RydWN0IGNyeXB0 b19zaGFzaCAqdGZtKQoreworCWNyeXB0b19mcmVlX3NoYXNoKHRmbSk7Cit9CisKKy8qCisg ICBMb2NhbCB2YXJpYWJsZXM6CisgICBjLWluZGVudGF0aW9uLXN0eWxlOiAiSyZSIgorICAg bW9kZS1uYW1lOiAiTEMiCisgICBjLWJhc2ljLW9mZnNldDogOAorICAgdGFiLXdpZHRoOiA4 CisgICBmaWxsLWNvbHVtbjogMTIwCisgICBzY3JvbGwtc3RlcDogMQorICAgRW5kOgorKi8K LS0tIC9kZXYvbnVsbAorKysgYi9mcy9yZWlzZXI0L2NoZWNrc3VtLmgKQEAgLTAsMCArMSwz OSBAQAorI2lmbmRlZiBfX0NIRUNLU1VNX18KKyNkZWZpbmUgX19DSEVDS1NVTV9fCisKKyNp bmNsdWRlIDxjcnlwdG8vaGFzaC5oPgorCitpbnQgcmVpc2VyNF9pbml0X2NzdW1fdGZtKHN0 cnVjdCBjcnlwdG9fc2hhc2ggKip0Zm0pOwordm9pZCByZWlzZXI0X2RvbmVfY3N1bV90Zm0o c3RydWN0IGNyeXB0b19zaGFzaCAqdGZtKTsKK3UzMiBzdGF0aWMgaW5saW5lIHJlaXNlcjRf Y3JjMzJjKHN0cnVjdCBjcnlwdG9fc2hhc2ggKnRmbSwKKwkJCQkgdTMyIGNyYywgY29uc3Qg dm9pZCAqYWRkcmVzcywKKwkJCQkgdW5zaWduZWQgaW50IGxlbmd0aCkKK3sKKwlzdHJ1Y3Qg eworCQlzdHJ1Y3Qgc2hhc2hfZGVzYyBzaGFzaDsKKwkJY2hhciBjdHhbNF07CisJfSBkZXNj OworCWludCBlcnI7CisKKwlkZXNjLnNoYXNoLnRmbSA9IHRmbTsKKwlkZXNjLnNoYXNoLmZs YWdzID0gMDsKKwkqKHUzMiAqKWRlc2MuY3R4ID0gY3JjOworCisJZXJyID0gY3J5cHRvX3No YXNoX3VwZGF0ZSgmZGVzYy5zaGFzaCwgYWRkcmVzcywgbGVuZ3RoKTsKKwlCVUdfT04oZXJy KTsKKwlyZXR1cm4gKih1MzIgKilkZXNjLmN0eDsKK30KKworI2VuZGlmIC8qIF9fQ0hFQ0tT VU1fXyAqLworCisvKgorICAgTG9jYWwgdmFyaWFibGVzOgorICAgYy1pbmRlbnRhdGlvbi1z dHlsZTogIksmUiIKKyAgIG1vZGUtbmFtZTogIkxDIgorICAgYy1iYXNpYy1vZmZzZXQ6IDgK KyAgIHRhYi13aWR0aDogOAorICAgZmlsbC1jb2x1bW46IDEyMAorICAgc2Nyb2xsLXN0ZXA6 IDEKKyAgIEVuZDoKKyovCisKLS0tIGEvZnMvcmVpc2VyNC9wbHVnaW4vbm9kZS9ub2RlLmMK KysrIGIvZnMvcmVpc2VyNC9wbHVnaW4vbm9kZS9ub2RlLmMKQEAgLTE1Myw3ICsxNTMsOCBA QCBub2RlX3BsdWdpbiBub2RlX3BsdWdpbnNbTEFTVF9OT0RFX0lEXSA9CiAJCS5mYXN0X2N1 dCA9IGZhc3RfY3V0X25vZGU0MCwKIAkJLm1heF9pdGVtX3NpemUgPSBtYXhfaXRlbV9zaXpl X25vZGU0MSwKIAkJLnByZXBhcmVfcmVtb3ZhbCA9IHByZXBhcmVfcmVtb3ZhbF9ub2RlNDAs Ci0JCS5zZXRfaXRlbV9wbHVnaW4gPSBzZXRfaXRlbV9wbHVnaW5fbm9kZTQwCisJCS5zZXRf aXRlbV9wbHVnaW4gPSBzZXRfaXRlbV9wbHVnaW5fbm9kZTQwLAorCQkuY3N1bSA9IGNzdW1f bm9kZTQxCiAJfQogfTsKIAotLS0gYS9mcy9yZWlzZXI0L3N1cGVyX29wcy5jCisrKyBiL2Zz L3JlaXNlcjQvc3VwZXJfb3BzLmMKQEAgLTYsNiArNiw3IEBACiAjaW5jbHVkZSAia3R4bm1n cmQuaCIKICNpbmNsdWRlICJmbHVzaC5oIgogI2luY2x1ZGUgInNhZmVfbGluay5oIgorI2lu Y2x1ZGUgImNoZWNrc3VtLmgiCiAKICNpbmNsdWRlIDxsaW51eC92ZnMuaD4KICNpbmNsdWRl IDxsaW51eC93cml0ZWJhY2suaD4KQEAgLTI0OSw2ICsyNTAsNyBAQCBzdGF0aWMgdm9pZCBy ZWlzZXI0X3B1dF9zdXBlcihzdHJ1Y3Qgc3VwCiAJCWdldF9zdXBlcl9wcml2YXRlKHN1cGVy KS0+ZGZfcGx1Zy0+cmVsZWFzZShzdXBlcik7CiAKIAlyZWlzZXI0X2RvbmVfZm9ybWF0dGVk X2Zha2Uoc3VwZXIpOworCXJlaXNlcjRfZG9uZV9jc3VtX3RmbShzYmluZm8tPmNzdW1fdGZt KTsKIAogCS8qIHN0b3AgZGFlbW9uczoga3R4bm1nciBhbmQgZW50ZCAqLwogCXJlaXNlcjRf ZG9uZV9lbnRkKHN1cGVyKTsKQEAgLTUxNCw2ICs1MTYsMTAgQEAgc3RhdGljIGludCBmaWxs X3N1cGVyKHN0cnVjdCBzdXBlcl9ibG9jawogCQlnb3RvIGZhaWxlZF9pbml0X3NpbmZvOwog CiAJc2JpbmZvID0gZ2V0X3N1cGVyX3ByaXZhdGUoc3VwZXIpOworCisJaWYgKChyZXN1bHQg PSByZWlzZXI0X2luaXRfY3N1bV90Zm0oJnNiaW5mby0+Y3N1bV90Zm0pKSAhPSAwKQorCQln b3RvIGZhaWxlZF9pbml0X2NzdW1fdGZtOworCiAJLyogaW5pdGlhbGl6ZSB2YXJpb3VzIHJl aXNlcjQgcGFyYW1ldGVycywgcGFyc2UgbW91bnQgb3B0aW9ucyAqLwogCWlmICgocmVzdWx0 ID0gcmVpc2VyNF9pbml0X3N1cGVyX2RhdGEoc3VwZXIsIGRhdGEpKSAhPSAwKQogCQlnb3Rv IGZhaWxlZF9pbml0X3N1cGVyX2RhdGE7CkBAIC01OTIsNiArNTk4LDcgQEAgc3RhdGljIGlu dCBmaWxsX3N1cGVyKHN0cnVjdCBzdXBlcl9ibG9jawogIGZhaWxlZF9pbml0X3N1cGVyX2Rh dGE6CiAJcmVpc2VyNF9kb25lX2ZzX2luZm8oc3VwZXIpOwogIGZhaWxlZF9pbml0X3NpbmZv OgorIGZhaWxlZF9pbml0X2NzdW1fdGZtOgogCXJlaXNlcjRfZXhpdF9jb250ZXh0KCZjdHgp OwogCXJldHVybiByZXN1bHQ7CiB9Ci0tLSBhL2ZzL3JlaXNlcjQvcGx1Z2luL25vZGUvbm9k ZTQxLmMKKysrIGIvZnMvcmVpc2VyNC9wbHVnaW4vbm9kZS9ub2RlNDEuYwpAQCAtMTcsNiAr MTcsNyBAQAogI2luY2x1ZGUgIi4uLy4uL3RhcC5oIgogI2luY2x1ZGUgIi4uLy4uL3RyZWUu aCIKICNpbmNsdWRlICIuLi8uLi9zdXBlci5oIgorI2luY2x1ZGUgIi4uLy4uL2NoZWNrc3Vt LmgiCiAjaW5jbHVkZSAiLi4vLi4vcmVpc2VyNC5oIgogCiAjaW5jbHVkZSA8YXNtL3VhY2Nl c3MuaD4KQEAgLTI3LDcgKzI4LDcgQEAKICAqIG5vZGU0MSBsYXlvdXQgaXQgYWxtb3N0IHRo ZSBzYW1lIGFzIG5vZGU0MDoKICAqIG5vZGU0MV9oZWFkZXIgaXMgYXQgdGhlIGJlZ2lubmlu ZyBhbmQgYSB0YWJsZSBvZiBpdGVtIGhlYWRlcnMKICAqIGlzIGF0IHRoZSBlbmQuIFRoZXIg ZGlmZmVyZW5jZSBpcyB0aGF0IG5vZGU0MV9oZWFkZXIgY29udGFpbnMKLSAqIGEgMzItYml0 IHJlZmVyZW5jZSBjb3VudGVyIChzZWUgbm9kZTQxLmgpCisgKiBhIDMyLWJpdCBjaGVja3N1 bSAoc2VlIG5vZGU0MS5oKQogICovCiAKIHN0YXRpYyBjb25zdCBfX3UzMiBSRUlTRVI0X05P REU0MV9NQUdJQyA9IDB4MTkwNTE5NjY7CkBAIC00MSwxMiArNDIsNDMgQEAgc3RhdGljIGlu bGluZSBub2RlNDFfaGVhZGVyICpub2RlNDFfbm9kZQogCXJldHVybiAobm9kZTQxX2hlYWRl ciAqKXpkYXRhKG5vZGUpOwogfQogCitpbnQgY3N1bV9ub2RlNDEoem5vZGUgKm5vZGUsIGlu dCBjaGVjaykKK3sKKwlfX3UzMiBjcHVfY3N1bTsKKworCWNwdV9jc3VtID0gcmVpc2VyNF9j cmMzMmMoZ2V0X2N1cnJlbnRfc3VwZXJfcHJpdmF0ZSgpLT5jc3VtX3RmbSwKKwkJCQkgIH4w LAorCQkJCSAgemRhdGEobm9kZSksCisJCQkJICBzaXplb2Yoc3RydWN0IG5vZGU0MF9oZWFk ZXIpKTsKKwljcHVfY3N1bSA9IHJlaXNlcjRfY3JjMzJjKGdldF9jdXJyZW50X3N1cGVyX3By aXZhdGUoKS0+Y3N1bV90Zm0sCisJCQkJICBjcHVfY3N1bSwKKwkJCQkgIHpkYXRhKG5vZGUp ICsgc2l6ZW9mKHN0cnVjdCBub2RlNDFfaGVhZGVyKSwKKwkJCQkgIHJlaXNlcjRfZ2V0X2N1 cnJlbnRfc2IoKS0+c19ibG9ja3NpemUgLQorCQkJCSAgc2l6ZW9mKG5vZGU0MV9oZWFkZXIp KTsKKwlpZiAoY2hlY2spCisJCXJldHVybiBjcHVfY3N1bSA9PSBuaDQxX2dldF9jc3VtKG5v ZGU0MV9ub2RlX2hlYWRlcihub2RlKSk7CisJZWxzZSB7CisJCW5oNDFfc2V0X2NzdW0obm9k ZTQxX25vZGVfaGVhZGVyKG5vZGUpLCBjcHVfY3N1bSk7CisJCXJldHVybiAxOworCX0KK30K KwogLyoKICAqIHBsdWdpbi0+dS5ub2RlLnBhcnNlCiAgKiBsb29rIGZvciBkZXNjcmlwdGlv biBvZiB0aGlzIG1ldGhvZCBpbiBwbHVnaW4vbm9kZS9ub2RlLmgKICAqLwogaW50IHBhcnNl X25vZGU0MSh6bm9kZSAqbm9kZSAvKiBub2RlIHRvIHBhcnNlICovKQogeworCWludCByZXQ7 CisKKwlyZXQgPSBjc3VtX25vZGU0MShub2RlLCAxLyogY2hlY2sgKi8pOworCWlmICghcmV0 KSB7CisJCXdhcm5pbmcoImVkd2FyZC0xNjQ1IiwKKwkJCSJibG9jayAlbGx1OiBiYWQgY2hl Y2tzdW0uIEZTQ0s/IiwKKwkJCSpqbm9kZV9nZXRfYmxvY2soWkpOT0RFKG5vZGUpKSk7CisJ CXJlaXNlcjRfaGFuZGxlX2Vycm9yKCk7CisJCXJldHVybiBSRVRFUlIoLUVJTyk7CisJfQog CXJldHVybiBwYXJzZV9ub2RlNDBfY29tbW9uKG5vZGUsIFJFSVNFUjRfTk9ERTQxX01BR0lD KTsKIH0KIApAQCAtNTYsMTQgKzg4LDggQEAgaW50IHBhcnNlX25vZGU0MSh6bm9kZSAqbm9k ZSAvKiBub2RlIHRvCiAgKi8KIGludCBpbml0X25vZGU0MSh6bm9kZSAqbm9kZSAvKiBub2Rl IHRvIGluaXRpYWxpc2UgKi8pCiB7Ci0Jbm9kZTQxX2hlYWRlciAqaGVhZGVyNDE7Ci0KLQlp bml0X25vZGU0MF9jb21tb24obm9kZSwgbm9kZV9wbHVnaW5fYnlfaWQoTk9ERTQxX0lEKSwK LQkJCSAgIHNpemVvZihub2RlNDFfaGVhZGVyKSwgUkVJU0VSNF9OT0RFNDFfTUFHSUMpOwot Ci0JaGVhZGVyNDEgPSBub2RlNDFfbm9kZV9oZWFkZXIobm9kZSk7Ci0Jbmg0MV9zZXRfY3N1 bShoZWFkZXI0MSwgMCk7Ci0JcmV0dXJuIDA7CisJcmV0dXJuIGluaXRfbm9kZTQwX2NvbW1v bihub2RlLCBub2RlX3BsdWdpbl9ieV9pZChOT0RFNDFfSUQpLAorCQkJCSAgc2l6ZW9mKG5v ZGU0MV9oZWFkZXIpLCBSRUlTRVI0X05PREU0MV9NQUdJQyk7CiB9CiAKIC8qCi0tLSBhL2Zz L3JlaXNlcjQvcGx1Z2luL25vZGUvbm9kZTQxLmgKKysrIGIvZnMvcmVpc2VyNC9wbHVnaW4v bm9kZS9ub2RlNDEuaApAQCAtMjksMTAgKzI5LDEyIEBAIGludCBtYXhfaXRlbV9zaXplX25v ZGU0MSh2b2lkKTsKIGludCBzaGlmdF9ub2RlNDEoY29vcmRfdCAqZnJvbSwgem5vZGUgKnRv LCBzaGlmdF9kaXJlY3Rpb24gcGVuZCwKIAkJIGludCBkZWxldGVfY2hpbGQsIGludCBpbmNs dWRpbmdfc3RvcF9jb29yZCwKIAkJIGNhcnJ5X3BsdWdpbl9pbmZvICppbmZvKTsKK2ludCBj c3VtX25vZGU0MSh6bm9kZSAqbm9kZSwgaW50IGNoZWNrKTsKIAogI2lmZGVmIEdVRVNTX0VY SVNUUwogaW50IGd1ZXNzX25vZGU0MShjb25zdCB6bm9kZSAqIG5vZGUpOwogI2VuZGlmCitl eHRlcm4gdm9pZCByZWlzZXI0X2hhbmRsZV9lcnJvcih2b2lkKTsKIAogLyogX19SRUlTRVI0 X05PREU0MV9IX18gKi8KICNlbmRpZgotLS0gYS9mcy9yZWlzZXI0L3pub2RlLmMKKysrIGIv ZnMvcmVpc2VyNC96bm9kZS5jCkBAIC02MzUsNyArNjM1LDcgQEAgaW50IHpsb2FkX3JhKHpu b2RlICogbm9kZSAvKiB6bm9kZSB0byBsbwogfQogCiAvKiBsb2FkIGNvbnRlbnQgb2Ygbm9k ZSBpbnRvIG1lbW9yeSAqLwotaW50IHpsb2FkKHpub2RlICogbm9kZSkKK2ludCB6bG9hZCh6 bm9kZSAqbm9kZSkKIHsKIAlyZXR1cm4gemxvYWRfcmEobm9kZSwgTlVMTCk7CiB9CkBAIC02 NTEsNyArNjUxLDYgQEAgaW50IHppbml0X25ldyh6bm9kZSAqIG5vZGUgLyogem5vZGUgdG8g aQogdm9pZCB6cmVsc2Uoem5vZGUgKiBub2RlIC8qIHpub2RlIHRvIHJlbGVhc2UgcmVmZXJl bmNlcyB0byAqLyApCiB7CiAJYXNzZXJ0KCJuaWtpdGEtMTM4MSIsIHpub2RlX2ludmFyaWFu dChub2RlKSk7Ci0KIAlqcmVsc2UoWkpOT0RFKG5vZGUpKTsKIH0KIAotLS0gYS9mcy9yZWlz ZXI0L3N1cGVyLmgKKysrIGIvZnMvcmVpc2VyNC9zdXBlci5oCkBAIC0yNzUsNiArMjc1LDcg QEAgc3RydWN0IHJlaXNlcjRfc3VwZXJfaW5mb19kYXRhIHsKIAkgKiBtb3JlIGRldGFpbHMK IAkgKi8KIAlzdHJ1Y3QgZF9jdXJzb3JfaW5mbyBkX2luZm87CisJc3RydWN0IGNyeXB0b19z aGFzaCAqY3N1bV90Zm07CiAKICNpZmRlZiBDT05GSUdfUkVJU0VSNF9CQURCTE9DS1MKIAkv KiBBbHRlcm5hdGl2ZSBtYXN0ZXIgc3VwZXJibG9jayBvZmZzZXQgKGluIGJ5dGVzKSAqLwot LS0gYS9mcy9yZWlzZXI0L3dhbmRlci5jCisrKyBiL2ZzL3JlaXNlcjQvd2FuZGVyLmMKQEAg LTc2OSw4ICs3NjksMTkgQEAgc3RhdGljIGludCB3cml0ZV9qbm9kZXNfdG9fZGlza19leHRl bnQoCiAJCQlKRl9TRVQoY3VyLCBKTk9ERV9XUklURUJBQ0spOwogCQkJSkZfQ0xSKGN1ciwg Sk5PREVfRElSVFkpOwogCQkJT05fREVCVUcoY3VyLT53cml0dGVuKyspOwotCQkJc3Bpbl91 bmxvY2tfam5vZGUoY3VyKTsKIAorCQkJYXNzZXJ0KCJlZHdhcmQtMTY0NyIsCisJCQkgICAg ICAgZXJnbyhqbm9kZV9pc196bm9kZShjdXIpLCBKRl9JU1NFVChjdXIsIEpOT0RFX1BBUlNF RCkpKTsKKwkJCXNwaW5fdW5sb2NrX2pub2RlKGN1cik7CisJCQkvKgorCQkJICogdXBkYXRl IGNoZWNrc3VtCisJCQkgKi8KKwkJCWlmIChqbm9kZV9pc196bm9kZShjdXIpKSB7CisJCQkJ emxvYWQoSlpOT0RFKGN1cikpOworCQkJCWlmIChub2RlX3BsdWdpbl9ieV9ub2RlKEpaTk9E RShjdXIpKS0+Y3N1bSkKKwkJCQkJbm9kZV9wbHVnaW5fYnlfbm9kZShKWk5PREUoY3VyKSkt PmNzdW0oSlpOT0RFKGN1ciksIDApOworCQkJCXpyZWxzZShKWk5PREUoY3VyKSk7CisJCQl9 CiAJCQlDbGVhclBhZ2VFcnJvcihwZyk7CiAJCQlzZXRfcGFnZV93cml0ZWJhY2socGcpOwog Ci0tLSBhL2ZzL3JlaXNlcjQvem5vZGUuaAorKysgYi9mcy9yZWlzZXI0L3pub2RlLmgKQEAg LTE3Miw2ICsxNzIsNyBAQCBleHRlcm4gaW50IHpsb2FkX3JhKHpub2RlICogbm9kZSwgcmFf aW5mCiBleHRlcm4gaW50IHppbml0X25ldyh6bm9kZSAqIG5vZGUsIGdmcF90IGdmcF9mbGFn cyk7CiBleHRlcm4gdm9pZCB6cmVsc2Uoem5vZGUgKiBub2RlKTsKIGV4dGVybiB2b2lkIHpu b2RlX2NoYW5nZV9wYXJlbnQoem5vZGUgKiBuZXdfcGFyZW50LCByZWlzZXI0X2Jsb2NrX25y ICogYmxvY2spOworZXh0ZXJuIHZvaWQgem5vZGVfdXBkYXRlX2NzdW0oem5vZGUgKm5vZGUp OwogCiAvKiBzaXplIG9mIGRhdGEgaW4gem5vZGUgKi8KIHN0YXRpYyBpbmxpbmUgdW5zaWdu ZWQK --------------090605030906090601070501--