From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (Postfix) with ESMTP id 9B5967F53 for ; Sun, 10 Feb 2013 16:16:09 -0600 (CST) Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by relay1.corp.sgi.com (Postfix) with ESMTP id 709168F8039 for ; Sun, 10 Feb 2013 14:16:06 -0800 (PST) Received: from ipmail05.adl6.internode.on.net (ipmail05.adl6.internode.on.net [150.101.137.143]) by cuda.sgi.com with ESMTP id 6w9qDoaHuCljoL3M for ; Sun, 10 Feb 2013 14:16:03 -0800 (PST) Date: Mon, 11 Feb 2013 09:16:00 +1100 From: Dave Chinner Subject: Re: Xfs fails in xfstests 013 Message-ID: <20130210221600.GC8257@dastard> References: <20130201002927.GJ32297@disturbed.disaster> <20130203230013.GI2667@dastard> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20130203230013.GI2667@dastard> 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 Errors-To: xfs-bounces@oss.sgi.com Sender: xfs-bounces@oss.sgi.com To: =?utf-8?B?THVrw6HFoQ==?= Czerner Cc: xfs@oss.sgi.com T24gTW9uLCBGZWIgMDQsIDIwMTMgYXQgMTA6MDA6MTNBTSArMTEwMCwgRGF2ZSBDaGlubmVyIHdy b3RlOgo+IE9uIEZyaSwgRmViIDAxLCAyMDEzIGF0IDAzOjMzOjA2UE0gKzAxMDAsIEx1a8OhxaEg Q3plcm5lciB3cm90ZToKPiA+IE9uIEZyaSwgMSBGZWIgMjAxMywgTHVrw6HFoSBDemVybmVyIHdy b3RlOgo+ID4gYW5kIEkgaGF2ZSBub3QgaGl0IHRoZSBhc3NlcnQuIEhvd2V2ZXIgSSB0aGluayB0 aGF0IEkga25vdyB3aGF0J3MKPiA+IGdvaW5nIG9uLiBUaGUgdmVyaWZpZXIgaXMgb2J2aW91c2x5 IG5vdCBhdHRhY2hlZCB3aGVuIHRoZSBzeW1saW5rIGlzCj4gPiBjcmVhdGVkLCBob3dldmVyIGl0 IGlzIGF0dGFjaGVkIHdoZW4gc2VjdXJpdHkgYXR0cmlidXRlcyBhcmUgY3JlYXRlZAo+ID4gZm9y IHRoZSBzeW1saW5rIGJ5IHhmc19pbml0X3NlY3VyaXR5KCkuCj4gCj4gV2hpY2ggbWVhbnMgdGhl IGJ1ZyBpcyBpbiB4ZnNfYm1hcF9hZGRfYXR0cmZvcmtfbG9jYWwoKSBpbiBjYWxsaW5nCj4geGZz X2JtYXBfbG9jYWxfdG9fZXh0ZW50cygpLiBpLmUgaXQgYXNzdW1lcyB0aGF0IHRoZSBsb2NhbCBk YXRhIGlzCj4gZWl0aGVyIGRpcmVjdG9yeSBkYXRhIG9yIGV4dGVudCBkYXRhLCBhbmQgaXMgYXR0 YWNoaW5nIGV4dGVudCB0cmVlCj4gdmVyaWZpZXJzIHRvIHRoZSBidWZmZXIgdGhhdCBjb250YWlu cyBhIHJlbW90ZSBzeW1saW5rLiBUaGlua2luZwo+IHRpbWUgbm93IG5lZWRlZCwgYXMgdGhpcyBh ZmZlY3RzIHRoZSBzeW1saW5rIENSQyBjaGFuZ2VzIGFzIHdlbGwuCj4gCj4gVGhhbmtzIGZvciB0 aGUgZGVidWcgaGVscCwgTHVrYXMuCgpMdWthcywgY2FuIHlvdSBjaGVjayB3aGV0aGVyIHRoZSBw YXRjaCBiZWxvdyBmaXhlcyB0aGUgcHJvYmxlbSB5b3UKc2F3PwoKQ2hlZXJzLAoKRGF2ZS4KLS0g CkRhdmUgQ2hpbm5lcgpkYXZpZEBmcm9tb3JiaXQuY29tCgoKeGZzOiB4ZnNfYm1hcF9hZGRfYXR0 cmZvcmtfbG9jYWwgaXMgdG9vIGdlbmVyaWMKCkZyb206IERhdmUgQ2hpbm5lciA8ZGNoaW5uZXJA cmVkaGF0LmNvbT4KCldoZW4gd2UgYXJlIGNvbnZlcnRpbmcgbG9jYWwgZGF0YSB0byBhbiBleHRl bnQgZm9ybWF0IGFzIGEgcmVzdWx0IG9mCmFkZGluZyBhbiBhdHRyaWJ1dGUsIHRoZSB0eXBlIG9m IGRhdGEgY29udGFpbmVkIGluIHRoZSBsb2NhbCBmb3JrCmRldGVybWluZXMgdGhlIGJlaGF2aW91 ciB0aGF0IG5lZWRzIHRvIG9jY3VyLgoKeGZzX2JtYXBfYWRkX2F0dHJmb3JrX2xvY2FsKCkgYWxy ZWFkeSBoYW5kbGVzIHRoZSBkaXJlY3RvcnkgZGF0YQpjYXNlIHNwZWNpYWxseSBieSB1c2luZyBT X0lTRElSKCkgYW5kIGNhbGxpbmcgb3V0IHRvCnhmc19kaXIyX3NmX3RvX2Jsb2NrKCksIGJ1dCB3 aXRoIHZlcmlmaWVycyB3ZSBub3cgbmVlZCB0byBoYW5kbGUKZWFjaCBkaWZmZXJlbnQgdHlwZSBv ZiBtZXRhZGF0YSBzcGVjaWFsbHkgYW5kIGRpZmZlcmVudCBtZXRhZGF0YQpmb3JtYXRzIHJlcXVp cmUgZGlmZmVyZW50IHZlcmlmaWVycyAoYW5kIGV2ZW50dWFsbHkgYmxvY2sgaGVhZGVyCmluaXRp YWxpc2F0aW9uKS4KClRoZXJlIGlzIG9ubHkgYSBzaW5nbGUgcGxhY2UgdGhhdCB3ZSBhZGQgYW5k IGF0dHJpYnV0ZSBmb3JrIHRvCnRoZSBpbm9kZSwgYnV0IHRoYXQgaXMgaW4gdGhlIGF0dHJpYnV0 ZSBjb2RlIGFuZCBpdCBrbm93cyBub3RoaW5nCmFib3V0IHRoZSBzcGVjaWZpYyBjb250ZW50cyBv ZiB0aGUgZGF0YSBmb3JrLiBJdCBpcyBvbmx5IHRoZSBjYXNlIG9mCmxvY2FsIGRhdGEgdGhhdCBp cyB0aGUgaXNzdWUgaGVyZSwgc28gYWRkaW5nIGNvZGUgdG8gaGFkbmxlIHRoaXMKY2FzZSBpbiB0 aGUgYXR0cmlidXRlIHNwZWNpZmljIGNvZGUgaXMgd3JvbmcuIEhlbmNlIHdlIGFyZSByZWFsbHkK c3R1Y2sgdHJ5aW5nIHRvIGRldGVjdCB0aGUgZGF0YSBmb3JrIGNvbnRlbnRzIGluCnhmc19ibWFw X2FkZF9hdHRyZm9ya19sb2NhbCgpIGFuZCBwZXJmb3JtaW5nIHRoZSBjb3JyZWN0IGNhbGxvdXQK dGhlcmUuCgpMdWNraWx5IHRoZSBjdXJyZW50IGNhc2VzIGNhbiBiZSBkZXRlcm1pbmVkIGJ5IFNf SVMqIG1hY3JvcywgYW5kIHdlCmNhbiBwdXNoIHRoZSB3b3JrIG9mZiB0byBkYXRhIHNwZWNpZmlj IGNhbGxvdXRzLCBidXQgZWFjaCBvZiB0aG9zZQpjYWxsb3V0cyBkb2VzIGEgbG90IG9mIHdvcmsg aW4gY29tbW9uIHdpdGgKeGZzX2JtYXBfbG9jYWxfdG9fZXh0ZW50cygpLiBUaGUgb25seSByZWFz b24gdGhhdCB0aGlzIGZhaWxzIGZvcgpzeW1saW5rcyByaWdodCBub3cgaXMgaXMgdGhhdCB4ZnNf Ym1hcF9sb2NhbF90b19leHRlbnRzKCkgYXNzdW1lcwp0aGUgZGF0YSBmb3JrIGNvbnRhaW5zIGV4 dGVudCBkYXRhLCBhbmQgc28gYXR0YWNoZXMgYSBhIGJtYXAgZXh0ZW50CmRhdGEgdmVyaWZpZXIg dG8gdGhlIGJ1ZmZlciBhbmQgc2ltcGx5IGNvcGllcyB0aGUgZGF0YSBmb3JrCmluZm9ybWF0aW9u IHN0cmFpZ2h0IGludG8gaXQuCgpUbyBmaXggdGhpcywgYWxsb3cgdXMgdG8gcGFzcyBhICJmb3Jt YXR0aW5nIiBjYWxsYmFjayBpbnRvCnhmc19ibWFwX2xvY2FsX3RvX2V4dGVudHMoKSB3aGljaCBp cyByZXNwb25zaWJsZSBmb3Igc2V0dGluZyB0aGUKYnVmZmVyIHR5cGUsIGluaXRpYWxpc2luZyBp dCBhbmQgY29weWluZyB0aGUgZGF0YSBmb3JrIGNvbnRlbnRzIG92ZXIKdG8gdGhlIG5ldyBidWZm ZXIuIFRoaXMgYWxsb3dzIGNhbGxlcnMgdG8gc3BlY2lmeSBob3cgdGhleSB3YW50IHRvCmZvcm1h dCB0aGUgbmV3IGJ1ZmZlciAod2hpY2ggaXMgbmVjZXNzYXJ5IGZvciB0aGUgdXBjb21pbmcgQ1JD CmVuYWJsZWQgbWV0YWRhdGEgYmxvY2tzKSBhbmQgaGVuY2UgbWFrZSB4ZnNfYm1hcF9sb2NhbF90 b19leHRlbnRzKCkKdXNlZnVsIGZvciBhbnkgdHlwZSBvZiBkYXRhIGZvcmsgY29udGVudC4KClNp Z25lZC1vZmYtYnk6IERhdmUgQ2hpbm5lciA8ZGNoaW5uZXJAcmVkaGF0LmNvbT4KLS0tCiBmcy94 ZnMveGZzX2JtYXAuYyB8ICAxMTQgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKy0tLS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA5MyBpbnNlcnRpb25zKCspLCAyMSBk ZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9mcy94ZnMveGZzX2JtYXAuYyBiL2ZzL3hmcy94ZnNf Ym1hcC5jCmluZGV4IDQ5MWYzNWUuLmI0NGFmOTIgMTAwNjQ0Ci0tLSBhL2ZzL3hmcy94ZnNfYm1h cC5jCisrKyBiL2ZzL3hmcy94ZnNfYm1hcC5jCkBAIC0xNDcsNyArMTQ3LDEwIEBAIHhmc19ibWFw X2xvY2FsX3RvX2V4dGVudHMoCiAJeGZzX2ZzYmxvY2tfdAkqZmlyc3RibG9jaywJLyogZmlyc3Qg YmxvY2sgYWxsb2NhdGVkIGluIHhhY3Rpb24gKi8KIAl4ZnNfZXh0bGVuX3QJdG90YWwsCQkvKiB0 b3RhbCBibG9ja3MgbmVlZGVkIGJ5IHRyYW5zYWN0aW9uICovCiAJaW50CQkqbG9nZmxhZ3NwLAkv KiBpbm9kZSBsb2dnaW5nIGZsYWdzICovCi0JaW50CQl3aGljaGZvcmspOwkvKiBkYXRhIG9yIGF0 dHIgZm9yayAqLworCWludAkJd2hpY2hmb3JrLAkvKiBkYXRhIG9yIGF0dHIgZm9yayAqLworCXZv aWQJCSgqaW5pdF9mbikoc3RydWN0IHhmc19idWYgKmJwLAorCQkJCSAgIHN0cnVjdCB4ZnNfaW5v ZGUgKmlwLAorCQkJCSAgIHN0cnVjdCB4ZnNfaWZvcmsgKmlmcCkpOwogCiAvKgogICogU2VhcmNo IHRoZSBleHRlbnRzIGxpc3QgZm9yIHRoZSBpbm9kZSwgZm9yIHRoZSBleHRlbnQgY29udGFpbmlu ZyBibm8uCkBAIC0zNTcsNyArMzYwLDQyIEBAIHhmc19ibWFwX2FkZF9hdHRyZm9ya19leHRlbnRz KAogfQogCiAvKgotICogQ2FsbGVkIGZyb20geGZzX2JtYXBfYWRkX2F0dHJmb3JrIHRvIGhhbmRs ZSBsb2NhbCBmb3JtYXQgZmlsZXMuCisgKiBCbG9jayBpbml0aWFsaXNhdGlvbiBmdW5jdGlvbnMg Zm9yIGxvY2FsIHRvIGV4dGVudCBmb3JtYXQgY29udmVyc2lvbi4KKyAqIEFzIHRoZXNlIGdldCBt b3JlIGNvbXBsZXgsIHRoZXkgd2lsbCBiZSBtb3ZlZCB0byB0aGUgcmVsZXZhbnQgZmlsZXMsCisg KiBidXQgZm9yIG5vdyB0aGV5IGFyZSB0b28gc2ltcGxlIHRvIHdvcnJ5IGFib3V0LgorICovCitT VEFUSUMgdm9pZAoreGZzX2JtYXBfbG9jYWxfdG9fZXh0ZW50c19pbml0X2ZuKAorCXN0cnVjdCB4 ZnNfYnVmCQkqYnAsCisJc3RydWN0IHhmc19pbm9kZQkqaXAsCisJc3RydWN0IHhmc19pZm9yawkq aWZwKQoreworCWJwLT5iX29wcyA9ICZ4ZnNfYm1idF9idWZfb3BzOworCW1lbWNweShicC0+Yl9h ZGRyLCBpZnAtPmlmX3UxLmlmX2RhdGEsIGlmcC0+aWZfYnl0ZXMpOworfQorCitTVEFUSUMgdm9p ZAoreGZzX3N5bWxpbmtfbG9jYWxfdG9fcmVtb3RlKAorCXN0cnVjdCB4ZnNfYnVmCQkqYnAsCisJ c3RydWN0IHhmc19pbm9kZQkqaXAsCisJc3RydWN0IHhmc19pZm9yawkqaWZwKQoreworCS8qIHJl bW90ZSBzeW1saW5rIGJsb2NrcyBhcmUgbm90IHZlcmlmaWFibGUgdW50aWwgQ1JDcyBjb21lIGFs b25nICovCisJYnAtPmJfb3BzID0gTlVMTDsKKwltZW1jcHkoYnAtPmJfYWRkciwgaWZwLT5pZl91 MS5pZl9kYXRhLCBpZnAtPmlmX2J5dGVzKTsKK30KKworLyoKKyAqIENhbGxlZCBmcm9tIHhmc19i bWFwX2FkZF9hdHRyZm9yayB0byBoYW5kbGUgbG9jYWwgZm9ybWF0IGZpbGVzLiBFYWNoCisgKiBk aWZmZXJlbnQgZGF0YSBmb3JrIGNvbnRlbnQgdHlwZSBuZWVkcyBhIGRpZmZlcmVudCBjYWxsb3V0 IHRvIGRvIHRoZQorICogY29udmVyc2lvbi4gU29tZSBhcmUgYmFzaWMgYW5kIG9ubHkgcmVxdWly ZSBzcGVjaWFsIGJsb2NrIGluaXRpYWxpc2F0aW9uCisgKiBjYWxsb3V0cyBmb3IgdGhlIGRhdGEg Zm9ybWF0aW5nLCBvdGhlcnMgKGRpcmVjdG9yaWVzKSBhcmUgc28gc3BlY2lhbGlzZWQgdGhleQor ICogaGFuZGxlIGV2ZXJ5dGhpbmcgdGhlbXNlbHZlcy4KKyAqCisgKiBYWFggKGRnYyk6IGludmVz dGlnYXRlIHdoZXRoZXIgZGlyZWN0b3J5IGNvbnZlcnNpb24gY2FuIHVzZSB0aGUgZ2VuZXJpYwor ICogZm9ybWF0dGluZyBjYWxsb3V0LiBJdCBzaG91bGQgYmUgcG9zc2libGUgLSBpdCdzIGp1c3Qg YSB2ZXJ5IGNvbXBsZXgKKyAqIGZvcm1hdHRlci4gaXQgd291bGQgYWxzbyByZXF1aXJlIHBhc3Np bmcgdGhlIHRyYW5zYWN0aW9uIHRocm91Z2ggdG8gdGhlIGluaXQKKyAqIGZ1bmN0aW9uLgogICov CiBTVEFUSUMgaW50CQkJCQkvKiBlcnJvciAqLwogeGZzX2JtYXBfYWRkX2F0dHJmb3JrX2xvY2Fs KApAQCAtMzY4LDI1ICs0MDYsMjkgQEAgeGZzX2JtYXBfYWRkX2F0dHJmb3JrX2xvY2FsKAogCWlu dAkJCSpmbGFncykJCS8qIGlub2RlIGxvZ2dpbmcgZmxhZ3MgKi8KIHsKIAl4ZnNfZGFfYXJnc190 CQlkYXJnczsJCS8qIGFyZ3MgZm9yIGRpci9hdHRyIGNvZGUgKi8KLQlpbnQJCQllcnJvcjsJCS8q IGVycm9yIHJldHVybiB2YWx1ZSAqLwotCXhmc19tb3VudF90CQkqbXA7CQkvKiBtb3VudCBzdHJ1 Y3R1cmUgcG9pbnRlciAqLwogCiAJaWYgKGlwLT5pX2RmLmlmX2J5dGVzIDw9IFhGU19JRk9SS19E U0laRShpcCkpCiAJCXJldHVybiAwOworCiAJaWYgKFNfSVNESVIoaXAtPmlfZC5kaV9tb2RlKSkg ewotCQltcCA9IGlwLT5pX21vdW50OwogCQltZW1zZXQoJmRhcmdzLCAwLCBzaXplb2YoZGFyZ3Mp KTsKIAkJZGFyZ3MuZHAgPSBpcDsKIAkJZGFyZ3MuZmlyc3RibG9jayA9IGZpcnN0YmxvY2s7CiAJ CWRhcmdzLmZsaXN0ID0gZmxpc3Q7Ci0JCWRhcmdzLnRvdGFsID0gbXAtPm1fZGlyYmxrZnNiczsK KwkJZGFyZ3MudG90YWwgPSBpcC0+aV9tb3VudC0+bV9kaXJibGtmc2JzOwogCQlkYXJncy53aGlj aGZvcmsgPSBYRlNfREFUQV9GT1JLOwogCQlkYXJncy50cmFucyA9IHRwOwotCQllcnJvciA9IHhm c19kaXIyX3NmX3RvX2Jsb2NrKCZkYXJncyk7Ci0JfSBlbHNlCi0JCWVycm9yID0geGZzX2JtYXBf bG9jYWxfdG9fZXh0ZW50cyh0cCwgaXAsIGZpcnN0YmxvY2ssIDEsIGZsYWdzLAotCQkJWEZTX0RB VEFfRk9SSyk7Ci0JcmV0dXJuIGVycm9yOworCQlyZXR1cm4geGZzX2RpcjJfc2ZfdG9fYmxvY2so JmRhcmdzKTsKKwl9CisKKwlpZiAoU19JU0xOSyhpcC0+aV9kLmRpX21vZGUpKQorCQlyZXR1cm4g eGZzX2JtYXBfbG9jYWxfdG9fZXh0ZW50cyh0cCwgaXAsIGZpcnN0YmxvY2ssIDEsCisJCQkJCQkg ZmxhZ3MsIFhGU19EQVRBX0ZPUkssCisJCQkJCQkgeGZzX3N5bWxpbmtfbG9jYWxfdG9fcmVtb3Rl KTsKKworCXJldHVybiB4ZnNfYm1hcF9sb2NhbF90b19leHRlbnRzKHRwLCBpcCwgZmlyc3RibG9j aywgMSwgZmxhZ3MsCisJCQkJCSBYRlNfREFUQV9GT1JLLAorCQkJCQkgeGZzX2JtYXBfbG9jYWxf dG9fZXh0ZW50c19pbml0X2ZuKTsKIH0KIAogLyoKQEAgLTMyMTksNyArMzI2MSwxMCBAQCB4ZnNf Ym1hcF9sb2NhbF90b19leHRlbnRzKAogCXhmc19mc2Jsb2NrX3QJKmZpcnN0YmxvY2ssCS8qIGZp cnN0IGJsb2NrIGFsbG9jYXRlZCBpbiB4YWN0aW9uICovCiAJeGZzX2V4dGxlbl90CXRvdGFsLAkJ LyogdG90YWwgYmxvY2tzIG5lZWRlZCBieSB0cmFuc2FjdGlvbiAqLwogCWludAkJKmxvZ2ZsYWdz cCwJLyogaW5vZGUgbG9nZ2luZyBmbGFncyAqLwotCWludAkJd2hpY2hmb3JrKQkvKiBkYXRhIG9y IGF0dHIgZm9yayAqLworCWludAkJd2hpY2hmb3JrLAorCXZvaWQJCSgqaW5pdF9mbikoc3RydWN0 IHhmc19idWYgKmJwLAorCQkJCSAgIHN0cnVjdCB4ZnNfaW5vZGUgKmlwLAorCQkJCSAgIHN0cnVj dCB4ZnNfaWZvcmsgKmlmcCkpCiB7CiAJaW50CQllcnJvcjsJCS8qIGVycm9yIHJldHVybiB2YWx1 ZSAqLwogCWludAkJZmxhZ3M7CQkvKiBsb2dnaW5nIGZsYWdzIHJldHVybmVkICovCkBAIC0zMjM5 LDEyICszMjg0LDEyIEBAIHhmc19ibWFwX2xvY2FsX3RvX2V4dGVudHMoCiAJCXhmc19idWZfdAkq YnA7CS8qIGJ1ZmZlciBmb3IgZXh0ZW50IGJsb2NrICovCiAJCXhmc19ibWJ0X3JlY19ob3N0X3Qg KmVwOy8qIGV4dGVudCByZWNvcmQgcG9pbnRlciAqLwogCisJCUFTU0VSVCgoaWZwLT5pZl9mbGFn cyAmCisJCQkoWEZTX0lGSU5MSU5FfFhGU19JRkVYVEVOVFN8WEZTX0lGRVhUSVJFQykpID09IFhG U19JRklOTElORSk7CiAJCW1lbXNldCgmYXJncywgMCwgc2l6ZW9mKGFyZ3MpKTsKIAkJYXJncy50 cCA9IHRwOwogCQlhcmdzLm1wID0gaXAtPmlfbW91bnQ7CiAJCWFyZ3MuZmlyc3RibG9jayA9ICpm aXJzdGJsb2NrOwotCQlBU1NFUlQoKGlmcC0+aWZfZmxhZ3MgJgotCQkJKFhGU19JRklOTElORXxY RlNfSUZFWFRFTlRTfFhGU19JRkVYVElSRUMpKSA9PSBYRlNfSUZJTkxJTkUpOwogCQkvKgogCQkg KiBBbGxvY2F0ZSBhIGJsb2NrLiAgV2Uga25vdyB3ZSBuZWVkIG9ubHkgb25lLCBzaW5jZSB0aGUK IAkJICogZmlsZSBjdXJyZW50bHkgZml0cyBpbiBhbiBpbm9kZS4KQEAgLTMyNTgsMTcgKzMzMDMs MjAgQEAgeGZzX2JtYXBfbG9jYWxfdG9fZXh0ZW50cygKIAkJfQogCQlhcmdzLnRvdGFsID0gdG90 YWw7CiAJCWFyZ3MubWlubGVuID0gYXJncy5tYXhsZW4gPSBhcmdzLnByb2QgPSAxOwotCQlpZiAo KGVycm9yID0geGZzX2FsbG9jX3ZleHRlbnQoJmFyZ3MpKSkKKwkJZXJyb3IgPSB4ZnNfYWxsb2Nf dmV4dGVudCgmYXJncyk7CisJCWlmIChlcnJvcikKIAkJCWdvdG8gZG9uZTsKLQkJLyoKLQkJICog Q2FuJ3QgZmFpbCwgdGhlIHNwYWNlIHdhcyByZXNlcnZlZC4KLQkJICovCisKKwkJLyogQ2FuJ3Qg ZmFpbCwgdGhlIHNwYWNlIHdhcyByZXNlcnZlZC4gKi8KIAkJQVNTRVJUKGFyZ3MuZnNibm8gIT0g TlVMTEZTQkxPQ0spOwogCQlBU1NFUlQoYXJncy5sZW4gPT0gMSk7CiAJCSpmaXJzdGJsb2NrID0g YXJncy5mc2JubzsKIAkJYnAgPSB4ZnNfYnRyZWVfZ2V0X2J1ZmwoYXJncy5tcCwgdHAsIGFyZ3Mu ZnNibm8sIDApOwotCQlicC0+Yl9vcHMgPSAmeGZzX2JtYnRfYnVmX29wczsKLQkJbWVtY3B5KGJw LT5iX2FkZHIsIGlmcC0+aWZfdTEuaWZfZGF0YSwgaWZwLT5pZl9ieXRlcyk7CisKKwkJLyogaW5p dGlhbGlzZSB0aGUgYmxvY2sgYW5kIGNvcHkgdGhlIGRhdGEgKi8KKwkJaW5pdF9mbihicCwgaXAs IGlmcCk7CisKKwkJLyogYWNjb3VudCBmb3IgdGhlIGNoYW5nZSBpbiBmb3JrIHNpemUgYW5kIGxv ZyBldmVyeXRoaW5nICovCiAJCXhmc190cmFuc19sb2dfYnVmKHRwLCBicCwgMCwgaWZwLT5pZl9i eXRlcyAtIDEpOwogCQl4ZnNfYm1hcF9mb3Jrb2ZmX3Jlc2V0KGFyZ3MubXAsIGlwLCB3aGljaGZv cmspOwogCQl4ZnNfaWRhdGFfcmVhbGxvYyhpcCwgLWlmcC0+aWZfYnl0ZXMsIHdoaWNoZm9yayk7 CkBAIC00OTE1LDggKzQ5NjMsMzIgQEAgeGZzX2JtYXBpX3dyaXRlKAogCVhGU19TVEFUU19JTkMo eHNfYmxrX21hcHcpOwogCiAJaWYgKFhGU19JRk9SS19GT1JNQVQoaXAsIHdoaWNoZm9yaykgPT0g WEZTX0RJTk9ERV9GTVRfTE9DQUwpIHsKKwkJLyoKKwkJICogWFhYIChkZ2MpOiBUaGlzIGFzc3Vt ZXMgd2UgYXJlIG9ubHkgY2FsbGVkIGZvciBpbm9kZXMgdGhhdAorCQkgKiBjb250YWluIGNvbnRl bnQgbmV1dHJhbCBkYXRhIGluIGxvY2FsIGZvcm1hdC4gQW55dGhpbmcgdGhhdAorCQkgKiBjb250 YWlucyBjYWxsZXItc3BlY2lmaWMgZGF0YSBpbiBsb2NhbCBmb3JtYXQgdGhhdCBuZWVkcworCQkg KiB0cmFuc2Zvcm1hdGlvbiB0byBtb3ZlIHRvIGEgYmxvY2sgZm9ybWF0IG5lZWRzIHRvIGRvIHRo ZQorCQkgKiBjb252ZXJzaW9uIHRvIGV4dGVudCBmb3JtYXQgaXRzZWxmLgorCQkgKgorCQkgKiBE aXJlY3RvcnkgZGF0YSBmb3JrcyBhbmQgYXR0cmlidXRlIGZvcmtzIGhhbmRsZSB0aGlzCisJCSAq IHRoZW1zZWx2ZXMsIGJ1dCB3aXRoIHRoZSBhZGRpdGlvbiBvZiBtZXRhZGF0YSB2ZXJpZmllcnMg ZXZlcnkKKwkJICogZGF0YSBmb3JrIGluIGxvY2FsIGZvcm1hdCBub3cgY29udGFpbnMgY2FsbGVy IHNwZWNpZmljIGRhdGEKKwkJICogYW5kIGFzIHN1Y2ggY29udmVyc2lvbiB0aHJvdWdoIHRoaXMg ZnVuY3Rpb24gaXMgbGlrZWx5IHRvIGJlCisJCSAqIGJyb2tlbi4KKwkJICoKKwkJICogVGhlIG9u bHkgbGlrZWx5IHVzZXIgb2YgdGhpcyBicmFuY2ggaXMgZm9yIHJlbW90ZSBzeW1saW5rcywKKwkJ ICogYnV0IHdlIGNhbm5vdCBvdmVyd3JpdGUgdGhlIGRhdGEgZm9yayBjb250ZW50cyBvZiB0aGUg c3ltbGluaworCQkgKiAoRUVYSVNUIG9jY3VycyBoaWdoZXIgdXAgdGhlIHN0YWNrKSBhbmQgc28g aXQgd2lsbCBuZXZlciBnbworCQkgKiBmcm9tIGxvY2FsIGZvcm1hdCB0byBleHRlbnQgZm9ybWF0 IGhlcmUuIEhlbmNlIEkgZG9uJ3QgdGhpbmsKKwkJICogdGhpcyBicmFuY2ggaXMgZXZlciBleGVj dXRlZCBpbnRlbnRpb25hbGx5IGFuZCB3ZSBzaG91bGQKKwkJICogY29uc2lkZXIgcmVtb3Zpbmcg aXQgYW5kIGFzc2VydGluZyB0aGF0IHhmc19ibWFwaV93cml0ZSgpCisJCSAqIGNhbm5vdCBiZSBj YWxsZWQgZGlyZWN0bHkgb24gbG9jYWwgZm9ybWF0IGZvcmtzLiBpLmUuIGNhbGxlcnMKKwkJICog YXJlIGNvbXBsZXRlbHkgcmVzcG9uc2libGUgZm9yIGxvY2FsIHRvIGV4dGVudCBmb3JtYXQKKwkJ ICogY29udmVyc2lvbiwgbm90IHhmc19ibWFwaV93cml0ZSgpLgorCQkgKi8KIAkJZXJyb3IgPSB4 ZnNfYm1hcF9sb2NhbF90b19leHRlbnRzKHRwLCBpcCwgZmlyc3RibG9jaywgdG90YWwsCi0JCQkJ CQkgICZibWEubG9nZmxhZ3MsIHdoaWNoZm9yayk7CisJCQkJCSZibWEubG9nZmxhZ3MsIHdoaWNo Zm9yaywKKwkJCQkJeGZzX2JtYXBfbG9jYWxfdG9fZXh0ZW50c19pbml0X2ZuKTsKIAkJaWYgKGVy cm9yKQogCQkJZ290byBlcnJvcjA7CiAJfQoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX18KeGZzIG1haWxpbmcgbGlzdAp4ZnNAb3NzLnNnaS5jb20KaHR0cDov L29zcy5zZ2kuY29tL21haWxtYW4vbGlzdGluZm8veGZzCg==