From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chao Yu Subject: Re: [PATCH v3] f2fs: introduce a method to make nat journal more fresh Date: Fri, 16 Mar 2018 17:46:32 +0800 Message-ID: References: <1521009209-3956-1-git-send-email-heyunlei@huawei.com> <42B685BFA705F94C860C6DD0752F056548355634@DGGEMA503-MBS.china.huawei.com> Mime-Version: 1.0 Content-Type: text/plain; charset="gbk" Content-Transfer-Encoding: base64 Return-path: Received: from [172.30.20.202] (helo=mx.sourceforge.net) by sfs-ml-4.v29.lw.sourceforge.com with esmtps (TLSv1.2:ECDHE-RSA-AES256-GCM-SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ewlwm-00019l-WF for linux-f2fs-devel@lists.sourceforge.net; Fri, 16 Mar 2018 09:46:49 +0000 Received: from sfi-lb-mx.v20.lw.sourceforge.com ([172.30.20.201] helo=huawei.com) by sfi-mx-4.v28.lw.sourceforge.com with esmtps (TLSv1.2:ECDHE-RSA-AES256-GCM-SHA384:256) (Exim 4.90_1) id 1ewlwi-000x58-3K for linux-f2fs-devel@lists.sourceforge.net; Fri, 16 Mar 2018 09:46:48 +0000 In-Reply-To: <42B685BFA705F94C860C6DD0752F056548355634@DGGEMA503-MBS.china.huawei.com> Content-Language: en-US List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: linux-f2fs-devel-bounces@lists.sourceforge.net To: heyunlei , "jaegeuk@kernel.org" , "linux-f2fs-devel@lists.sourceforge.net" Cc: "Zhangdianfang (Euler)" T24gMjAxOC8zLzE2IDE3OjE0LCBoZXl1bmxlaSB3cm90ZToKPiAKPiAKPj4gLS0tLS1PcmlnaW5h bCBNZXNzYWdlLS0tLS0KPj4gRnJvbTogWXVjaGFvIChUKQo+PiBTZW50OiBGcmlkYXksIE1hcmNo IDE2LCAyMDE4IDQ6NDkgUE0KPj4gVG86IGhleXVubGVpOyBqYWVnZXVrQGtlcm5lbC5vcmc7IGxp bnV4LWYyZnMtZGV2ZWxAbGlzdHMuc291cmNlZm9yZ2UubmV0Cj4+IENjOiBXYW5nYmludGlhbjsg WmhhbmdkaWFuZmFuZyAoRXVsZXIpCj4+IFN1YmplY3Q6IFJlOiBbZjJmcy1kZXZdW1BBVENIIHYz XSBmMmZzOiBpbnRyb2R1Y2UgYSBtZXRob2QgdG8gbWFrZSBuYXQgam91cm5hbCBtb3JlIGZyZXNo Cj4+Cj4+Cj4+Cj4+IE9uIDIwMTgvMy8xNCAxNDozMywgWXVubGVpIEhlIHdyb3RlOgo+Pj4gVGhp cyBwYXRjaCBpbnRyb2R1Y2UgYSBtZXRob2QgdG8gbWFrZSBuYXQgam91cm5hbCBtb3JlIGZyZXNo Ogo+Pj4gaS4gIHNvcnQgc2V0IGxpc3QgdXNpbmcgZGlydHkgZW50cnkgbnVtYmVyIGFuZCBjcCB2 ZXJzaW9uCj4+PiAgICAgYXZlcmFnZSB2YWx1ZS4KPj4+IGlpLiBpZiBtZWV0IHdpdGggY2FjaGUg aGl0LCB1cGRhdGUgYXZlcmFnZSB2ZXJzaW9uIHZhbHVzIHdpdGgKPj4+ICAgICBjdXJyZW50IGNw IHZlcnNpb24uCj4+Pgo+Pj4gV2l0aCB0aGlzIHBhdGNoLCBuZXdseSBtb2RpZmllZCBuYXQgc2V0 IHdpbGwgZmx1c2ggdG8gam91cm5hbCwKPj4+IGFuZCBmbHVzaCBvbGQgbmF0IHNldCB3aXRoIHNh bWUgZGlydHkgZW50cnkgbnVtYmVyIHRvIG5hdCBhcmVhLgo+Pj4KPj4+IFNpZ25lZC1vZmYtYnk6 IFl1bmxlaSBIZSA8aGV5dW5sZWlAaHVhd2VpLmNvbT4KPj4+IC0tLQo+Pj4gIGZzL2YyZnMvbm9k ZS5jIHwgNDUgKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0tCj4+ PiAgZnMvZjJmcy9ub2RlLmggfCAgNCArKystCj4+PiAgMiBmaWxlcyBjaGFuZ2VkLCAyOSBpbnNl cnRpb25zKCspLCAyMCBkZWxldGlvbnMoLSkKPj4+Cj4+PiBkaWZmIC0tZ2l0IGEvZnMvZjJmcy9u b2RlLmMgYi9mcy9mMmZzL25vZGUuYwo+Pj4gaW5kZXggMTc3YzQzOC4uNzRmNjA3OSAxMDA2NDQK Pj4+IC0tLSBhL2ZzL2YyZnMvbm9kZS5jCj4+PiArKysgYi9mcy9mMmZzL25vZGUuYwo+Pj4gQEAg LTE5Myw4ICsxOTMsOCBAQCBzdGF0aWMgdm9pZCBfX2RlbF9mcm9tX25hdF9jYWNoZShzdHJ1Y3Qg ZjJmc19ubV9pbmZvICpubV9pLCBzdHJ1Y3QgbmF0X2VudHJ5ICplKQo+Pj4gIAlfX2ZyZWVfbmF0 X2VudHJ5KGUpOwo+Pj4gIH0KPj4+Cj4+PiAtc3RhdGljIHZvaWQgX19zZXRfbmF0X2NhY2hlX2Rp cnR5KHN0cnVjdCBmMmZzX25tX2luZm8gKm5tX2ksCj4+PiAtCQkJCQkJc3RydWN0IG5hdF9lbnRy eSAqbmUpCj4+PiArc3RhdGljIHZvaWQgX19zZXRfbmF0X2NhY2hlX2RpcnR5KHN0cnVjdCBmMmZz X3NiX2luZm8gKnNiaSwgYm9vbCByZW1vdmVfam91cm5hbCwKPj4+ICsJCQlzdHJ1Y3QgZjJmc19u bV9pbmZvICpubV9pLCBzdHJ1Y3QgbmF0X2VudHJ5ICpuZSkKPj4+ICB7Cj4+PiAgCW5pZF90IHNl dCA9IE5BVF9CTE9DS19PRkZTRVQobmUtPm5pLm5pZCk7Cj4+PiAgCXN0cnVjdCBuYXRfZW50cnlf c2V0ICpoZWFkOwo+Pj4gQEAgLTIwNyw5ICsyMDcsMTUgQEAgc3RhdGljIHZvaWQgX19zZXRfbmF0 X2NhY2hlX2RpcnR5KHN0cnVjdCBmMmZzX25tX2luZm8gKm5tX2ksCj4+PiAgCQlJTklUX0xJU1Rf SEVBRCgmaGVhZC0+c2V0X2xpc3QpOwo+Pj4gIAkJaGVhZC0+c2V0ID0gc2V0Owo+Pj4gIAkJaGVh ZC0+ZW50cnlfY250ID0gMDsKPj4+ICsJCWhlYWQtPmNwX3ZlciA9IDA7Cj4+PiAgCQlmMmZzX3Jh ZGl4X3RyZWVfaW5zZXJ0KCZubV9pLT5uYXRfc2V0X3Jvb3QsIHNldCwgaGVhZCk7Cj4+PiAgCX0K Pj4+Cj4+PiArCS8qIGpvdXJuYWwgaGl0IGNhc2UsIHRyeSB0byBsb2NhdGUgc2V0IGluIGpvdXJu YWwgKi8KPj4+ICsJaWYgKCFyZW1vdmVfam91cm5hbCAmJiBoZWFkLT5lbnRyeV9jbnQgPD0gTkFU X0pPVVJOQUxfRU5UUklFUykKPj4+ICsJCWhlYWQtPmNwX3ZlciArPSBkaXZfdTY0KGN1cl9jcF92 ZXJzaW9uKEYyRlNfQ0tQVChzYmkpKSwKPj4+ICsJCQkJCQkJTkFUX0pPVVJOQUxfRU5UUklFUyk7 Cj4+PiArCj4+PiAgCWlmIChnZXRfbmF0X2ZsYWcobmUsIElTX0RJUlRZKSkKPj4+ICAJCWdvdG8g cmVmcmVzaF9saXN0Owo+Pgo+PiAJZWxzZSB7Cj4+IAkJdXBkYXRlIGhlYWQgdmVyc2lvbiBoZXJl Pwo+PiAJfQo+IAo+IE9rYXksIGlmIG9uZSBuYXQgZW50cnkgdXBkYXRlIG1vcmUgdGhhbiBvbmNl LCBoZXJlIHdpbGwgYmUgb3ZlcmZsb3cuCj4gCj4+Cj4+Pgo+Pj4gQEAgLTIxNywxMCArMjIzLDcg QEAgc3RhdGljIHZvaWQgX19zZXRfbmF0X2NhY2hlX2RpcnR5KHN0cnVjdCBmMmZzX25tX2luZm8g Km5tX2ksCj4+PiAgCWhlYWQtPmVudHJ5X2NudCsrOwo+Pj4gIAlzZXRfbmF0X2ZsYWcobmUsIElT X0RJUlRZLCB0cnVlKTsKPj4+ICByZWZyZXNoX2xpc3Q6Cj4+PiAtCWlmIChuYXRfZ2V0X2Jsa2Fk ZHIobmUpID09IE5FV19BRERSKQo+Pj4gLQkJbGlzdF9kZWxfaW5pdCgmbmUtPmxpc3QpOwo+Pj4g LQllbHNlCj4+PiAtCQlsaXN0X21vdmVfdGFpbCgmbmUtPmxpc3QsICZoZWFkLT5lbnRyeV9saXN0 KTsKPj4+ICsJbGlzdF9tb3ZlX3RhaWwoJm5lLT5saXN0LCAmaGVhZC0+ZW50cnlfbGlzdCk7Cj4+ Cj4+IEZvciBORVdfQUREUiBjYXNlLCB3aHkgd2UgbmVlZCB0byB0cmFjayB0aGlzIG5hdCBlbnRy eSBpbiBlbnRyeV9saXN0Pwo+IAo+IElmIG5ld19ibGthZGRyID09IE5FV19BRERSLCB3ZSBkb24n dCBuZWVkIHRvIGNhbGwgX19zZXRfbmF0X2NhY2hlX2RpcnR5OgoKQnV0IHN1Y2ggZW50cnkgaXMg c3RpbGwgaW4gY2xlYW4gbGlzdCwgc2hyaW5rZXIgY2FuIGVhc2lseSByZW1vdmUgaXQgaW4Kb3V0 LW9mLW1lbW9yeSBjb25kaXRpb24uCgpUaGFua3MsCgo+IAlpICBuYXQgZW50cnkgd2l0aCBORVdf QUREUiB3aWxsIGluY3JlYXNlIGRpcnR5IG5hdCBlbnRyeSBjb3VudCBpbiBuYXQgc2V0o6x3aGlj aCB3aWxsIGNhdXNlCj4gICAgICAgYSBuYXQgc2V0IGhhcyBsYXJnZSBuYXQgZW50cnkgY291bnSj qG1vc3QgaXMgTkVXX0FERFKjqaOsIGJ1dCBmZXdlciBvZiBuYXQgZW50cmllcyBzaG91bGQKPiAJ ICBiZSB3cml0dGVuIGJhY2sgaW4gdGhpcyBjaGVja3BvaW50Cj4gICAgIGlpICBuYXQgZW50cnkg d2l0aCBORVdfQUREUiB3aWxsIGNhbGwgX19zZXRfbmF0X2NhY2hlX2RpcnR5IGFnYWluLCB3aGVu IHdlIHdyaXRlIGJhY2sgaXRzIG5vZGUKPiAgICAgICBwYWdlLCBpbiB0aGlzIHRpbWUsIG5ld19i bGthZGRyICE9IE5FV19BRERSCj4gU28sIEkgdGhpbmsgd2UnZCBiZXR0ZXIgYnlwYXNzIF9zZXRf bmF0X2NhY2hlX2RpcnR5IGlmIGJsa2FkZHIgPT0gTkVXX0FERFIKPiAKPiBUaGFua3MuCj4gCj4+ Cj4+PiAgfQo+Pj4KPj4+ICBzdGF0aWMgdm9pZCBfX2NsZWFyX25hdF9jYWNoZV9kaXJ0eShzdHJ1 Y3QgZjJmc19ubV9pbmZvICpubV9pLAo+Pj4gQEAgLTM1Nyw3ICszNjAsOCBAQCBzdGF0aWMgdm9p ZCBzZXRfbm9kZV9hZGRyKHN0cnVjdCBmMmZzX3NiX2luZm8gKnNiaSwgc3RydWN0IG5vZGVfaW5m byAqbmksCj4+PiAgCW5hdF9zZXRfYmxrYWRkcihlLCBuZXdfYmxrYWRkcik7Cj4+PiAgCWlmIChu ZXdfYmxrYWRkciA9PSBORVdfQUREUiB8fCBuZXdfYmxrYWRkciA9PSBOVUxMX0FERFIpCj4+PiAg CQlzZXRfbmF0X2ZsYWcoZSwgSVNfQ0hFQ0tQT0lOVEVELCBmYWxzZSk7Cj4+PiAtCV9fc2V0X25h dF9jYWNoZV9kaXJ0eShubV9pLCBlKTsKPj4+ICsJaWYgKG5ld19ibGthZGRyICE9IE5FV19BRERS KQo+Pj4gKwkJX19zZXRfbmF0X2NhY2hlX2RpcnR5KHNiaSwgZmFsc2UsIG5tX2ksIGUpOwo+Pj4K Pj4+ICAJLyogdXBkYXRlIGZzeW5jX21hcmsgaWYgaXRzIGlub2RlIG5hdCBlbnRyeSBpcyBzdGls bCBhbGl2ZSAqLwo+Pj4gIAlpZiAobmktPm5pZCAhPSBuaS0+aW5vKQo+Pj4gQEAgLTIzOTUsMTQg KzIzOTksMTQgQEAgc3RhdGljIHZvaWQgcmVtb3ZlX25hdHNfaW5fam91cm5hbChzdHJ1Y3QgZjJm c19zYl9pbmZvICpzYmkpCj4+PiAgCQkJc3Bpbl91bmxvY2soJm5tX2ktPm5pZF9saXN0X2xvY2sp Owo+Pj4gIAkJfQo+Pj4KPj4+IC0JCV9fc2V0X25hdF9jYWNoZV9kaXJ0eShubV9pLCBuZSk7Cj4+ PiArCQlfX3NldF9uYXRfY2FjaGVfZGlydHkoc2JpLCB0cnVlLCBubV9pLCBuZSk7Cj4+PiAgCX0K Pj4+ICAJdXBkYXRlX25hdHNfaW5fY3Vyc3VtKGpvdXJuYWwsIC1pKTsKPj4+ICAJdXBfd3JpdGUo JmN1cnNlZy0+am91cm5hbF9yd3NlbSk7Cj4+PiAgfQo+Pj4KPj4+IC1zdGF0aWMgdm9pZCBfX2Fk anVzdF9uYXRfZW50cnlfc2V0KHN0cnVjdCBuYXRfZW50cnlfc2V0ICpuZXMsCj4+PiAtCQkJCQkJ c3RydWN0IGxpc3RfaGVhZCAqaGVhZCwgaW50IG1heCkKPj4+ICtzdGF0aWMgdm9pZCBfX2FkanVz dF9uYXRfZW50cnlfc2V0KHN0cnVjdCBmMmZzX3NiX2luZm8gKnNiaSwKPj4+ICsJCXN0cnVjdCBu YXRfZW50cnlfc2V0ICpuZXMsIHN0cnVjdCBsaXN0X2hlYWQgKmhlYWQsIGludCBtYXgpCj4+PiAg ewo+Pj4gIAlzdHJ1Y3QgbmF0X2VudHJ5X3NldCAqY3VyOwo+Pj4KPj4+IEBAIC0yNDEwLDcgKzI0 MTQsOSBAQCBzdGF0aWMgdm9pZCBfX2FkanVzdF9uYXRfZW50cnlfc2V0KHN0cnVjdCBuYXRfZW50 cnlfc2V0ICpuZXMsCj4+PiAgCQlnb3RvIGFkZF9vdXQ7Cj4+Pgo+Pj4gIAlsaXN0X2Zvcl9lYWNo X2VudHJ5KGN1ciwgaGVhZCwgc2V0X2xpc3QpIHsKPj4+IC0JCWlmIChjdXItPmVudHJ5X2NudCA+ PSBuZXMtPmVudHJ5X2NudCkgewo+Pj4gKwkJaWYgKGN1ci0+ZW50cnlfY250ID4gbmVzLT5lbnRy eV9jbnQgfHwKPj4+ICsJCQkoY3VyLT5lbnRyeV9jbnQgPT0gbmVzLT5lbnRyeV9jbnQgJiYKPj4+ ICsJCQljdXItPmNwX3ZlciA8IG5lcy0+Y3BfdmVyKSkgewo+Pj4gIAkJCWxpc3RfYWRkKCZuZXMt PnNldF9saXN0LCBjdXItPnNldF9saXN0LnByZXYpOwo+Pj4gIAkJCXJldHVybjsKPj4+ICAJCX0K Pj4+IEBAIC0yNDU4LDcgKzI0NjQsNiBAQCBzdGF0aWMgdm9pZCBfX2ZsdXNoX25hdF9lbnRyeV9z ZXQoc3RydWN0IGYyZnNfc2JfaW5mbyAqc2JpLAo+Pj4gIAlzdHJ1Y3QgY3Vyc2VnX2luZm8gKmN1 cnNlZyA9IENVUlNFR19JKHNiaSwgQ1VSU0VHX0hPVF9EQVRBKTsKPj4+ICAJc3RydWN0IGYyZnNf am91cm5hbCAqam91cm5hbCA9IGN1cnNlZy0+am91cm5hbDsKPj4+ICAJbmlkX3Qgc3RhcnRfbmlk ID0gc2V0LT5zZXQgKiBOQVRfRU5UUllfUEVSX0JMT0NLOwo+Pj4gLQlib29sIHRvX2pvdXJuYWwg PSB0cnVlOwo+Pj4gIAlzdHJ1Y3QgZjJmc19uYXRfYmxvY2sgKm5hdF9ibGs7Cj4+PiAgCXN0cnVj dCBuYXRfZW50cnkgKm5lLCAqY3VyOwo+Pj4gIAlzdHJ1Y3QgcGFnZSAqcGFnZSA9IE5VTEw7Cj4+ PiBAQCAtMjQ2OCwxMSArMjQ3MywxNCBAQCBzdGF0aWMgdm9pZCBfX2ZsdXNoX25hdF9lbnRyeV9z ZXQoc3RydWN0IGYyZnNfc2JfaW5mbyAqc2JpLAo+Pj4gIAkgKiAjMSwgZmx1c2ggbmF0IGVudHJp ZXMgdG8gam91cm5hbCBpbiBjdXJyZW50IGhvdCBkYXRhIHN1bW1hcnkgYmxvY2suCj4+PiAgCSAq ICMyLCBmbHVzaCBuYXQgZW50cmllcyB0byBuYXQgcGFnZS4KPj4+ICAJICovCj4+PiArCj4+PiAr CXNldC0+dG9fam91cm5hbCA9IHRydWU7Cj4+PiArCj4+PiAgCWlmIChlbmFibGVkX25hdF9iaXRz KHNiaSwgY3BjKSB8fAo+Pj4gIAkJIV9faGFzX2N1cnN1bV9zcGFjZShqb3VybmFsLCBzZXQtPmVu dHJ5X2NudCwgTkFUX0pPVVJOQUwpKQo+Pj4gLQkJdG9fam91cm5hbCA9IGZhbHNlOwo+Pj4gKwkJ c2V0LT50b19qb3VybmFsID0gZmFsc2U7Cj4+Pgo+Pj4gLQlpZiAodG9fam91cm5hbCkgewo+Pj4g KwlpZiAoc2V0LT50b19qb3VybmFsKSB7Cj4+PiAgCQlkb3duX3dyaXRlKCZjdXJzZWctPmpvdXJu YWxfcndzZW0pOwo+Pj4gIAl9IGVsc2Ugewo+Pj4gIAkJcGFnZSA9IGdldF9uZXh0X25hdF9wYWdl KHNiaSwgc3RhcnRfbmlkKTsKPj4+IEBAIC0yNDg4LDcgKzI0OTYsNyBAQCBzdGF0aWMgdm9pZCBf X2ZsdXNoX25hdF9lbnRyeV9zZXQoc3RydWN0IGYyZnNfc2JfaW5mbyAqc2JpLAo+Pj4KPj4+ICAJ CWYyZnNfYnVnX29uKHNiaSwgbmF0X2dldF9ibGthZGRyKG5lKSA9PSBORVdfQUREUik7Cj4+Pgo+ Pj4gLQkJaWYgKHRvX2pvdXJuYWwpIHsKPj4+ICsJCWlmIChzZXQtPnRvX2pvdXJuYWwpIHsKPj4+ ICAJCQlvZmZzZXQgPSBsb29rdXBfam91cm5hbF9pbl9jdXJzdW0oam91cm5hbCwKPj4+ICAJCQkJ CQkJTkFUX0pPVVJOQUwsIG5pZCwgMSk7Cj4+PiAgCQkJZjJmc19idWdfb24oc2JpLCBvZmZzZXQg PCAwKTsKPj4+IEBAIC0yNTA5LDcgKzI1MTcsNyBAQCBzdGF0aWMgdm9pZCBfX2ZsdXNoX25hdF9l bnRyeV9zZXQoc3RydWN0IGYyZnNfc2JfaW5mbyAqc2JpLAo+Pj4gIAkJfQo+Pj4gIAl9Cj4+Pgo+ Pj4gLQlpZiAodG9fam91cm5hbCkgewo+Pj4gKwlpZiAoc2V0LT50b19qb3VybmFsKSB7Cj4+PiAg CQl1cF93cml0ZSgmY3Vyc2VnLT5qb3VybmFsX3J3c2VtKTsKPj4+ICAJfSBlbHNlIHsKPj4+ICAJ CV9fdXBkYXRlX25hdF9iaXRzKHNiaSwgc3RhcnRfbmlkLCBwYWdlKTsKPj4+IEBAIC0yNTE3LDcg KzI1MjUsNyBAQCBzdGF0aWMgdm9pZCBfX2ZsdXNoX25hdF9lbnRyeV9zZXQoc3RydWN0IGYyZnNf c2JfaW5mbyAqc2JpLAo+Pj4gIAl9Cj4+Pgo+Pj4gIAkvKiBBbGxvdyBkaXJ0eSBuYXRzIGJ5IG5v ZGUgYmxvY2sgYWxsb2NhdGlvbiBpbiB3cml0ZV9iZWdpbiAqLwo+Pj4gLQlpZiAoIXNldC0+ZW50 cnlfY250KSB7Cj4+PiArCWlmICghc2V0LT50b19qb3VybmFsKSB7Cj4+Cj4+IGlmICghc2V0LT50 b19qb3VybmFsICYmICFzZXQtPmVudHJ5X2NudCkgPwo+Pgo+PiBUaGFua3MsCj4+Cj4+PiAgCQly YWRpeF90cmVlX2RlbGV0ZSgmTk1fSShzYmkpLT5uYXRfc2V0X3Jvb3QsIHNldC0+c2V0KTsKPj4+ ICAJCWttZW1fY2FjaGVfZnJlZShuYXRfZW50cnlfc2V0X3NsYWIsIHNldCk7Cj4+PiAgCX0KPj4+ IEBAIC0yNTU2LDcgKzI1NjQsNyBAQCB2b2lkIGZsdXNoX25hdF9lbnRyaWVzKHN0cnVjdCBmMmZz X3NiX2luZm8gKnNiaSwgc3RydWN0IGNwX2NvbnRyb2wgKmNwYykKPj4+ICAJCXVuc2lnbmVkIGlk eDsKPj4+ICAJCXNldF9pZHggPSBzZXR2ZWNbZm91bmQgLSAxXS0+c2V0ICsgMTsKPj4+ICAJCWZv ciAoaWR4ID0gMDsgaWR4IDwgZm91bmQ7IGlkeCsrKQo+Pj4gLQkJCV9fYWRqdXN0X25hdF9lbnRy eV9zZXQoc2V0dmVjW2lkeF0sICZzZXRzLAo+Pj4gKwkJCV9fYWRqdXN0X25hdF9lbnRyeV9zZXQo c2JpLCBzZXR2ZWNbaWR4XSwgJnNldHMsCj4+PiAgCQkJCQkJTUFYX05BVF9KRU5UUklFUyhqb3Vy bmFsKSk7Cj4+PiAgCX0KPj4+Cj4+PiBAQCAtMjU2NSw3ICsyNTczLDYgQEAgdm9pZCBmbHVzaF9u YXRfZW50cmllcyhzdHJ1Y3QgZjJmc19zYl9pbmZvICpzYmksIHN0cnVjdCBjcF9jb250cm9sICpj cGMpCj4+PiAgCQlfX2ZsdXNoX25hdF9lbnRyeV9zZXQoc2JpLCBzZXQsIGNwYyk7Cj4+Pgo+Pj4g IAl1cF93cml0ZSgmbm1faS0+bmF0X3RyZWVfbG9jayk7Cj4+PiAtCS8qIEFsbG93IGRpcnR5IG5h dHMgYnkgbm9kZSBibG9jayBhbGxvY2F0aW9uIGluIHdyaXRlX2JlZ2luICovCj4+PiAgfQo+Pj4K Pj4+ICBzdGF0aWMgaW50IF9fZ2V0X25hdF9iaXRtYXBzKHN0cnVjdCBmMmZzX3NiX2luZm8gKnNi aSkKPj4+IGRpZmYgLS1naXQgYS9mcy9mMmZzL25vZGUuaCBiL2ZzL2YyZnMvbm9kZS5oCj4+PiBp bmRleCAwODFlZjBkLi4zY2Y5YzhiNiAxMDA2NDQKPj4+IC0tLSBhL2ZzL2YyZnMvbm9kZS5oCj4+ PiArKysgYi9mcy9mMmZzL25vZGUuaAo+Pj4gQEAgLTE0OCw3ICsxNDgsOSBAQCBzdHJ1Y3QgbmF0 X2VudHJ5X3NldCB7Cj4+PiAgCXN0cnVjdCBsaXN0X2hlYWQgc2V0X2xpc3Q7CS8qIGxpbmsgd2l0 aCBvdGhlciBuYXQgc2V0cyAqLwo+Pj4gIAlzdHJ1Y3QgbGlzdF9oZWFkIGVudHJ5X2xpc3Q7CS8q IGxpbmsgd2l0aCBkaXJ0eSBuYXQgZW50cmllcyAqLwo+Pj4gIAluaWRfdCBzZXQ7CQkJLyogc2V0 IG51bWJlciovCj4+PiAtCXVuc2lnbmVkIGludCBlbnRyeV9jbnQ7CQkvKiB0aGUgIyBvZiBuYXQg ZW50cmllcyBpbiBzZXQgKi8KPj4+ICsJdW5zaWduZWQgaW50IGVudHJ5X2NudDo5OwkvKiB0aGUg IyBvZiBuYXQgZW50cmllcyBpbiBzZXQgKi8KPj4+ICsJdW5zaWduZWQgaW50IHRvX2pvdXJuYWw6 MTsJLyogc2V0IGZsdXNoIHRvIGpvdXJuYWwgKi8KPj4+ICsJX191NjQgY3BfdmVyOwkJCS8qIGNw IHZlcnNpb24gb2YgdGhpcyBzZXQgbW9kaWZ5ICovCj4+PiAgfTsKPj4+Cj4+PiAgc3RydWN0IGZy ZWVfbmlkIHsKPj4+Cj4gCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkNoZWNrIG91dCB0aGUgdmli cmFudCB0ZWNoIGNvbW11bml0eSBvbiBvbmUgb2YgdGhlIHdvcmxkJ3MgbW9zdAplbmdhZ2luZyB0 ZWNoIHNpdGVzLCBTbGFzaGRvdC5vcmchIGh0dHA6Ly9zZG0ubGluay9zbGFzaGRvdApfX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpMaW51eC1mMmZzLWRldmVs IG1haWxpbmcgbGlzdApMaW51eC1mMmZzLWRldmVsQGxpc3RzLnNvdXJjZWZvcmdlLm5ldApodHRw czovL2xpc3RzLnNvdXJjZWZvcmdlLm5ldC9saXN0cy9saXN0aW5mby9saW51eC1mMmZzLWRldmVs Cg==