From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o461i91r065079 for ; Wed, 5 May 2010 20:44:09 -0500 Received: from mail.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 8A9543139C1 for ; Wed, 5 May 2010 18:46:17 -0700 (PDT) Received: from mail.internode.on.net (bld-mail12.adl6.internode.on.net [150.101.137.97]) by cuda.sgi.com with ESMTP id Sn9SA8AFJrF7b0Ci for ; Wed, 05 May 2010 18:46:17 -0700 (PDT) Received: from dastard (unverified [121.44.229.111]) by mail.internode.on.net (SurgeMail 3.8f2) with ESMTP id 23264927-1927428 for ; Thu, 06 May 2010 11:16:16 +0930 (CST) Received: from disturbed ([192.168.1.9]) by dastard with esmtp (Exim 4.71) (envelope-from ) id 1O9qA6-0005Dp-Uf for xfs@oss.sgi.com; Thu, 06 May 2010 11:46:02 +1000 Received: from dave by disturbed with local (Exim 4.71) (envelope-from ) id 1O9qA5-0000ch-Ve for xfs@oss.sgi.com; Thu, 06 May 2010 11:46:01 +1000 From: Dave Chinner Subject: [PATCH 11/11] xfs: Ensure inode allocation buffers are fully replayed Date: Thu, 6 May 2010 11:45:51 +1000 Message-Id: <1273110351-2333-12-git-send-email-david@fromorbit.com> In-Reply-To: <1273110351-2333-1-git-send-email-david@fromorbit.com> References: <1273110351-2333-1-git-send-email-david@fromorbit.com> MIME-Version: 1.0 List-Id: XFS Filesystem from SGI List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: xfs-bounces@oss.sgi.com Errors-To: xfs-bounces@oss.sgi.com To: xfs@oss.sgi.com RnJvbTogRGF2ZSBDaGlubmVyIDxkY2hpbm5lckByZWRoYXQuY29tPgoKV2l0aCBkZWxheWVkIGxv Z2dpbmcsIHdlIGNhbiBnZXQgaW5vZGUgYWxsb2NhdGlvbiBidWZmZXJzIGluIHRoZQpzYW1lIHRy YW5zYWN0aW9uIGlub2RlIHVubGluayBidWZmZXJzLiBXZSBkb24ndCBjdXJyZW50bHkgbWFyayBp bm9kZQphbGxvY2F0aW9uIGJ1ZmZlcnMgaW4gdGhlIGxvZywgc28gaW5vZGUgdW5saW5rIGJ1ZmZl cnMgdGFrZQpwcmVjZWRlbmNlIG92ZXIgYWxsb2NhdGlvbiBidWZmZXJzLgoKVGhlIHJlc3VsdCBp cyB0aGF0IHdoZW4gdGhleSBhcmUgY29tYmluZWQgaW50byB0aGUgc2FtZSBjaGVja3BvaW50LApv bmx5IHRoZSB1bmxpbmtlZCBpbm9kZSBjaGFpbiBmaWVsZHMgYXJlIHJlcGxheWVkLCByZXN1bHRp bmcgaW4KdW5pbml0aWFsaXNlZCBpbm9kZSBidWZmZXJzIGJlaW5nIGRldGVjdGVkIHdoZW4gdGhl IG5leHQgaW5vZGUKbW9kaWZpY2F0aW9uIGlzIHJlcGxheWVkLgoKVG8gZml4IHRoaXMsIHdlIG5l ZWQgdG8gZW5zdXJlIHRoYXQgd2UgZG8gbm90IHNldCB0aGUgaW5vZGUgYnVmZmVyCmZsYWcgaW4g dGhlIGJ1ZmZlciBsb2cgaXRlbSBmb3JtYXQgZmxhZ3MgaWYgdGhlIGlub2RlIGFsbG9jYXRpb24g aGFzCm5vdCBhbHJlYWR5IGhpdCB0aGUgbG9nLiBUbyBhdm9pZCByZXF1aXJpbmcgYSBjaGFuZ2Ug dG8gbG9nCnJlY292ZXJ5LCB3ZSByZWFsbHkgbmVlZCB0byBtYWtlIHRoaXMgYSBtb2RpZmljYXRp b24gdGhhdCByZWxpZXMKb25seSBvbiBpbi1tZW1vcnkgc2F0ZS4KCldlIGNhbiBkbyB0aGlzIGJ5 IGNoZWNraW5nIGR1cmluZyBidWZmZXIgbG9nIGZvcm1hdHRpbmcgKHdoaWxlIHRoZQpDSUwgY2Fu bm90IGJlIGZsdXNoZWQpIGlmIHdlIGFyZSBzdGlsbCBpbiB0aGUgc2FtZSBzZXF1ZW5jZSB3aGVu IHdlCmNvbW1pdCB0aGUgdW5saW5rIHRyYW5zYWN0aW9uIGFzIHRoZSBpbm9kZSBhbGxvY2F0aW9u IHRyYW5zYWN0aW9uLgpJZiB3ZSBhcmUsIHRoZW4gd2UgZG8gbm90IGFkZCB0aGUgaW5vZGUgYnVm ZmVyIGZsYWcgdG8gdGhlIGJ1ZmZlcgpsb2cgZm9ybWF0IGl0ZW0gZmxhZ3MuIFRoaXMgbWVhbnMg dGhlIGVudGlyZSBidWZmZXIgd2lsbCBiZQpyZXBsYXllZCwgbm90IGp1c3QgdGhlIHVubGlua2Vk IGZpZWxkcy4gV2UgZG8gdGhpcyB3aGlsZQpDSUwgZmx1c2hl0ZUgYXJlIGxvY2tlZCBvdXQgdG8g ZW5zdXJlIHRoYXQgd2UgZG9uJ3QgcmFjZSB3aXRoIHRoZQpzZXF1ZW5jZSBudW1iZXJzIGNoYW5n aW5nIGFuZCBoZW5jZSBmYWlsIHRvIHB1dCB0aGUgaW5vZGUgYnVmZmVyCmZsYWcgaW4gdGhlIGJ1 ZmZlciBmb3JtYXQgZmxhZ3Mgd2hlbiB3ZSByZWFsbHkgbmVlZCB0by4KCkFsc28sIG1vdmUgYW4g YXNzZXJ0IGluIHRoZSBidWZmZXIgcmVsZWFzZSBwYXRoIG91dHNpZGUgdGhlIGhhc2gKc3Bpbmxv Y2sgc28gdGhhdCBpZiB0aGUgYXNzZXJ0IGlzIGhpdCB0aGUgc3lzdGVtIGNvbnRpbnVlcyB0byBy dW4gaW4KYSBkZWJ1Z2dhYmxlIHN0YXRlLgoKU2lnbmVkLW9mZi1ieTogRGF2ZSBDaGlubmVyIDxk Y2hpbm5lckByZWRoYXQuY29tPgotLS0KIGZzL3hmcy9saW51eC0yLjYveGZzX2J1Zi5jIHwgICAg MiArLQogZnMveGZzL3hmc19idWZfaXRlbS5jICAgICAgfCAgIDE0ICsrKysrKysrKysrKwogZnMv eGZzL3hmc19idWZfaXRlbS5oICAgICAgfCAgICA0ICsrLQogZnMveGZzL3hmc19sb2cuaCAgICAg ICAgICAgfCAgICAxICsKIGZzL3hmcy94ZnNfbG9nX2NpbC5jICAgICAgIHwgICA0OCArKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystCiBmcy94ZnMveGZzX3RyYW5zLmMg ICAgICAgICB8ICAgMTYgKysrKysrKysrKystLQogZnMveGZzL3hmc190cmFucy5oICAgICAgICAg fCAgICAxICsKIGZzL3hmcy94ZnNfdHJhbnNfYnVmLmMgICAgIHwgICAyMCArKysrKysrKystLS0t LS0tLS0KIDggZmlsZXMgY2hhbmdlZCwgODkgaW5zZXJ0aW9ucygrKSwgMTcgZGVsZXRpb25zKC0p CgpkaWZmIC0tZ2l0IGEvZnMveGZzL2xpbnV4LTIuNi94ZnNfYnVmLmMgYi9mcy94ZnMvbGludXgt Mi42L3hmc19idWYuYwppbmRleCA4MjY3OGJmLi5lMDg1ZWNhIDEwMDY0NAotLS0gYS9mcy94ZnMv bGludXgtMi42L3hmc19idWYuYworKysgYi9mcy94ZnMvbGludXgtMi42L3hmc19idWYuYwpAQCAt ODAwLDkgKzgwMCw5IEBAIHhmc19idWZfcmVsZSgKIAkJfSBlbHNlIGlmIChicC0+Yl9mbGFncyAm IFhCRl9GU19NQU5BR0VEKSB7CiAJCQlzcGluX3VubG9jaygmaGFzaC0+YmhfbG9jayk7CiAJCX0g ZWxzZSB7Ci0JCQlBU1NFUlQoIShicC0+Yl9mbGFncyAmIChYQkZfREVMV1JJfF9YQkZfREVMV1JJ X1EpKSk7CiAJCQlsaXN0X2RlbF9pbml0KCZicC0+Yl9oYXNoX2xpc3QpOwogCQkJc3Bpbl91bmxv Y2soJmhhc2gtPmJoX2xvY2spOworCQkJQVNTRVJUKCEoYnAtPmJfZmxhZ3MgJiAoWEJGX0RFTFdS SXxfWEJGX0RFTFdSSV9RKSkpOwogCQkJeGZzX2J1Zl9mcmVlKGJwKTsKIAkJfQogCX0KZGlmZiAt LWdpdCBhL2ZzL3hmcy94ZnNfYnVmX2l0ZW0uYyBiL2ZzL3hmcy94ZnNfYnVmX2l0ZW0uYwppbmRl eCBiY2JiNjYxLi4wMmE4MDk4IDEwMDY0NAotLS0gYS9mcy94ZnMveGZzX2J1Zl9pdGVtLmMKKysr IGIvZnMveGZzL3hmc19idWZfaXRlbS5jCkBAIC0yNTQsNiArMjU0LDIwIEBAIHhmc19idWZfaXRl bV9mb3JtYXQoCiAJdmVjcCsrOwogCW52ZWNzID0gMTsKIAorCS8qCisJICogSWYgaXQgaXMgYW4g aW5vZGUgYnVmZmVyLCB0cmFuc2ZlciB0aGUgaW4tbWVtb3J5IHN0YXRlIHRvIHRoZQorCSAqIGZv cm1hdCBmbGFncyBhbmQgY2xlYXIgdGhlIGluLW1lbW9yeSBzdGF0ZS4gV2UgZG8gbm90IHRyYW5z ZmVyCisJICogdGhpcyBzdGF0ZSBpZiB0aGUgaW5vZGUgYnVmZmVyIGFsbG9jYXRpb24gaGFzIG5v dCB5ZXQgYmVlbiBjb21taXR0ZWQKKwkgKiB0byB0aGUgbG9nIGFzIHNldHRpbmcgdGhlIFhGU19C TElfSU5PREVfQlVGIGZsYWcgd2lsbCBwcmV2ZW50CisJICogY29ycmVjdCByZXBsYXkgb2YgdGhl IGlub2RlIGFsbG9jYXRpb24uCisJICovCisJaWYgKGJpcC0+YmxpX2ZsYWdzICYgWEZTX0JMSV9J Tk9ERV9CVUYpIHsKKwkJaWYgKCEoKGJpcC0+YmxpX2ZsYWdzICYgWEZTX0JMSV9JTk9ERV9BTExP Q19CVUYpICYmCisJCSAgICAgIHhmc19sb2dfaXRlbV9pbl9jdXJyZW50X2Noa3B0KCZiaXAtPmJs aV9pdGVtKSkpCisJCQliaXAtPmJsaV9mb3JtYXQuYmxmX2ZsYWdzIHw9IFhGU19CTEZfSU5PREVf QlVGOworCQliaXAtPmJsaV9mbGFncyAmPSB+WEZTX0JMSV9JTk9ERV9CVUY7CisJfQorCiAJaWYg KGJpcC0+YmxpX2ZsYWdzICYgWEZTX0JMSV9TVEFMRSkgewogCQkvKgogCQkgKiBUaGUgYnVmZmVy IGlzIHN0YWxlLCBzbyBhbGwgd2UgbmVlZCB0byBsb2cKZGlmZiAtLWdpdCBhL2ZzL3hmcy94ZnNf YnVmX2l0ZW0uaCBiL2ZzL3hmcy94ZnNfYnVmX2l0ZW0uaAppbmRleCA4Y2JiODJiLi5mMjBiYjQ3 IDEwMDY0NAotLS0gYS9mcy94ZnMveGZzX2J1Zl9pdGVtLmgKKysrIGIvZnMveGZzL3hmc19idWZf aXRlbS5oCkBAIC02OSw2ICs2OSw3IEBAIHR5cGVkZWYgc3RydWN0IHhmc19idWZfbG9nX2Zvcm1h dCB7CiAjZGVmaW5lCVhGU19CTElfTE9HR0VECQkweDA4CiAjZGVmaW5lCVhGU19CTElfSU5PREVf QUxMT0NfQlVGCTB4MTAKICNkZWZpbmUgWEZTX0JMSV9TVEFMRV9JTk9ERQkweDIwCisjZGVmaW5l CVhGU19CTElfSU5PREVfQlVGCTB4NDAKIAogI2RlZmluZSBYRlNfQkxJX0ZMQUdTIFwKIAl7IFhG U19CTElfSE9MRCwJCSJIT0xEIiB9LCBcCkBAIC03Niw3ICs3Nyw4IEBAIHR5cGVkZWYgc3RydWN0 IHhmc19idWZfbG9nX2Zvcm1hdCB7CiAJeyBYRlNfQkxJX1NUQUxFLAkiU1RBTEUiIH0sIFwKIAl7 IFhGU19CTElfTE9HR0VELAkiTE9HR0VEIiB9LCBcCiAJeyBYRlNfQkxJX0lOT0RFX0FMTE9DX0JV RiwgIklOT0RFX0FMTE9DIiB9LCBcCi0JeyBYRlNfQkxJX1NUQUxFX0lOT0RFLAkiU1RBTEVfSU5P REUiIH0KKwl7IFhGU19CTElfU1RBTEVfSU5PREUsCSJTVEFMRV9JTk9ERSIgfSwgXAorCXsgWEZT X0JMSV9JTk9ERV9CVUYsCSJJTk9ERV9CVUYiIH0KIAogCiAjaWZkZWYgX19LRVJORUxfXwpkaWZm IC0tZ2l0IGEvZnMveGZzL3hmc19sb2cuaCBiL2ZzL3hmcy94ZnNfbG9nLmgKaW5kZXggMTc2NGYx MS4uZmY0YzQ0MyAxMDA2NDQKLS0tIGEvZnMveGZzL3hmc19sb2cuaAorKysgYi9mcy94ZnMveGZz X2xvZy5oCkBAIC0xOTcsNiArMTk3LDcgQEAgdm9pZAkgIHhmc19sb2dfdGlja2V0X3B1dChzdHJ1 Y3QgeGxvZ190aWNrZXQgKnRpY2tldCk7CiBpbnQJeGZzX2xvZ19jb21taXRfY2lsKHN0cnVjdCB4 ZnNfbW91bnQgKm1wLCBzdHJ1Y3QgeGZzX3RyYW5zICp0cCwKIAkJCQlzdHJ1Y3QgeGZzX2xvZ192 ZWMgKmxvZ192ZWN0b3IsCiAJCQkJeGZzX2xzbl90ICpjb21taXRfbHNuLCBpbnQgZmxhZ3MpOwor Ym9vbAl4ZnNfbG9nX2l0ZW1faW5fY3VycmVudF9jaGtwdChzdHJ1Y3QgeGZzX2xvZ19pdGVtICps aXApOwogI2VuZGlmCiAKIApkaWZmIC0tZ2l0IGEvZnMveGZzL3hmc19sb2dfY2lsLmMgYi9mcy94 ZnMveGZzX2xvZ19jaWwuYwppbmRleCA4MDZjZjZiLi5mNjczM2ViIDEwMDY0NAotLS0gYS9mcy94 ZnMveGZzX2xvZ19jaWwuYworKysgYi9mcy94ZnMveGZzX2xvZ19jaWwuYwpAQCAtMjAxLDYgKzIw MSwxNSBAQCB4bG9nX2NpbF9pbnNlcnQoCiAJY3R4LT5udmVjcyArPSBkaWZmX2lvdmVjczsKIAog CS8qCisJICogSWYgdGhpcyBpcyB0aGUgZmlyc3QgdGltZSB0aGUgaXRlbSBpcyBiZWluZyBjb21t aXR0ZWQgdG8gdGhlIENJTCwKKwkgKiBzdG9yZSB0aGUgc2VxdWVuY2UgbnVtYmVyIG9uIHRoZSBs b2cgaXRlbSBzbyB3ZSBjYW4gdGVsbAorCSAqIGluIGZ1dHVyZSBjb21taXRzIHdoZXRoZXIgdGhp cyBpcyB0aGUgZmlyc3QgY2hlY2twb2ludCB0aGUgaXRlbSBpcworCSAqIGJlaW5nIGNvbW1pdHRl ZCBpbnRvLgorCSAqLworCWlmICghaXRlbS0+bGlfc2VxKQorCQlpdGVtLT5saV9zZXEgPSBjdHgt PnNlcXVlbmNlOworCisJLyoKIAkgKiBOb3cgdHJhbnNmZXIgZW5vdWdoIHRyYW5zYWN0aW9uIHJl c2VydmF0aW9uIHRvIHRoZSBjb250ZXh0IHRpY2tldAogCSAqIGZvciB0aGUgY2hlY2twb2ludC4g VGhlIGNvbnRleHQgdGlja2V0IGlzIHNwZWNpYWwgLSB0aGUgdW5pdAogCSAqIHJlc2VydmF0aW9u IGhhcyB0byBncm93IGFzIHdlbGwgYXMgdGhlIGN1cnJlbnQgcmVzZXJ2YXRpb24gYXMgd2UKQEAg LTMyOCw2ICszMzcsMTAgQEAgeGxvZ19jaWxfZnJlZV9sb2d2ZWMoCiAgKiBGb3IgbW9yZSBzcGVj aWZpYyBpbmZvcm1hdGlvbiBhYm91dCB0aGUgb3JkZXIgb2Ygb3BlcmF0aW9ucyBpbgogICogeGZz X2xvZ19jb21taXRfY2lsKCkgcGxlYXNlIHJlZmVyIHRvIHRoZSBjb21tZW50cyBpbgogICogeGZz X3RyYW5zX2NvbW1pdF9pY2xvZygpLgorICoKKyAqIENhbGxlZCB3aXRoIHRoZSBjb250ZXh0IGxv Y2sgYWxyZWFkeSBoZWxkIGluIHJlYWQgbW9kZSB0byBsb2NrIG91dAorICogYmFja2dyb3VuZCBj b21taXQsIHJldHVybnMgd2l0aG91dCBpdCBoZWxkIG9uY2UgYmFja2dyb3VuZCBjb21taXRzIGFy ZQorICogYWxsb3dlZCBhZ2Fpbi4KICAqLwogaW50CiB4ZnNfbG9nX2NvbW1pdF9jaWwoCkBAIC0z NDYsMTEgKzM1OSwxMCBAQCB4ZnNfbG9nX2NvbW1pdF9jaWwoCiAKIAlpZiAoWExPR19GT1JDRURf U0hVVERPV04obG9nKSkgewogCQl4bG9nX2NpbF9mcmVlX2xvZ3ZlYyhsb2dfdmVjdG9yKTsKKwkJ dXBfcmVhZCgmbG9nLT5sX2NpbHAtPnhjX2N0eF9sb2NrKTsKIAkJcmV0dXJuIFhGU19FUlJPUihF SU8pOwogCX0KIAotCS8qIGxvY2sgb3V0IGJhY2tncm91bmQgY29tbWl0ICovCi0JZG93bl9yZWFk KCZsb2ctPmxfY2lscC0+eGNfY3R4X2xvY2spOwogCXhsb2dfY2lsX2Zvcm1hdF9pdGVtcyhsb2cs IGxvZ192ZWN0b3IsIHRwLT50X3RpY2tldCwgY29tbWl0X2xzbik7CiAKIAkvKiBjaGVjayB3ZSBk aWRuJ3QgYmxvdyB0aGUgcmVzZXJ2YXRpb24gKi8KQEAgLTY4NywzICs2OTksMzUgQEAgcmVzdGFy dDoKIAlyZXR1cm4gY29tbWl0X2xzbjsKIH0KIAorLyoKKyAqIENoZWNrIGlmIHRoZSBjdXJyZW50 IGxvZyBpdGVtIHdhcyBmaXJzdCBjb21taXR0ZWQgaW4gdGhpcyBzZXF1ZW5jZS4KKyAqIFdlIGNh bid0IHJlbHkgb24ganVzdCB0aGUgbG9nIGl0ZW0gYmVpbmcgaW4gdGhlIENJTCwgd2UgaGF2ZSB0 byBjaGVjaworICogdGhlIHJlY29yZGVkIGNvbW1pdCBzZXF1ZW5jZSBudW1iZXIuCisgKgorICog Tm90ZTogZm9yIHRoaXMgdG8gYmUgdXNlZCBpbiBhIG5vbi1yYWN5IG1hbm5lciwgaXQgaGFzIHRv IGJlIGNhbGxlZCB3aXRoCisgKiBDSUwgZmx1c2hpbmcgbG9ja2VkIG91dC4gQXMgYSByZXN1bHQs IGl0IHNob3VsZCBvbmx5IGJlIHVzZWQgZHVyaW5nIHRoZQorICogdHJhbnNhY3Rpb24gY29tbWl0 IHByb2Nlc3Mgd2hlbiBkZWNpZGluZyB3aGF0IHRvIGZvcm1hdCBpbnRvIHRoZSBpdGVtLgorICov Citib29sCit4ZnNfbG9nX2l0ZW1faW5fY3VycmVudF9jaGtwdCgKKwlzdHJ1Y3QgeGZzX2xvZ19p dGVtICpsaXApCit7CisJc3RydWN0IHhmc19jaWxfY3R4ICpjdHg7CisKKwlpZiAoIShsaXAtPmxp X21vdW50cC0+bV9mbGFncyAmIFhGU19NT1VOVF9ERUxBWUxPRykpCisJCXJldHVybiBmYWxzZTsK KwlpZiAobGlzdF9lbXB0eSgmbGlwLT5saV9jaWwpKQorCQlyZXR1cm4gZmFsc2U7CisKKwljdHgg PSBsaXAtPmxpX21vdW50cC0+bV9sb2ctPmxfY2lscC0+eGNfY3R4OworCisJLyoKKwkgKiBsaV9z ZXEgaXMgd3JpdHRlbiBvbiB0aGUgZmlyc3QgY29tbWl0IG9mIGEgbG9nIGl0ZW0gdG8gcmVjb3Jk IHRoZQorCSAqIGZpcnN0IGNoZWNrcG9pbnQgaXQgaXMgd3JpdHRlbiB0by4gSGVuY2UgaWYgaXQg aXMgZGlmZmVyZW50IHRvIHRoZQorCSAqIGN1cnJlbnQgc2VxdWVuY2UsIHdlJ3JlIGluIGEgbmV3 IGNoZWNrcG9pbnQuCisJICovCisJaWYgKFhGU19MU05fQ01QKGxpcC0+bGlfc2VxLCBjdHgtPnNl cXVlbmNlKSAhPSAwKQorCQlyZXR1cm4gZmFsc2U7CisJcmV0dXJuIHRydWU7Cit9CisKZGlmZiAt LWdpdCBhL2ZzL3hmcy94ZnNfdHJhbnMuYyBiL2ZzL3hmcy94ZnNfdHJhbnMuYwppbmRleCA5YmRi NDkyLi4zZTg4YzNmIDEwMDY0NAotLS0gYS9mcy94ZnMveGZzX3RyYW5zLmMKKysrIGIvZnMveGZz L3hmc190cmFucy5jCkBAIC00NSw2ICs0NSw3IEBACiAjaW5jbHVkZSAieGZzX3RyYW5zX3NwYWNl LmgiCiAjaW5jbHVkZSAieGZzX2lub2RlX2l0ZW0uaCIKICNpbmNsdWRlICJ4ZnNfdHJhY2UuaCIK KyNpbmNsdWRlICJ4ZnNfbG9nX3ByaXYuaCIKIAoga21lbV96b25lX3QJKnhmc190cmFuc196b25l OwogCkBAIC0xMjYxLDEwICsxMjYyLDE5IEBAIHhmc190cmFuc19jb21taXRfY2lsKAogCQlyZXR1 cm4gRU5PTUVNOwogCiAJLyoKLQkgKiBGaWxsIGluIHRoZSBsb2dfdmVjdG9yIGFuZCBwaW4gdGhl IGxvZ2dlZCBpdGVtcywgYW5kCi0JICogdGhlbiB3cml0ZSB0aGUgdHJhbnNhY3Rpb24gdG8gdGhl IGxvZy4gV2UgaGF2ZSB0byBsb2NrCi0JICogb3V0IENJTCBmbHVzaGVzIGZyb20gdGhpcyBwb2lu dCBhcyB3ZSBhcmUgZ29pbmcgdG8gcGluCisJICogTm93IHdlIG5lZWQgdG8gZmlsbCBpbiB0aGUg bG9nX3ZlY3RvciBhbmQgcGluIHRoZSBsb2dnZWQgaXRlbXMsIGFuZAorCSAqIHRoZW4gd3JpdGUg dGhlIHRyYW5zYWN0aW9uIHRvIHRoZSBsb2cuCisJICoKKwkgKiBJbXBvcnRhbnQ6IFdlIGhhdmUg dG8gbG9jayBvdXQgQ0lMIGZsdXNoZXMgZnJvbSB0aGlzIHBvaW50IGFzCisJICogdHJhbnNmZXJy aW5nIHN0YXRlIGZyb20gdGhlIGluIG1lbW9yeSBsb2cgaXRlbXMgdG8gdGhlIGxvZyBpdGVtCisJ ICogaGVhZGVycyBkdXJpbmcgZm9ybWF0dGluZyBtYXkgcmVxdWlyZSBhdG9taWNpdHkgYWdhaW5z dCBsb2cgd3JpdGVzCisJICogdG8gZW5zdXJlIHRoYXQgc3RhdGUgaXMgdHJhbnNmZXJyZWQgdG8g dGhlIGxvZyB3aXRob3V0IHJhY2luZworCSAqIGFnYWluc3QgZmx1c2hlcy4KKwkgKgorCSAqIHhm c19sb2dfY29tbWl0X2NpbCgpIHdpbGwgcmVsZWFzZSB0aGUgbG9jayBhcyBwYXJ0IG9mIHRoZSBj b21taXQKKwkgKiBwcm9jZXNzLgogCSAqLworCWRvd25fcmVhZCgmbXAtPm1fbG9nLT5sX2NpbHAt PnhjX2N0eF9sb2NrKTsKIAl4ZnNfdHJhbnNfZmlsbF9sb2dfdmVjcyh0cCwgbG9nX3ZlY3Rvcik7 CiAKIAlyZXR1cm4geGZzX2xvZ19jb21taXRfY2lsKG1wLCB0cCwgbG9nX3ZlY3RvciwgY29tbWl0 X2xzbiwgZmxhZ3MpOwpkaWZmIC0tZ2l0IGEvZnMveGZzL3hmc190cmFucy5oIGIvZnMveGZzL3hm c190cmFucy5oCmluZGV4IGIxZWEyMGMuLjhjNjllNzggMTAwNjQ0Ci0tLSBhL2ZzL3hmcy94ZnNf dHJhbnMuaAorKysgYi9mcy94ZnMveGZzX3RyYW5zLmgKQEAgLTgzNSw2ICs4MzUsNyBAQCB0eXBl ZGVmIHN0cnVjdCB4ZnNfbG9nX2l0ZW0gewogCS8qIGRlbGF5ZWQgbG9nZ2luZyAqLwogCXN0cnVj dCBsaXN0X2hlYWQJCWxpX2NpbDsJCS8qIENJTCBwb2ludGVycyAqLwogCXN0cnVjdCB4ZnNfbG9n X3ZlYwkJKmxpX2x2OwkJLyogYWN0aXZlIGxvZyB2ZWN0b3IgKi8KKwl4ZnNfbHNuX3QJCQlsaV9z ZXE7CQkvKiBDSUwgY29tbWl0IHNlcSAqLwogfSB4ZnNfbG9nX2l0ZW1fdDsKIAogI2RlZmluZQlY RlNfTElfSU5fQUlMCTB4MQpkaWZmIC0tZ2l0IGEvZnMveGZzL3hmc190cmFuc19idWYuYyBiL2Zz L3hmcy94ZnNfdHJhbnNfYnVmLmMKaW5kZXggMzM5MGMzZS4uNjNkODFhMiAxMDA2NDQKLS0tIGEv ZnMveGZzL3hmc190cmFuc19idWYuYworKysgYi9mcy94ZnMveGZzX3RyYW5zX2J1Zi5jCkBAIC03 OTIsNyArNzkyLDcgQEAgeGZzX3RyYW5zX2JpbnZhbCgKIAlYRlNfQlVGX1VOREVMQVlXUklURShi cCk7CiAJWEZTX0JVRl9TVEFMRShicCk7CiAJYmlwLT5ibGlfZmxhZ3MgfD0gWEZTX0JMSV9TVEFM RTsKLQliaXAtPmJsaV9mbGFncyAmPSB+KFhGU19CTElfTE9HR0VEIHwgWEZTX0JMSV9ESVJUWSk7 CisJYmlwLT5ibGlfZmxhZ3MgJj0gfihYRlNfQkxJX0lOT0RFX0JVRiB8IFhGU19CTElfTE9HR0VE IHwgWEZTX0JMSV9ESVJUWSk7CiAJYmlwLT5ibGlfZm9ybWF0LmJsZl9mbGFncyAmPSB+WEZTX0JM Rl9JTk9ERV9CVUY7CiAJYmlwLT5ibGlfZm9ybWF0LmJsZl9mbGFncyB8PSBYRlNfQkxGX0NBTkNF TDsKIAltZW1zZXQoKGNoYXIgKikoYmlwLT5ibGlfZm9ybWF0LmJsZl9kYXRhX21hcCksIDAsCkBA IC04MDIsMTYgKzgwMiwxNiBAQCB4ZnNfdHJhbnNfYmludmFsKAogfQogCiAvKgotICogVGhpcyBj YWxsIGlzIHVzZWQgdG8gaW5kaWNhdGUgdGhhdCB0aGUgYnVmZmVyIGNvbnRhaW5zIG9uLWRpc2sK LSAqIGlub2RlcyB3aGljaCBtdXN0IGJlIGhhbmRsZWQgc3BlY2lhbGx5IGR1cmluZyByZWNvdmVy eS4gIFRoZXkKLSAqIHJlcXVpcmUgc3BlY2lhbCBoYW5kbGluZyBiZWNhdXNlIG9ubHkgdGhlIGRp X25leHRfdW5saW5rZWQgZnJvbQotICogdGhlIGlub2RlcyBpbiB0aGUgYnVmZmVyIHNob3VsZCBi ZSByZWNvdmVyZWQuICBUaGUgcmVzdCBvZiB0aGUKLSAqIGRhdGEgaW4gdGhlIGJ1ZmZlciBpcyBs b2dnZWQgdmlhIHRoZSBpbm9kZXMgdGhlbXNlbHZlcy4KKyAqIFRoaXMgY2FsbCBpcyB1c2VkIHRv IGluZGljYXRlIHRoYXQgdGhlIGJ1ZmZlciBjb250YWlucyBvbi1kaXNrIGlub2RlcyB3aGljaAor ICogbXVzdCBiZSBoYW5kbGVkIHNwZWNpYWxseSBkdXJpbmcgcmVjb3ZlcnkuICBUaGV5IHJlcXVp cmUgc3BlY2lhbCBoYW5kbGluZworICogYmVjYXVzZSBvbmx5IHRoZSBkaV9uZXh0X3VubGlua2Vk IGZyb20gdGhlIGlub2RlcyBpbiB0aGUgYnVmZmVyIHNob3VsZCBiZQorICogcmVjb3ZlcmVkLiAg VGhlIHJlc3Qgb2YgdGhlIGRhdGEgaW4gdGhlIGJ1ZmZlciBpcyBsb2dnZWQgdmlhIHRoZSBpbm9k ZXMKKyAqIHRoZW1zZWx2ZXMuCiAgKgotICogQWxsIHdlIGRvIGlzIHNldCB0aGUgWEZTX0JMSV9J Tk9ERV9CVUYgZmxhZyBpbiB0aGUgYnVmZmVyJ3MgbG9nCi0gKiBmb3JtYXQgc3RydWN0dXJlIHNv IHRoYXQgd2UnbGwga25vdyB3aGF0IHRvIGRvIGF0IHJlY292ZXJ5IHRpbWUuCisgKiBBbGwgd2Ug ZG8gaXMgc2V0IHRoZSBYRlNfQkxJX0lOT0RFX0JVRiBmbGFnIGluIHRoZSBpdGVtcyBmbGFncyBz byBpdCBjYW4gYmUKKyAqIHRyYW5zZmVycmVkIHRvIHRoZSBidWZmZXIncyBsb2cgZm9ybWF0IHN0 cnVjdHVyZSBzbyB0aGF0IHdlJ2xsIGtub3cgd2hhdCB0bworICogZG8gYXQgcmVjb3ZlcnkgdGlt ZS4KICAqLwotLyogQVJHU1VTRUQgKi8KIHZvaWQKIHhmc190cmFuc19pbm9kZV9idWYoCiAJeGZz X3RyYW5zX3QJKnRwLApAQCAtODI2LDcgKzgyNiw3IEBAIHhmc190cmFuc19pbm9kZV9idWYoCiAJ YmlwID0gWEZTX0JVRl9GU1BSSVZBVEUoYnAsIHhmc19idWZfbG9nX2l0ZW1fdCAqKTsKIAlBU1NF UlQoYXRvbWljX3JlYWQoJmJpcC0+YmxpX3JlZmNvdW50KSA+IDApOwogCi0JYmlwLT5ibGlfZm9y bWF0LmJsZl9mbGFncyB8PSBYRlNfQkxGX0lOT0RFX0JVRjsKKwliaXAtPmJsaV9mbGFncyB8PSBY RlNfQkxJX0lOT0RFX0JVRjsKIH0KIAogLyoKLS0gCjEuNS42LjUKCl9fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCnhmcyBtYWlsaW5nIGxpc3QKeGZzQG9zcy5z Z2kuY29tCmh0dHA6Ly9vc3Muc2dpLmNvbS9tYWlsbWFuL2xpc3RpbmZvL3hmcwo=