From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p612Ms1t017511 for ; Thu, 30 Jun 2011 21:22:55 -0500 Received: from ipmail05.adl6.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 2615614FB70F for ; Thu, 30 Jun 2011 19:22:51 -0700 (PDT) Received: from ipmail05.adl6.internode.on.net (ipmail05.adl6.internode.on.net [150.101.137.143]) by cuda.sgi.com with ESMTP id HfwDbHtEu9z5tNPl for ; Thu, 30 Jun 2011 19:22:51 -0700 (PDT) Date: Fri, 1 Jul 2011 12:22:48 +1000 From: Dave Chinner Subject: Re: [PATCH 03/27] xfs: use write_cache_pages for writeback clustering Message-ID: <20110701022248.GM561@dastard> References: <20110629140109.003209430@bombadil.infradead.org> <20110629140336.950805096@bombadil.infradead.org> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20110629140336.950805096@bombadil.infradead.org> 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: Christoph Hellwig Cc: xfs@oss.sgi.com T24gV2VkLCBKdW4gMjksIDIwMTEgYXQgMTA6MDE6MTJBTSAtMDQwMCwgQ2hyaXN0b3BoIEhlbGx3 aWcgd3JvdGU6Cj4gSW5zdGVhZCBvZiBpbXBsZW1lbnRpbmcgb3VyIG93biB3cml0ZWJhY2sgY2x1 c3RlcmluZyB1c2Ugd3JpdGVfY2FjaGVfcGFnZXMKPiB0byBkbyBpdCBmb3IgdXMuICBUaGlzIG1l YW5zIHRoZSBndXRzIG9mIHRoZSBjdXJyZW50IHdyaXRlcGFnZSBpbXBsZW1lbnRhdGlvbgo+IGJl Y29tZSBhIG5ldyBoZWxwZXIgdXNlZCBib3RoIGZvciBpbXBsZW1lbnRpbmcgLT53cml0ZXBhZ2Ug YW5kIGFzIGEgY2FsbGJhY2sKPiB0byB3cml0ZV9jYWNoZV9wYWdlcyBmb3IgLT53cml0ZXBhZ2Vz LiAgQSBuZXcgc3RydWN0IHhmc193cml0ZWJhY2tfY3R4Cj4gaXMgdXNlZCB0byB0cmFjayBibG9j ayBtYXBwaW5nIHN0YXRlIGFuZCB0aGUgaW9lbmQgY2hhaW4gb3ZlciBtdWx0aXBsZQo+IGludm9j YXRpb24gb2YgaXQuCj4gCj4gVGhlIGFkdmFudGFnZSBvdmVyIHRoZSBvbGQgY29kZSBpcyB0aGF0 IHdlIGF2b2lkIGEgZG91YmxlIHBhZ2V2ZWMgbG9va3VwLAo+IGFuZCBhIG1vcmUgZWZmaWNpZW50 IGhhbmRsaW5nIG9mIGV4dGVudCBib3VuZGFyaWVzIGluc2lkZSBhIHBhZ2UgZm9yCj4gc21hbGwg YmxvY2tzaXplIGZpbGVzeXN0ZW1zLCBhcyB3ZWxsIGFzIGhhdmluZyBsZXNzIFhGUyBzcGVjaWZp YyBjb2RlLgoKSXQncyBub3QgbW9yZSBlZmZpY2llbnQgcmlnaHQgbm93LCBkdWUgdG8gYSBsaXR0 bGUgYnVnOgoKPiBAQCAtOTczLDM2ICs4MjEsMzggQEAgeGZzX3ZtX3dyaXRlcGFnZSgKPiAgCQkg KiBidWZmZXJzIGNvdmVyaW5nIGhvbGVzIGhlcmUuCj4gIAkJICovCj4gIAkJaWYgKCFidWZmZXJf bWFwcGVkKGJoKSAmJiBidWZmZXJfdXB0b2RhdGUoYmgpKSB7Cj4gLQkJCWltYXBfdmFsaWQgPSAw Owo+ICsJCQljdHgtPmltYXBfdmFsaWQgPSAwOwo+ICAJCQljb250aW51ZTsKPiAgCQl9Cj4gIAo+ ICAJCWlmIChidWZmZXJfdW53cml0dGVuKGJoKSkgewo+ICAJCQlpZiAodHlwZSAhPSBJT19VTldS SVRURU4pIHsKPiAgCQkJCXR5cGUgPSBJT19VTldSSVRURU47Cj4gLQkJCQlpbWFwX3ZhbGlkID0g MDsKPiArCQkJCWN0eC0+aW1hcF92YWxpZCA9IDA7Cj4gIAkJCX0KPiAgCQl9IGVsc2UgaWYgKGJ1 ZmZlcl9kZWxheShiaCkpIHsKPiAgCQkJaWYgKHR5cGUgIT0gSU9fREVMQUxMT0MpIHsKPiAgCQkJ CXR5cGUgPSBJT19ERUxBTExPQzsKPiAtCQkJCWltYXBfdmFsaWQgPSAwOwo+ICsJCQkJY3R4LT5p bWFwX3ZhbGlkID0gMDsKPiAgCQkJfQo+ICAJCX0gZWxzZSBpZiAoYnVmZmVyX3VwdG9kYXRlKGJo KSkgewo+ICAJCQlpZiAodHlwZSAhPSBJT19PVkVSV1JJVEUpIHsKPiAgCQkJCXR5cGUgPSBJT19P VkVSV1JJVEU7Cj4gLQkJCQlpbWFwX3ZhbGlkID0gMDsKPiArCQkJCWN0eC0+aW1hcF92YWxpZCA9 IDA7Cj4gIAkJCX0KPiAgCQl9IGVsc2Ugewo+ICAJCQlpZiAoUGFnZVVwdG9kYXRlKHBhZ2UpKSB7 Cj4gIAkJCQlBU1NFUlQoYnVmZmVyX21hcHBlZChiaCkpOwo+IC0JCQkJaW1hcF92YWxpZCA9IDA7 Cj4gKwkJCQljdHgtPmltYXBfdmFsaWQgPSAwOwo+ICAJCQl9Cj4gIAkJCWNvbnRpbnVlOwo+ICAJ CX0KClRoaXMgcGllY2Ugb2YgbG9naWMgY2hlY2tzIGlzIHRoZSB0eXBlIG9mIGJ1ZmZlciBoYXMg Y2hhbmdlZCBmcm9tIHRoZQpwcmV2aW91cyBidWZmZXIuIFRoaXMgdXNlZCB0byB3b3JrIGp1c3Qg ZmluZSwgYnV0IG5vdyAidHlwZSIgaXMKbG9jYWwgdG8gdGhlIF9feGZzX3ZtX3dyaXRlcGFnZSgp IGZ1bmN0aW9uLCB3aGlsZSB0aGUgaW1hcCBsaWZlCnNwYW7RlSBtdWx0aXBsZSBjYWxscyB0byB0 aGUgX194ZnNfdm1fd3JpdGVwYWdlKCkgZnVuY3Rpb24uIEhlbmNlCnR5cGUgaXMgcmVpbml0aWFs aXNlZCB0byBJT19PVkVSV1JJVEUgb24gZXZlcnkgcGFnZSB0aGF0IHdyaXR0ZW4sCmFuZCBzbyBm b3IgZGVsYWxsb2Mgd2UgYXJlIGludmFsaWRhdGluZyB0aGUgaW1hcCBhbmQgbG9va2luZyBpdCB1 cAphZ2FpbiBvbiBldmVyeSBwYWdlLiBUcmFjZXMgc2hvdyB0aGlzIHNvcnQgb2YgYmVoYXZpb3Vy OgoKICAgICAgICAgICA8Li4uPi01MTQgICBbMDAwXSA2ODk2NDAuODgxOTUzOiB4ZnNfd3JpdGVw YWdlOiAgICAgICAgZGV2IDI1MzoxNiBpbm8gMHg1NTIyNDggcGdvZmYgMHhmNzAwMCBzaXplIDB4 YTAwMDAwIG9mZnNldCAwIGRlbGFsbG9jIDEgdW53cml0dGVuIDAKICAgICAgICAgICA8Li4uPi01 MTQgICBbMDAwXSA2ODk2NDAuODgxOTU0OiB4ZnNfaWxvY2s6ICAgICAgICAgICAgZGV2IDI1Mzox NiBpbm8gMHg1NTIyNDggZmxhZ3MgSUxPQ0tfU0hBUkVEIGNhbGxlciB4ZnNfbWFwX2Jsb2Nrcwog ICAgICAgICAgIDwuLi4+LTUxNCAgIFswMDBdIDY4OTY0MC44ODE5NTQ6IHhmc19pdW5sb2NrOiAg ICAgICAgICBkZXYgMjUzOjE2IGlubyAweDU1MjI0OCBmbGFncyBJTE9DS19TSEFSRUQgY2FsbGVy IHhmc19tYXBfYmxvY2tzCiAgICAgICAgICAgPC4uLj4tNTE0ICAgWzAwMF0gNjg5NjQwLjg4MTk1 NDogeGZzX21hcF9ibG9ja3NfZm91bmQ6IGRldiAyNTM6MTYgaW5vIDB4NTUyMjQ4IHNpemUgMHgw IG5ld19zaXplIDB4MCBvZmZzZXQgMHhmNzAwMCBjb3VudCAxMDI0IHR5cGUgIHN0YXJ0b2ZmIDB4 MCBzdGFydGJsb2NrIDYyOTc2MDkgYmxvY2tjb3VudCAweDI4MDAKICAgICAgICAgICA8Li4uPi01 MTQgICBbMDAwXSA2ODk2NDAuODgxOTU2OiB4ZnNfd3JpdGVwYWdlOiAgICAgICAgZGV2IDI1Mzox NiBpbm8gMHg1NTIyNDggcGdvZmYgMHhmODAwMCBzaXplIDB4YTAwMDAwIG9mZnNldCAwIGRlbGFs bG9jIDEgdW53cml0dGVuIDAKICAgICAgICAgICA8Li4uPi01MTQgICBbMDAwXSA2ODk2NDAuODgx OTU3OiB4ZnNfaWxvY2s6ICAgICAgICAgICAgZGV2IDI1MzoxNiBpbm8gMHg1NTIyNDggZmxhZ3Mg SUxPQ0tfU0hBUkVEIGNhbGxlciB4ZnNfbWFwX2Jsb2NrcwogICAgICAgICAgIDwuLi4+LTUxNCAg IFswMDBdIDY4OTY0MC44ODE5NTc6IHhmc19pdW5sb2NrOiAgICAgICAgICBkZXYgMjUzOjE2IGlu byAweDU1MjI0OCBmbGFncyBJTE9DS19TSEFSRUQgY2FsbGVyIHhmc19tYXBfYmxvY2tzCiAgICAg ICAgICAgPC4uLj4tNTE0ICAgWzAwMF0gNjg5NjQwLjg4MTk1NzogeGZzX21hcF9ibG9ja3NfZm91 bmQ6IGRldiAyNTM6MTYgaW5vIDB4NTUyMjQ4IHNpemUgMHgwIG5ld19zaXplIDB4MCBvZmZzZXQg MHhmODAwMCBjb3VudCAxMDI0IHR5cGUgIHN0YXJ0b2ZmIDB4MCBzdGFydGJsb2NrIDYyOTc2MDkg YmxvY2tjb3VudCAweDI4MDAKICAgICAgICAgICA8Li4uPi01MTQgICBbMDAwXSA2ODk2NDAuODgx OTYwOiB4ZnNfd3JpdGVwYWdlOiAgICAgICAgZGV2IDI1MzoxNiBpbm8gMHg1NTIyNDggcGdvZmYg MHhmOTAwMCBzaXplIDB4YTAwMDAwIG9mZnNldCAwIGRlbGFsbG9jIDEgdW53cml0dGVuIDAKICAg ICAgICAgICA8Li4uPi01MTQgICBbMDAwXSA2ODk2NDAuODgxOTYwOiB4ZnNfaWxvY2s6ICAgICAg ICAgICAgZGV2IDI1MzoxNiBpbm8gMHg1NTIyNDggZmxhZ3MgSUxPQ0tfU0hBUkVEIGNhbGxlciB4 ZnNfbWFwX2Jsb2NrcwogICAgICAgICAgIDwuLi4+LTUxNCAgIFswMDBdIDY4OTY0MC44ODE5NjE6 IHhmc19pdW5sb2NrOiAgICAgICAgICBkZXYgMjUzOjE2IGlubyAweDU1MjI0OCBmbGFncyBJTE9D S19TSEFSRUQgY2FsbGVyIHhmc19tYXBfYmxvY2tzCiAgICAgICAgICAgPC4uLj4tNTE0ICAgWzAw MF0gNjg5NjQwLjg4MTk2MTogeGZzX21hcF9ibG9ja3NfZm91bmQ6IGRldiAyNTM6MTYgaW5vIDB4 NTUyMjQ4IHNpemUgMHgwIG5ld19zaXplIDB4MCBvZmZzZXQgMHhmOTAwMCBjb3VudCAxMDI0IHR5 cGUgIHN0YXJ0b2ZmIDB4MCBzdGFydGJsb2NrIDYyOTc2MDkgYmxvY2tjb3VudCAweDI4MDAKCklP V3MsIHRoZSB0eXBlIGZpZWxkIGFsc28gbmVlZHMgdG8gYmUgbW92ZWQgaW50byB0aGUgd3JpdGVw YWdlCmNvbnRleHQgc3RydWN0dXJlIHNvIHRoYXQgd2UgZG9uJ3Qga2VlcCBkb2luZyBuZWVkbGVz cyBleHRlbnQgbWFwCmxvb2t1cHMuCgpXaXRoIHRoZSBmb2xsb3dpbmcgcGF0Y2gsIHRoZSB0cmFj ZSBvdXRwdXQgbm93IGxvb2tzIGxpa2UgdGhpcyBmb3IKZGVsYWxsb2Mgd3JpdGViYWNrOgoKICAg ICAgICAgICA8Li4uPi0xMjYyMyBbMDAwXSA2OTQwOTMuNTk0ODgzOiB4ZnNfd3JpdGVwYWdlOiAg ICAgICAgZGV2IDI1MzoxNiBpbm8gMHgyMzAwYTUgcGdvZmYgMHg1MDUwMDAgc2l6ZSAweGEwMDAw MCBvZmZzZXQgMCBkZWxhbGxvYyAxIHVud3JpdHRlbiAwCiAgICAgICAgICAgPC4uLj4tMTI2MjMg WzAwMF0gNjk0MDkzLjU5NDg4NDogeGZzX3dyaXRlcGFnZTogICAgICAgIGRldiAyNTM6MTYgaW5v IDB4MjMwMGE1IHBnb2ZmIDB4NTA2MDAwIHNpemUgMHhhMDAwMDAgb2Zmc2V0IDAgZGVsYWxsb2Mg MSB1bndyaXR0ZW4gMAogICAgICAgICAgIDwuLi4+LTEyNjIzIFswMDBdIDY5NDA5My41OTQ4ODQ6 IHhmc193cml0ZXBhZ2U6ICAgICAgICBkZXYgMjUzOjE2IGlubyAweDIzMDBhNSBwZ29mZiAweDUw NzAwMCBzaXplIDB4YTAwMDAwIG9mZnNldCAwIGRlbGFsbG9jIDEgdW53cml0dGVuIDAKICAgICAg ICAgICA8Li4uPi0xMjYyMyBbMDAwXSA2OTQwOTMuNTk0ODg1OiB4ZnNfd3JpdGVwYWdlOiAgICAg ICAgZGV2IDI1MzoxNiBpbm8gMHgyMzAwYTUgcGdvZmYgMHg1MDgwMDAgc2l6ZSAweGEwMDAwMCBv ZmZzZXQgMCBkZWxhbGxvYyAxIHVud3JpdHRlbiAwCiAgICAgICAgICAgPC4uLj4tMTI2MjMgWzAw MF0gNjk0MDkzLjU5NDg4NTogeGZzX3dyaXRlcGFnZTogICAgICAgIGRldiAyNTM6MTYgaW5vIDB4 MjMwMGE1IHBnb2ZmIDB4NTA5MDAwIHNpemUgMHhhMDAwMDAgb2Zmc2V0IDAgZGVsYWxsb2MgMSB1 bndyaXR0ZW4gMAogICAgICAgICAgIDwuLi4+LTEyNjIzIFswMDBdIDY5NDA5My41OTQ4ODY6IHhm c193cml0ZXBhZ2U6ICAgICAgICBkZXYgMjUzOjE2IGlubyAweDIzMDBhNSBwZ29mZiAweDUwYTAw MCBzaXplIDB4YTAwMDAwIG9mZnNldCAwIGRlbGFsbG9jIDEgdW53cml0dGVuIDAKICAgICAgICAg ICA8Li4uPi0xMjYyMyBbMDAwXSA2OTQwOTMuNTk0ODg3OiB4ZnNfd3JpdGVwYWdlOiAgICAgICAg ZGV2IDI1MzoxNiBpbm8gMHgyMzAwYTUgcGdvZmYgMHg1MGIwMDAgc2l6ZSAweGEwMDAwMCBvZmZz ZXQgMCBkZWxhbGxvYyAxIHVud3JpdHRlbiAwCiAgICAgICAgICAgPC4uLj4tMTI2MjMgWzAwMF0g Njk0MDkzLjU5NDg4ODogeGZzX3dyaXRlcGFnZTogICAgICAgIGRldiAyNTM6MTYgaW5vIDB4MjMw MGE1IHBnb2ZmIDB4NTBjMDAwIHNpemUgMHhhMDAwMDAgb2Zmc2V0IDAgZGVsYWxsb2MgMSB1bndy aXR0ZW4gMAoKCmkuZS4gdGhlcmUgbWFwcGluZyBsb29rdXAgaXMgbm8gbG9uZ2VyIG9jY3Vycmlu ZyBmb3IgZXZlcnkgcGFnZS4KCkFzIGEgc2lkZSBlZmZlY3QsIHRoZSBmYWlsdXJlIGNhc2UgSSdt IHNlZWluZyB3aXRoIHRlc3QgMTgwIGhhcyBnb25lCmZyb20gNS0xMCBmaWxlcyB3aXRoIHRoZSB3 cm9uZyBzaXplIHRvID4yMDAgZmlsZXMgd2l0aCB0aGUgd3JvbmcKc2l6ZSB3aXRoIHRoaXMgcGF0 Y2gsIHNvIGNsZWFybHkgdGhlcmUgaXMgc29tZXRoaW5nIHdyb25nIHdpdGggZmlsZQpzaXplIHVw ZGF0ZXMgZ2V0dGluZyB0byBkaXNrIHRoYXQgdGhpcyBwYXRjaCBzZXQgbWFrZXMgd29yc2UuCgpD aGVlcnMsCgpEYXZlLgotLSAKRGF2ZSBDaGlubmVyCmRhdmlkQGZyb21vcmJpdC5jb20KCnhmczog aW8gdHlwZSBuZWVkcyB0byBiZSBwYXJ0IG9mIHRoZSB3cml0ZXBhZ2UgY29udGV4dAoKRnJvbTog RGF2ZSBDaGlubmVyIDxkY2hpbm5lckByZWRoYXQuY29tPgoKSWYgd2UgZG9uJ3QgcGFzcyB0aGUg SU8gdHlwZSB3ZSBhcmUgbWFwcGluZyB3aXRoIHRoZSB3cml0ZWFnZQpjb250ZXh0LCB0aGVuIHRo ZSBpbWFwIGlzIHJlY2FsY3VsYXRlZCBvbiBldmVyeSBkZWxhbGxvYyBwYWdlIHRoYXQKaXMgcGFz c2VkIHRvIF94ZnNfdm1fd3JpdGVwYWdlKCkuIFRoaXMgZGVmZWF0cyB0aGUgcHVycG9zZSBvZiBo YXZpbmcKYSBjYWNoZWQgaW1hcCBiZXR3ZWVuIGNhbGxzIGFuZCBpbmNyZWFzZXMgdGhlIG92ZXJo ZWFkIG9mIGRlbGFsbG9jCndyaXRlYmFjayBzaWduaWZpY2FudGx5LgoKRml4IHRoaXMgYnkgbW92 aW5nIHRoZSBpbyB0eXBlIGludG8gdGhlIHdyaXRlcGFnZSBjb250ZXh0IHN0cnVjdHVyZQpzbyB0 aGF0IGl0IG1vdmVzIHdpdGggdGhlIGNhY2hlZCBpbWFwIHRocm91Z2ggdGhlIHN0YWNrLgoKU2ln bmVkLW9mZi1ieTogRGF2ZSBDaGlubmVyIDxkY2hpbm5lckByZWRoYXQuY29tPgotLS0KIGZzL3hm cy9saW51eC0yLjYveGZzX2FvcHMuYyB8ICAgMzAgKysrKysrKysrKysrKysrKysrLS0tLS0tLS0t LS0tCiAxIGZpbGVzIGNoYW5nZWQsIDE4IGluc2VydGlvbnMoKyksIDEyIGRlbGV0aW9ucygtKQoK ZGlmZiAtLWdpdCBhL2ZzL3hmcy9saW51eC0yLjYveGZzX2FvcHMuYyBiL2ZzL3hmcy9saW51eC0y LjYveGZzX2FvcHMuYwppbmRleCA3M2RhYzRiLi4yNWI2M2NkIDEwMDY0NAotLS0gYS9mcy94ZnMv bGludXgtMi42L3hmc19hb3BzLmMKKysrIGIvZnMveGZzL2xpbnV4LTIuNi94ZnNfYW9wcy5jCkBA IC00MCw2ICs0MCw3IEBACiAKIHN0cnVjdCB4ZnNfd3JpdGViYWNrX2N0eCB7CiAJdW5zaWduZWQg aW50CQlpbWFwX3ZhbGlkOworCXVuc2lnbmVkIGludAkJaW9fdHlwZTsKIAlzdHJ1Y3QgeGZzX2Jt YnRfaXJlYwlpbWFwOwogCXN0cnVjdCB4ZnNfaW9lbmQJKmlvaGVhZDsKIAlzdHJ1Y3QgeGZzX2lv ZW5kCSppb2VuZDsKQEAgLTgwNCw3ICs4MDUsNiBAQCBfX3hmc192bV93cml0ZXBhZ2UoCiAKIAli aCA9IGhlYWQgPSBwYWdlX2J1ZmZlcnMocGFnZSk7CiAJb2Zmc2V0ID0gcGFnZV9vZmZzZXQocGFn ZSk7Ci0JdHlwZSA9IElPX09WRVJXUklURTsKIAogCWRvIHsKIAkJaW50IG5ld19pb2VuZCA9IDA7 CkBAIC04MjYsMTggKzgyNiwxOCBAQCBfX3hmc192bV93cml0ZXBhZ2UoCiAJCX0KIAogCQlpZiAo YnVmZmVyX3Vud3JpdHRlbihiaCkpIHsKLQkJCWlmICh0eXBlICE9IElPX1VOV1JJVFRFTikgewot CQkJCXR5cGUgPSBJT19VTldSSVRURU47CisJCQlpZiAoY3R4LT5pb190eXBlICE9IElPX1VOV1JJ VFRFTikgeworCQkJCWN0eC0+aW9fdHlwZSA9IElPX1VOV1JJVFRFTjsKIAkJCQljdHgtPmltYXBf dmFsaWQgPSAwOwogCQkJfQogCQl9IGVsc2UgaWYgKGJ1ZmZlcl9kZWxheShiaCkpIHsKLQkJCWlm ICh0eXBlICE9IElPX0RFTEFMTE9DKSB7Ci0JCQkJdHlwZSA9IElPX0RFTEFMTE9DOworCQkJaWYg KGN0eC0+aW9fdHlwZSAhPSBJT19ERUxBTExPQykgeworCQkJCWN0eC0+aW9fdHlwZSA9IElPX0RF TEFMTE9DOwogCQkJCWN0eC0+aW1hcF92YWxpZCA9IDA7CiAJCQl9CiAJCX0gZWxzZSBpZiAoYnVm ZmVyX3VwdG9kYXRlKGJoKSkgewotCQkJaWYgKHR5cGUgIT0gSU9fT1ZFUldSSVRFKSB7Ci0JCQkJ dHlwZSA9IElPX09WRVJXUklURTsKKwkJCWlmIChjdHgtPmlvX3R5cGUgIT0gSU9fT1ZFUldSSVRF KSB7CisJCQkJY3R4LT5pb190eXBlID0gSU9fT1ZFUldSSVRFOwogCQkJCWN0eC0+aW1hcF92YWxp ZCA9IDA7CiAJCQl9CiAJCX0gZWxzZSB7CkBAIC04NjIsNyArODYyLDggQEAgX194ZnNfdm1fd3Jp dGVwYWdlKAogCQkJICogdGltZS4KIAkJCSAqLwogCQkJbmV3X2lvZW5kID0gMTsKLQkJCWVyciA9 IHhmc19tYXBfYmxvY2tzKGlub2RlLCBvZmZzZXQsICZjdHgtPmltYXAsIHR5cGUpOworCQkJZXJy ID0geGZzX21hcF9ibG9ja3MoaW5vZGUsIG9mZnNldCwgJmN0eC0+aW1hcCwKKwkJCQkJICAgICBj dHgtPmlvX3R5cGUpOwogCQkJaWYgKGVycikKIAkJCQlnb3RvIGVycm9yOwogCQkJY3R4LT5pbWFw X3ZhbGlkID0KQEAgLTg3MCwxMSArODcxLDEyIEBAIF9feGZzX3ZtX3dyaXRlcGFnZSgKIAkJfQog CQlpZiAoY3R4LT5pbWFwX3ZhbGlkKSB7CiAJCQlsb2NrX2J1ZmZlcihiaCk7Ci0JCQlpZiAodHlw ZSAhPSBJT19PVkVSV1JJVEUpIHsKKwkJCWlmIChjdHgtPmlvX3R5cGUgIT0gSU9fT1ZFUldSSVRF KSB7CiAJCQkJeGZzX21hcF9hdF9vZmZzZXQoaW5vZGUsIGJoLCAmY3R4LT5pbWFwLAogCQkJCQkJ ICBvZmZzZXQpOwogCQkJfQotCQkJeGZzX2FkZF90b19pb2VuZChjdHgsIGlub2RlLCBiaCwgb2Zm c2V0LCB0eXBlLCBuZXdfaW9lbmQpOworCQkJeGZzX2FkZF90b19pb2VuZChjdHgsIGlub2RlLCBi aCwgb2Zmc2V0LCBjdHgtPmlvX3R5cGUsCisJCQkJCSBuZXdfaW9lbmQpOwogCQkJY291bnQrKzsK IAkJfQogCX0gd2hpbGUgKG9mZnNldCArPSBsZW4sICgoYmggPSBiaC0+Yl90aGlzX3BhZ2UpICE9 IGhlYWQpKTsKQEAgLTkwMiw3ICs5MDQsOSBAQCB4ZnNfdm1fd3JpdGVwYWdlKAogCXN0cnVjdCBw YWdlCQkqcGFnZSwKIAlzdHJ1Y3Qgd3JpdGViYWNrX2NvbnRyb2wgKndiYykKIHsKLQlzdHJ1Y3Qg eGZzX3dyaXRlYmFja19jdHggY3R4ID0geyB9OworCXN0cnVjdCB4ZnNfd3JpdGViYWNrX2N0eCBj dHggPSB7CisJCS5pb190eXBlID0gSU9fT1ZFUldSSVRFLAorCX07CiAJaW50IHJldDsKIAogCS8q CkBAIC05MzksNyArOTQzLDkgQEAgeGZzX3ZtX3dyaXRlcGFnZXMoCiAJc3RydWN0IGFkZHJlc3Nf c3BhY2UJKm1hcHBpbmcsCiAJc3RydWN0IHdyaXRlYmFja19jb250cm9sICp3YmMpCiB7Ci0Jc3Ry dWN0IHhmc193cml0ZWJhY2tfY3R4IGN0eCA9IHsgfTsKKwlzdHJ1Y3QgeGZzX3dyaXRlYmFja19j dHggY3R4ID0geworCQkuaW9fdHlwZSA9IElPX09WRVJXUklURSwKKwl9OwogCWludCByZXQ7CiAK IAl4ZnNfaWZsYWdzX2NsZWFyKFhGU19JKG1hcHBpbmctPmhvc3QpLCBYRlNfSVRSVU5DQVRFRCk7 CgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwp4ZnMgbWFp bGluZyBsaXN0Cnhmc0Bvc3Muc2dpLmNvbQpodHRwOi8vb3NzLnNnaS5jb20vbWFpbG1hbi9saXN0 aW5mby94ZnMK