diff for duplicates of <1517323157.5412.1.camel@primarydata.com> diff --git a/a/1.txt b/N1/1.txt index dfc9da3..3318344 100644 --- a/a/1.txt +++ b/N1/1.txt @@ -1,150 +1,189 @@ -SGkgTGludXMsDQoNClRoZSBmb2xsb3dpbmcgY2hhbmdlcyBzaW5jZSBjb21taXQgYTg3NTBkZGNh -OTE4MDMyZDYzNDlhZGJmOWE0YjY1NTVlN2RiMjBkYToNCg0KICBMaW51eCA0LjE1LXJjOCAoMjAx -OC0wMS0xNCAxNTozMjozMCAtMDgwMCkNCg0KYXJlIGF2YWlsYWJsZSBpbiB0aGUgR2l0IHJlcG9z -aXRvcnkgYXQ6DQoNCiAgZ2l0Oi8vZ2l0LmxpbnV4LW5mcy5vcmcvcHJvamVjdHMvdHJvbmRteS9s -aW51eC1uZnMuZ2l0IHRhZ3MvbmZzLWZvci00LjE2LTENCg0KZm9yIHlvdSB0byBmZXRjaCBjaGFu -Z2VzIHVwIHRvIGUyMzFjNjg3OWNmZDQ0ZTRmZmZkMzg0YmI2ZGQ3ZDMxMzI0OWE1MjM6DQoNCiAg -TkZTOiBGaXggYSByYWNlIGJldHdlZW4gbW1hcCgpIGFuZCBPX0RJUkVDVCAoMjAxOC0wMS0yOCAy -MjowMDoxNSAtMDUwMCkNCg0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t -LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KTkZTIGNsaWVudCB1cGRhdGVzIGZvciBMaW51eCA0 -LjE2DQoNCkhpZ2hsaWdodHMgaW5jbHVkZToNCg0KU3RhYmxlIGJ1Z2ZpeGVzOg0KLSBGaXggYnJl -YWthZ2VzIGluIHRoZSBuZnNzdGF0IHV0aWxpdHkgZHVlIHRvIHRoZSBpbmNsdXNpb24gb2YgdGhl -IE5GU3Y0DQogIExPT0tVUFAgb3BlcmF0aW9uLg0KLSBGaXggYSBOVUxMIHBvaW50ZXIgZGVyZWZl -cmVuY2UgaW4gbmZzX2lkbWFwX3ByZXBhcmVfcGlwZV91cGNhbGwoKSBkdWUgdG8NCiAgbmZzX2lk -bWFwX2xlZ2FjeV91cGNhbGwoKSBiZWluZyBjYWxsZWQgd2l0aG91dCBhbiAnYXV4JyBwYXJhbWV0 -ZXIuDQotIEZpeCBhIHJlZmNvdW50IGxlYWsgaW4gdGhlIHN0YW5kYXJkIE9fRElSRUNUIGVycm9y -IHBhdGguDQotIEZpeCBhIHJlZmNvdW50IGxlYWsgaW4gdGhlIHBORlMgT19ESVJFQ1QgZmFsbGJh -Y2sgdG8gTURTIHBhdGguDQotIEZpeCBDUFUgbGF0ZW5jeSBpc3N1ZXMgd2l0aCBuZnNfY29tbWl0 -X3JlbGVhc2VfcGFnZXMoKQ0KLSBGaXggdGhlIExBWU9VVFVOQVZBSUxBQkxFIGVycm9yIGNhc2Ug -aW4gdGhlIGZpbGUgbGF5b3V0IHR5cGUuDQotIE5GUzogRml4IGEgcmFjZSBiZXR3ZWVuIG1tYXAo -KSBhbmQgT19ESVJFQ1QNCg0KRmVhdHVyZXM6DQotIFN1cHBvcnQgdGhlIHN0YXR4KCkgbWFzayBh -bmQgcXVlcnkgZmxhZ3MgdG8gZW5hYmxlIG9wdGltaXNhdGlvbnMgd2hlbg0KICB0aGUgdXNlciBp -cyByZXF1ZXN0aW5nIG9ubHkgYXR0cmlidXRlcyB0aGF0IGFyZSBhbHJlYWR5IHVwIHRvIGRhdGUg -aW4NCiAgdGhlIGlub2RlIGNhY2hlLCBvciBpcyBzcGVjaWZ5aW5nIHRoZSBBVF9TVEFUWF9ET05U -X1NZTkMgZmxhZy4NCi0gQWRkIGEgbW9kdWxlIGFsaWFzIGZvciB0aGUgU0NTSSBwTkZTIGxheW91 -dCB0eXBlLg0KDQpCdWdmaXhlczoNCi0gQXV0b21vdW50aW5nIHdoZW4gcmVzb2x2aW5nIGEgTkZT -djQgcmVmZXJyYWwgc2hvdWxkIHByZXNlcnZlIHRoZSBSRE1BDQogIHRyYW5zcG9ydCBwcm90b2Nv -bCBzZXR0aW5ncy4NCi0gVmFyaW91cyBvdGhlciBSRE1BIGJ1Z2ZpeGVzIGZyb20gQ2h1Y2suDQot -IHBORlMgYmxvY2sgbGF5b3V0IGZpeGVzLg0KLSBBbHdheXMgc2V0IE5GU19MT0NLX0xPU1Qgd2hl -biBhIGxvY2sgaXMgbG9zdC4NCg0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t -LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KQXJuZCBCZXJnbWFubiAoMSk6DQogICAgICBu -ZnM6IHJlbW92ZSB1bnVzZWQgbGFiZWwgaW4gbmZzX2VuY29kZV9maCgpDQoNCkJlbmphbWluIENv -ZGRpbmd0b24gKDcpOg0KICAgICAgTkZTOiByZW1vdmUgdW51c2VkIG9mZnNldCBhcmcgaW4gbmZz -X3BnaW9fcnBjc2V0dXANCiAgICAgIHBuZnMvYmxvY2tsYXlvdXQ6IEFkZCBtb2R1bGUgYWxpYXMg -Zm9yIExBWU9VVDRfU0NTSQ0KICAgICAgcG5mcy9ibG9ja2xheW91dDogc2V0IFBORlNfTEFZT1VU -UkVUVVJOX09OX0VSUk9SDQogICAgICBwbmZzL2Jsb2NrbGF5b3V0OiBoYW5kbGUgdHJhbnNpZW50 -IGRldmljZXMNCiAgICAgIFNVTlJQQzogRml4IG51bGwgcnBjX2NsbnQgZGVyZWZlcmVuY2UgaW4g -cnBjX3Rhc2tfcXVldWVkIHRyYWNlcG9pbnQNCiAgICAgIHBuZnMvYmxvY2tsYXlvdXQ6IHBuZnNf -YmxvY2tfZGV2X21hcCB1c2VzIGJ5dGVzLCBub3Qgc2VjdG9ycw0KICAgICAgcG5mcy9ibG9ja2xh -eW91dDogRW5zdXJlIGRpc2sgYWRkcmVzcyBpbiBibG9jayBkZXZpY2UgbWFwDQoNCkNodWNrIExl -dmVyICgzOSk6DQogICAgICBuZnM6IERlZmluZSBORlNfUkRNQV9QT1JUDQogICAgICBuZnM6IFJl -ZmVycmFscyBzaG91bGQgdXNlIHRoZSBzYW1lIHByb3RvIHNldHRpbmcgYXMgdGhlaXIgcGFyZW50 -DQogICAgICBuZnM6IFVwZGF0ZSBzZXJ2ZXIgcG9ydCBhZnRlciByZWZlcnJhbCBvciBtaWdyYXRp -b24NCiAgICAgIFNVTlJQQzogUmVtb3ZlIHJwY19wcm90b2NvbCgpDQogICAgICB4cHJ0cmRtYTog -Rml4IGJ1ZmZlciBsZWFrIGFmdGVyIHRyYW5zcG9ydCBzZXQgdXAgZmFpbHVyZQ0KICAgICAgeHBy -dHJkbWE6IEZpeCBiYWNrY2hhbm5lbCBhbGxvY2F0aW9uIG9mIGV4dHJhIHJwY3JkbWFfcmVwcw0K -ICAgICAgeHBydHJkbWE6IEVsaW1pbmF0ZSB1bm5lY2Vzc2FyeSBsb2NrIGN5Y2xlIGluIHhwcnRf -cmRtYV9zZW5kX3JlcXVlc3QNCiAgICAgIHhwcnRyZG1hOiBQZXItbW9kZSBoYW5kbGluZyBmb3Ig -UmVtb3RlIEludmFsaWRhdGlvbg0KICAgICAgeHBydHJkbWE6IFJlbW92ZSByaV9yZW1pbnZfZXhw -ZWN0ZWQNCiAgICAgIHhwcnRyZG1hOiBSZW1vdmUgdW51c2VkIHBhZGRpbmcgdmFyaWFibGVzDQog -ICAgICB4cHJ0cmRtYTogSW5pdGlhbGl6ZSB0aGUgeHBydCBhZGRyZXNzIHN0cmluZyBhcnJheSBl -YXJsaWVyDQogICAgICB4cHJ0cmRtYTogUmVtb3ZlIGFub3RoZXIgc29ja2FkZHJfc3RvcmFnZSBm -aWVsZCAoY2RhdGE6OmFkZHIpDQogICAgICB4cHJ0cmRtYTogU3VwcG9ydCBJUHY2IGluIHhwcnRf -cmRtYV9zZXRfcG9ydA0KICAgICAgeHBydHJkbWE6IE1vdmUgdW5tYXAtc2FmZSBsb2dpYyB0byBy -cGNyZG1hX21hcnNoYWxfcmVxDQogICAgICB4cHJ0cmRtYTogYnVmX2ZyZWUgbm90IGNhbGxlZCBm -b3IgQ0IgcmVwbGllcw0KICAgICAgeHBydHJkbWE6IFNwbGl0IHhwcnRfcmRtYV9zZW5kX3JlcXVl -c3QNCiAgICAgIHhwcnRyZG1hOiBEb24ndCBjbGVhciBSUENfQkNfUEFfSU5fVVNFIG9uIHByZS1h -bGxvY2F0ZWQgcnBjX3Jxc3Qncw0KICAgICAgeHBydHJkbWE6IFJlcGxhY2UgYWxsIHVzYWdlIG9m -ICJmcm1yIiB3aXRoICJmcndyIg0KICAgICAgeHBydHJkbWE6IFJlbW92ZSB1c2FnZSBvZiAibXci -DQogICAgICB4cHJ0cmRtYTogSW50cm9kdWNlIHJwY3JkbWFfbXdfdW5tYXBfYW5kX3B1dA0KICAg -ICAgbmZzOiBVc2UgcHJvcGVyIGVudW0gZGVmaW5pdGlvbnMgZm9yIG5mc19zaG93X3N0YWJsZQ0K -ICAgICAgcmRtYS9pYjogQWRkIHRyYWNlIHBvaW50IG1hY3JvcyB0byBkaXNwbGF5IGh1bWFuLXJl -YWRhYmxlIHZhbHVlcw0KICAgICAgcnBjcmRtYTogaW5mcmFzdHJ1Y3R1cmUgZm9yIHN0YXRpYyB0 -cmFjZSBwb2ludHMgaW4gcnBjcmRtYS5rbw0KICAgICAgeHBydHJkbWE6IEFkZCB0cmFjZSBwb2lu -dHMgaW4gUlBDIENhbGwgdHJhbnNtaXQgcGF0aHMNCiAgICAgIHhwcnRyZG1hOiBBZGQgdHJhY2Ug -cG9pbnRzIGluIHRoZSBSUEMgUmVwbHkgaGFuZGxlciBwYXRocw0KICAgICAgeHBydHJkbWE6IEFk -ZCB0cmFjZSBwb2ludHMgdG8gaW5zdHJ1bWVudCBtZW1vcnkgcmVnaXN0cmF0aW9uDQogICAgICB4 -cHJ0cmRtYTogQWRkIHRyYWNlIHBvaW50cyBpbiByZXBseSBkZWNvZGVyIHBhdGgNCiAgICAgIHhw -cnRyZG1hOiBBZGQgdHJhY2UgcG9pbnRzIHRvIGluc3RydW1lbnQgbWVtb3J5IGludmFsaWRhdGlv -bg0KICAgICAgeHBydHJkbWE6IEFkZCB0cmFjZSBwb2ludHMgdG8gaW5zdHJ1bWVudCBNUiBhbGxv -Y2F0aW9uIGFuZCByZWNvdmVyeQ0KICAgICAgeHBydHJkbWE6IEFkZCB0cmFjZSBwb2ludHMgZm9y -IGNvbm5lY3QgZXZlbnRzDQogICAgICB4cHJ0cmRtYTogQWRkIHRyYWNlIHBvaW50cyBpbiB0aGUg -Y2xpZW50LXNpZGUgYmFja2NoYW5uZWwgY29kZSBwYXRocw0KICAgICAgeHBydHJkbWE6IEFkZCB0 -cmFjZSBwb2ludHMgdG8gaW5zdHJ1bWVudCBRUCBhbmQgQ1EgYWNjZXNzIHVwY2FsbHMNCiAgICAg -IHhwcnRyZG1hOiBJbnN0cnVtZW50IGFsbG9jYXRpb24vcmVsZWFzZSBvZiBycGNyZG1hX3JlcS9y -ZXAgb2JqZWN0cw0KICAgICAgeHBydHJkbWE6IEZpeCAiYnl0ZXMgcmVnaXN0ZXJlZCIgYWNjb3Vu -dGluZw0KICAgICAgeHBydHJkbWE6IENvcnJlY3Qgc29tZSBkb2N1bWVudGluZyBjb21tZW50cw0K -ICAgICAgU1VOUlBDOiBUcmFjZSB4cHJ0X3RpbWVyIGV2ZW50cw0KICAgICAgc3VucnBjOiBGb3Jt -YXQgUlBDIGV2ZW50cyBjb25zaXN0ZW50bHkgZm9yIGRpc3BsYXkNCiAgICAgIFNVTlJQQzogdGFz -a19ydW5fYWN0aW9uIHNob3VsZCBkaXNwbGF5IHRrX2NhbGxiYWNrDQogICAgICBTVU5SUEM6IE1p -Y3JvLW9wdGltaXplIF9fcnBjX2V4ZWN1dGUNCg0KRWxlbmEgUmVzaGV0b3ZhICg0KToNCiAgICAg -IGxvY2tkOiBjb252ZXJ0IG5sbV9ob3N0LmhfY291bnQgZnJvbSBhdG9taWNfdCB0byByZWZjb3Vu -dF90DQogICAgICBsb2NrZDogY29udmVydCBuc21faGFuZGxlLnNtX2NvdW50IGZyb20gYXRvbWlj -X3QgdG8gcmVmY291bnRfdA0KICAgICAgbG9ja2Q6IGNvbnZlcnQgbmxtX2xvY2tvd25lci5jb3Vu -dCBmcm9tIGF0b21pY190IHRvIHJlZmNvdW50X3QNCiAgICAgIGxvY2tkOiBjb252ZXJ0IG5sbV9y -cXN0LmFfY291bnQgZnJvbSBhdG9taWNfdCB0byByZWZjb3VudF90DQoNCkVyaWMgQmlnZ2VycyAo -MSk6DQogICAgICBORlM6IHJlamVjdCByZXF1ZXN0IGZvciBpZF9sZWdhY3kga2V5IHdpdGhvdXQg -YXV4ZGF0YQ0KDQpKLiBCcnVjZSBGaWVsZHMgKDEpOg0KICAgICAgTkZTOiBjb21taXQgZGlyZWN0 -IHdyaXRlcyBldmVuIGlmIHRoZXkgZmFpbCBwYXJ0aWFsbHkNCg0KSmFuIENob2Nob2wgKDEpOg0K -ICAgICAgbmZzOiBEbyBub3QgY29udmVydCBuZnNfaWRtYXBfY2FjaGVfdGltZW91dCB0byBqaWZm -aWVzDQoNCk5laWxCcm93biAoMik6DQogICAgICBuZnM6IHJlbW92ZSBkZWFkIGNvZGUgZnJvbSBu -ZnNfZW5jb2RlX2ZoKCkNCiAgICAgIE5GU3Y0OiBhbHdheXMgc2V0IE5GU19MT0NLX0xPU1Qgd2hl -biBhIGxvY2sgaXMgbG9zdC4NCg0KU2NvdHQgTWF5aGV3ICgxKToNCiAgICAgIG5mcy9wbmZzOiBm -aXggbmZzX2RpcmVjdF9yZXEgcmVmIGxlYWsgd2hlbiBpL28gZmFsbHMgYmFjayB0byB0aGUgbWRz -DQoNClRpZ3JhbiBNa3J0Y2h5YW4gKDEpOg0KICAgICAgbmZzNDE6IGRvIG5vdCByZXR1cm4gRU5P -TUVNIG9uIExBWU9VVFVOQVZBSUxBQkxFDQoNClRyb25kIE15a2xlYnVzdCAoMTIpOg0KICAgICAg -TkZTOiBBZGQgYSBjb25kX3Jlc2NoZWQoKSB0byBuZnNfY29tbWl0X3JlbGVhc2VfcGFnZXMoKQ0K -ICAgICAgTkZTdjQ6IENvbnZlcnQgQ0xPU0UgdG8gdXNlIG5mczRfYXN5bmNfaGFuZGxlX2V4Y2Vw -dGlvbigpDQogICAgICBORlN2NDogQ29udmVydCBERUxFR1JFVFVSTiB0byB1c2UgbmZzNF9oYW5k -bGVfZXhjZXB0aW9uKCkNCiAgICAgIE5GU3Y0OiBDb252ZXJ0IExPQ0tVIHRvIHVzZSBuZnM0X2Fz -eW5jX2hhbmRsZV9leGNlcHRpb24oKQ0KICAgICAgTkZTOiBGaXggbmZzc3RhdCBicmVha2FnZSBk -dWUgdG8gTE9PS1VQUA0KICAgICAgU3VwcG9ydCBzdGF0eCgpIG1hc2sgYW5kIHF1ZXJ5IGZsYWdz -IHBhcmFtZXRlcnMNCiAgICAgIFNVTlJQQzogQ2h1bmsgcmVhZGluZyBvZiByZXBsaWVzIGZyb20g -dGhlIHNlcnZlcg0KICAgICAgU1VOUlBDOiBBZGQgZXhwbGljaXQgcmVzY2hlZHVsaW5nIHBvaW50 -cyBpbiB0aGUgcmVjZWl2ZSBwYXRoDQogICAgICBNZXJnZSB0YWcgJ25mcy1yZG1hLWZvci00LjE2 -LTEnIG9mIGdpdDovL2dpdC5saW51eC1uZnMub3JnL3Byb2plY3RzL2FubmEvbGludXgtbmZzDQog -ICAgICBsb2NrZDogRml4IHNlcnZlciByZWZjb3VudGluZw0KICAgICAgTkZTOiBSZW1vdmUgYSBy -ZWR1bmRhbnQgY2FsbCB0byB1bm1hcF9tYXBwaW5nX3JhbmdlKCkNCiAgICAgIE5GUzogRml4IGEg -cmFjZSBiZXR3ZWVuIG1tYXAoKSBhbmQgT19ESVJFQ1QNCg0KIGZzL2xvY2tkL2NsbnRwcm9jLmMg -ICAgICAgICAgICAgICB8ICAxNCArLQ0KIGZzL2xvY2tkL2hvc3QuYyAgICAgICAgICAgICAgICAg -ICB8ICAyMiArLQ0KIGZzL2xvY2tkL21vbi5jICAgICAgICAgICAgICAgICAgICB8ICAxNCArLQ0K -IGZzL2xvY2tkL3N2Y3Byb2MuYyAgICAgICAgICAgICAgICB8ICAgMiArLQ0KIGZzL25mcy9ibG9j -a2xheW91dC9ibG9ja2xheW91dC5jICB8ICA5NCArKystDQogZnMvbmZzL2Jsb2NrbGF5b3V0L2Js -b2NrbGF5b3V0LmggIHwgICA3ICstDQogZnMvbmZzL2Jsb2NrbGF5b3V0L2Rldi5jICAgICAgICAg -IHwgICA3ICstDQogZnMvbmZzL2RpcmVjdC5jICAgICAgICAgICAgICAgICAgIHwgICA0ICstDQog -ZnMvbmZzL2V4cG9ydC5jICAgICAgICAgICAgICAgICAgIHwgICA1IC0NCiBmcy9uZnMvZmlsZWxh -eW91dC9maWxlbGF5b3V0LmMgICAgfCAgIDQgKy0NCiBmcy9uZnMvaW5vZGUuYyAgICAgICAgICAg -ICAgICAgICAgfCAgNTMgKystDQogZnMvbmZzL2lvLmMgICAgICAgICAgICAgICAgICAgICAgIHwg -ICAyICstDQogZnMvbmZzL25mczRjbGllbnQuYyAgICAgICAgICAgICAgIHwgIDI0ICstDQogZnMv -bmZzL25mczRpZG1hcC5jICAgICAgICAgICAgICAgIHwgICA2ICstDQogZnMvbmZzL25mczRuYW1l -c3BhY2UuYyAgICAgICAgICAgIHwgICAyIC0NCiBmcy9uZnMvbmZzNHByb2MuYyAgICAgICAgICAg -ICAgICAgfCAgNDIgKy0NCiBmcy9uZnMvbmZzNHN0YXRlLmMgICAgICAgICAgICAgICAgfCAgIDUg -Ky0NCiBmcy9uZnMvbmZzNHN5c2N0bC5jICAgICAgICAgICAgICAgfCAgIDIgKy0NCiBmcy9uZnMv -bmZzNHhkci5jICAgICAgICAgICAgICAgICAgfCAgNjQgKy0tDQogZnMvbmZzL25mc3RyYWNlLmgg -ICAgICAgICAgICAgICAgIHwgIDIyICstDQogZnMvbmZzL3BhZ2VsaXN0LmMgICAgICAgICAgICAg -ICAgIHwgICA4ICstDQogZnMvbmZzL3BuZnMuYyAgICAgICAgICAgICAgICAgICAgIHwgICA2ICst -DQogZnMvbmZzL3BuZnMuaCAgICAgICAgICAgICAgICAgICAgIHwgICA2ICstDQogZnMvbmZzL3Bu -ZnNfZGV2LmMgICAgICAgICAgICAgICAgIHwgICAxIC0NCiBmcy9uZnMvd3JpdGUuYyAgICAgICAg -ICAgICAgICAgICAgfCAgIDIgKw0KIGluY2x1ZGUvbGludXgvbG9ja2QvbG9ja2QuaCAgICAgICB8 -ICAgOSArLQ0KIGluY2x1ZGUvbGludXgvbmZzNC5oICAgICAgICAgICAgICB8ICAxMiArLQ0KIGlu -Y2x1ZGUvbGludXgvc3VucnBjL2NsbnQuaCAgICAgICB8ICAgMSAtDQogaW5jbHVkZS9saW51eC9z -dW5ycGMveHBydHJkbWEuaCAgIHwgICAyICstDQogaW5jbHVkZS90cmFjZS9ldmVudHMvcmRtYS5o -ICAgICAgIHwgMTI5ICsrKysrKw0KIGluY2x1ZGUvdHJhY2UvZXZlbnRzL3JwY3JkbWEuaCAgICB8 -IDg5MCArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKw0KIGluY2x1ZGUvdHJh -Y2UvZXZlbnRzL3N1bnJwYy5oICAgICB8ICAxMiArLQ0KIGluY2x1ZGUvdWFwaS9saW51eC9uZnMu -aCAgICAgICAgICB8ICAgMSArDQogbmV0L3N1bnJwYy9jbG50LmMgICAgICAgICAgICAgICAgIHwg -IDE2IC0NCiBuZXQvc3VucnBjL3NjaGVkLmMgICAgICAgICAgICAgICAgfCAgMjYgKy0NCiBuZXQv -c3VucnBjL3hwcnQuYyAgICAgICAgICAgICAgICAgfCAgIDIgKy0NCiBuZXQvc3VucnBjL3hwcnRy -ZG1hL2JhY2tjaGFubmVsLmMgfCAgNzggKystLQ0KIG5ldC9zdW5ycGMveHBydHJkbWEvZm1yX29w -cy5jICAgICB8IDE1NyArKysrLS0tDQogbmV0L3N1bnJwYy94cHJ0cmRtYS9mcndyX29wcy5jICAg -IHwgMzI5ICsrKysrKystLS0tLS0tDQogbmV0L3N1bnJwYy94cHJ0cmRtYS9tb2R1bGUuYyAgICAg -IHwgIDEyICstDQogbmV0L3N1bnJwYy94cHJ0cmRtYS9ycGNfcmRtYS5jICAgIHwgMTYyICsrKy0t -LS0NCiBuZXQvc3VucnBjL3hwcnRyZG1hL3RyYW5zcG9ydC5jICAgfCAxMjggKysrLS0tDQogbmV0 -L3N1bnJwYy94cHJ0cmRtYS92ZXJicy5jICAgICAgIHwgMjgwICsrKysrKy0tLS0tLQ0KIG5ldC9z -dW5ycGMveHBydHJkbWEveHBydF9yZG1hLmggICB8IDExNiArKy0tLQ0KIG5ldC9zdW5ycGMveHBy -dHNvY2suYyAgICAgICAgICAgICB8ICAzNiArLQ0KIDQ1IGZpbGVzIGNoYW5nZWQsIDE5OTUgaW5z -ZXJ0aW9ucygrKSwgODIxIGRlbGV0aW9ucygtKQ0KIGNyZWF0ZSBtb2RlIDEwMDY0NCBpbmNsdWRl -L3RyYWNlL2V2ZW50cy9yZG1hLmgNCiBjcmVhdGUgbW9kZSAxMDA2NDQgaW5jbHVkZS90cmFjZS9l -dmVudHMvcnBjcmRtYS5oDQoNCi0tIA0KVHJvbmQgTXlrbGVidXN0DQpMaW51eCBORlMgY2xpZW50 -IG1haW50YWluZXIsIFByaW1hcnlEYXRhDQp0cm9uZC5teWtsZWJ1c3RAcHJpbWFyeWRhdGEuY29t -DQo= +Hi Linus, + +The following changes since commit a8750ddca918032d6349adbf9a4b6555e7db20da: + + Linux 4.15-rc8 (2018-01-14 15:32:30 -0800) + +are available in the Git repository at: + + git://git.linux-nfs.org/projects/trondmy/linux-nfs.git tags/nfs-for-4.16-1 + +for you to fetch changes up to e231c6879cfd44e4fffd384bb6dd7d313249a523: + + NFS: Fix a race between mmap() and O_DIRECT (2018-01-28 22:00:15 -0500) + +---------------------------------------------------------------- +NFS client updates for Linux 4.16 + +Highlights include: + +Stable bugfixes: +- Fix breakages in the nfsstat utility due to the inclusion of the NFSv4 + LOOKUPP operation. +- Fix a NULL pointer dereference in nfs_idmap_prepare_pipe_upcall() due to + nfs_idmap_legacy_upcall() being called without an 'aux' parameter. +- Fix a refcount leak in the standard O_DIRECT error path. +- Fix a refcount leak in the pNFS O_DIRECT fallback to MDS path. +- Fix CPU latency issues with nfs_commit_release_pages() +- Fix the LAYOUTUNAVAILABLE error case in the file layout type. +- NFS: Fix a race between mmap() and O_DIRECT + +Features: +- Support the statx() mask and query flags to enable optimisations when + the user is requesting only attributes that are already up to date in + the inode cache, or is specifying the AT_STATX_DONT_SYNC flag. +- Add a module alias for the SCSI pNFS layout type. + +Bugfixes: +- Automounting when resolving a NFSv4 referral should preserve the RDMA + transport protocol settings. +- Various other RDMA bugfixes from Chuck. +- pNFS block layout fixes. +- Always set NFS_LOCK_LOST when a lock is lost. + +---------------------------------------------------------------- +Arnd Bergmann (1): + nfs: remove unused label in nfs_encode_fh() + +Benjamin Coddington (7): + NFS: remove unused offset arg in nfs_pgio_rpcsetup + pnfs/blocklayout: Add module alias for LAYOUT4_SCSI + pnfs/blocklayout: set PNFS_LAYOUTRETURN_ON_ERROR + pnfs/blocklayout: handle transient devices + SUNRPC: Fix null rpc_clnt dereference in rpc_task_queued tracepoint + pnfs/blocklayout: pnfs_block_dev_map uses bytes, not sectors + pnfs/blocklayout: Ensure disk address in block device map + +Chuck Lever (39): + nfs: Define NFS_RDMA_PORT + nfs: Referrals should use the same proto setting as their parent + nfs: Update server port after referral or migration + SUNRPC: Remove rpc_protocol() + xprtrdma: Fix buffer leak after transport set up failure + xprtrdma: Fix backchannel allocation of extra rpcrdma_reps + xprtrdma: Eliminate unnecessary lock cycle in xprt_rdma_send_request + xprtrdma: Per-mode handling for Remote Invalidation + xprtrdma: Remove ri_reminv_expected + xprtrdma: Remove unused padding variables + xprtrdma: Initialize the xprt address string array earlier + xprtrdma: Remove another sockaddr_storage field (cdata::addr) + xprtrdma: Support IPv6 in xprt_rdma_set_port + xprtrdma: Move unmap-safe logic to rpcrdma_marshal_req + xprtrdma: buf_free not called for CB replies + xprtrdma: Split xprt_rdma_send_request + xprtrdma: Don't clear RPC_BC_PA_IN_USE on pre-allocated rpc_rqst's + xprtrdma: Replace all usage of "frmr" with "frwr" + xprtrdma: Remove usage of "mw" + xprtrdma: Introduce rpcrdma_mw_unmap_and_put + nfs: Use proper enum definitions for nfs_show_stable + rdma/ib: Add trace point macros to display human-readable values + rpcrdma: infrastructure for static trace points in rpcrdma.ko + xprtrdma: Add trace points in RPC Call transmit paths + xprtrdma: Add trace points in the RPC Reply handler paths + xprtrdma: Add trace points to instrument memory registration + xprtrdma: Add trace points in reply decoder path + xprtrdma: Add trace points to instrument memory invalidation + xprtrdma: Add trace points to instrument MR allocation and recovery + xprtrdma: Add trace points for connect events + xprtrdma: Add trace points in the client-side backchannel code paths + xprtrdma: Add trace points to instrument QP and CQ access upcalls + xprtrdma: Instrument allocation/release of rpcrdma_req/rep objects + xprtrdma: Fix "bytes registered" accounting + xprtrdma: Correct some documenting comments + SUNRPC: Trace xprt_timer events + sunrpc: Format RPC events consistently for display + SUNRPC: task_run_action should display tk_callback + SUNRPC: Micro-optimize __rpc_execute + +Elena Reshetova (4): + lockd: convert nlm_host.h_count from atomic_t to refcount_t + lockd: convert nsm_handle.sm_count from atomic_t to refcount_t + lockd: convert nlm_lockowner.count from atomic_t to refcount_t + lockd: convert nlm_rqst.a_count from atomic_t to refcount_t + +Eric Biggers (1): + NFS: reject request for id_legacy key without auxdata + +J. Bruce Fields (1): + NFS: commit direct writes even if they fail partially + +Jan Chochol (1): + nfs: Do not convert nfs_idmap_cache_timeout to jiffies + +NeilBrown (2): + nfs: remove dead code from nfs_encode_fh() + NFSv4: always set NFS_LOCK_LOST when a lock is lost. + +Scott Mayhew (1): + nfs/pnfs: fix nfs_direct_req ref leak when i/o falls back to the mds + +Tigran Mkrtchyan (1): + nfs41: do not return ENOMEM on LAYOUTUNAVAILABLE + +Trond Myklebust (12): + NFS: Add a cond_resched() to nfs_commit_release_pages() + NFSv4: Convert CLOSE to use nfs4_async_handle_exception() + NFSv4: Convert DELEGRETURN to use nfs4_handle_exception() + NFSv4: Convert LOCKU to use nfs4_async_handle_exception() + NFS: Fix nfsstat breakage due to LOOKUPP + Support statx() mask and query flags parameters + SUNRPC: Chunk reading of replies from the server + SUNRPC: Add explicit rescheduling points in the receive path + Merge tag 'nfs-rdma-for-4.16-1' of git://git.linux-nfs.org/projects/anna/linux-nfs + lockd: Fix server refcounting + NFS: Remove a redundant call to unmap_mapping_range() + NFS: Fix a race between mmap() and O_DIRECT + + fs/lockd/clntproc.c | 14 +- + fs/lockd/host.c | 22 +- + fs/lockd/mon.c | 14 +- + fs/lockd/svcproc.c | 2 +- + fs/nfs/blocklayout/blocklayout.c | 94 +++- + fs/nfs/blocklayout/blocklayout.h | 7 +- + fs/nfs/blocklayout/dev.c | 7 +- + fs/nfs/direct.c | 4 +- + fs/nfs/export.c | 5 - + fs/nfs/filelayout/filelayout.c | 4 +- + fs/nfs/inode.c | 53 ++- + fs/nfs/io.c | 2 +- + fs/nfs/nfs4client.c | 24 +- + fs/nfs/nfs4idmap.c | 6 +- + fs/nfs/nfs4namespace.c | 2 - + fs/nfs/nfs4proc.c | 42 +- + fs/nfs/nfs4state.c | 5 +- + fs/nfs/nfs4sysctl.c | 2 +- + fs/nfs/nfs4xdr.c | 64 +-- + fs/nfs/nfstrace.h | 22 +- + fs/nfs/pagelist.c | 8 +- + fs/nfs/pnfs.c | 6 +- + fs/nfs/pnfs.h | 6 +- + fs/nfs/pnfs_dev.c | 1 - + fs/nfs/write.c | 2 + + include/linux/lockd/lockd.h | 9 +- + include/linux/nfs4.h | 12 +- + include/linux/sunrpc/clnt.h | 1 - + include/linux/sunrpc/xprtrdma.h | 2 +- + include/trace/events/rdma.h | 129 ++++++ + include/trace/events/rpcrdma.h | 890 ++++++++++++++++++++++++++++++++++++++ + include/trace/events/sunrpc.h | 12 +- + include/uapi/linux/nfs.h | 1 + + net/sunrpc/clnt.c | 16 - + net/sunrpc/sched.c | 26 +- + net/sunrpc/xprt.c | 2 +- + net/sunrpc/xprtrdma/backchannel.c | 78 ++-- + net/sunrpc/xprtrdma/fmr_ops.c | 157 ++++--- + net/sunrpc/xprtrdma/frwr_ops.c | 329 +++++++------- + net/sunrpc/xprtrdma/module.c | 12 +- + net/sunrpc/xprtrdma/rpc_rdma.c | 162 +++---- + net/sunrpc/xprtrdma/transport.c | 128 +++--- + net/sunrpc/xprtrdma/verbs.c | 280 ++++++------ + net/sunrpc/xprtrdma/xprt_rdma.h | 116 ++--- + net/sunrpc/xprtsock.c | 36 +- + 45 files changed, 1995 insertions(+), 821 deletions(-) + create mode 100644 include/trace/events/rdma.h + create mode 100644 include/trace/events/rpcrdma.h + +-- +Trond Myklebust +Linux NFS client maintainer, PrimaryData +trond.myklebust@primarydata.com diff --git a/a/content_digest b/N1/content_digest index 83d3089..7cfff71 100644 --- a/a/content_digest +++ b/N1/content_digest @@ -6,155 +6,194 @@ " linux-nfs@vger.kernel.org <linux-nfs@vger.kernel.org>\0" "\00:1\0" "b\0" - "SGkgTGludXMsDQoNClRoZSBmb2xsb3dpbmcgY2hhbmdlcyBzaW5jZSBjb21taXQgYTg3NTBkZGNh\n" - "OTE4MDMyZDYzNDlhZGJmOWE0YjY1NTVlN2RiMjBkYToNCg0KICBMaW51eCA0LjE1LXJjOCAoMjAx\n" - "OC0wMS0xNCAxNTozMjozMCAtMDgwMCkNCg0KYXJlIGF2YWlsYWJsZSBpbiB0aGUgR2l0IHJlcG9z\n" - "aXRvcnkgYXQ6DQoNCiAgZ2l0Oi8vZ2l0LmxpbnV4LW5mcy5vcmcvcHJvamVjdHMvdHJvbmRteS9s\n" - "aW51eC1uZnMuZ2l0IHRhZ3MvbmZzLWZvci00LjE2LTENCg0KZm9yIHlvdSB0byBmZXRjaCBjaGFu\n" - "Z2VzIHVwIHRvIGUyMzFjNjg3OWNmZDQ0ZTRmZmZkMzg0YmI2ZGQ3ZDMxMzI0OWE1MjM6DQoNCiAg\n" - "TkZTOiBGaXggYSByYWNlIGJldHdlZW4gbW1hcCgpIGFuZCBPX0RJUkVDVCAoMjAxOC0wMS0yOCAy\n" - "MjowMDoxNSAtMDUwMCkNCg0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t\n" - "LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KTkZTIGNsaWVudCB1cGRhdGVzIGZvciBMaW51eCA0\n" - "LjE2DQoNCkhpZ2hsaWdodHMgaW5jbHVkZToNCg0KU3RhYmxlIGJ1Z2ZpeGVzOg0KLSBGaXggYnJl\n" - "YWthZ2VzIGluIHRoZSBuZnNzdGF0IHV0aWxpdHkgZHVlIHRvIHRoZSBpbmNsdXNpb24gb2YgdGhl\n" - "IE5GU3Y0DQogIExPT0tVUFAgb3BlcmF0aW9uLg0KLSBGaXggYSBOVUxMIHBvaW50ZXIgZGVyZWZl\n" - "cmVuY2UgaW4gbmZzX2lkbWFwX3ByZXBhcmVfcGlwZV91cGNhbGwoKSBkdWUgdG8NCiAgbmZzX2lk\n" - "bWFwX2xlZ2FjeV91cGNhbGwoKSBiZWluZyBjYWxsZWQgd2l0aG91dCBhbiAnYXV4JyBwYXJhbWV0\n" - "ZXIuDQotIEZpeCBhIHJlZmNvdW50IGxlYWsgaW4gdGhlIHN0YW5kYXJkIE9fRElSRUNUIGVycm9y\n" - "IHBhdGguDQotIEZpeCBhIHJlZmNvdW50IGxlYWsgaW4gdGhlIHBORlMgT19ESVJFQ1QgZmFsbGJh\n" - "Y2sgdG8gTURTIHBhdGguDQotIEZpeCBDUFUgbGF0ZW5jeSBpc3N1ZXMgd2l0aCBuZnNfY29tbWl0\n" - "X3JlbGVhc2VfcGFnZXMoKQ0KLSBGaXggdGhlIExBWU9VVFVOQVZBSUxBQkxFIGVycm9yIGNhc2Ug\n" - "aW4gdGhlIGZpbGUgbGF5b3V0IHR5cGUuDQotIE5GUzogRml4IGEgcmFjZSBiZXR3ZWVuIG1tYXAo\n" - "KSBhbmQgT19ESVJFQ1QNCg0KRmVhdHVyZXM6DQotIFN1cHBvcnQgdGhlIHN0YXR4KCkgbWFzayBh\n" - "bmQgcXVlcnkgZmxhZ3MgdG8gZW5hYmxlIG9wdGltaXNhdGlvbnMgd2hlbg0KICB0aGUgdXNlciBp\n" - "cyByZXF1ZXN0aW5nIG9ubHkgYXR0cmlidXRlcyB0aGF0IGFyZSBhbHJlYWR5IHVwIHRvIGRhdGUg\n" - "aW4NCiAgdGhlIGlub2RlIGNhY2hlLCBvciBpcyBzcGVjaWZ5aW5nIHRoZSBBVF9TVEFUWF9ET05U\n" - "X1NZTkMgZmxhZy4NCi0gQWRkIGEgbW9kdWxlIGFsaWFzIGZvciB0aGUgU0NTSSBwTkZTIGxheW91\n" - "dCB0eXBlLg0KDQpCdWdmaXhlczoNCi0gQXV0b21vdW50aW5nIHdoZW4gcmVzb2x2aW5nIGEgTkZT\n" - "djQgcmVmZXJyYWwgc2hvdWxkIHByZXNlcnZlIHRoZSBSRE1BDQogIHRyYW5zcG9ydCBwcm90b2Nv\n" - "bCBzZXR0aW5ncy4NCi0gVmFyaW91cyBvdGhlciBSRE1BIGJ1Z2ZpeGVzIGZyb20gQ2h1Y2suDQot\n" - "IHBORlMgYmxvY2sgbGF5b3V0IGZpeGVzLg0KLSBBbHdheXMgc2V0IE5GU19MT0NLX0xPU1Qgd2hl\n" - "biBhIGxvY2sgaXMgbG9zdC4NCg0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t\n" - "LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KQXJuZCBCZXJnbWFubiAoMSk6DQogICAgICBu\n" - "ZnM6IHJlbW92ZSB1bnVzZWQgbGFiZWwgaW4gbmZzX2VuY29kZV9maCgpDQoNCkJlbmphbWluIENv\n" - "ZGRpbmd0b24gKDcpOg0KICAgICAgTkZTOiByZW1vdmUgdW51c2VkIG9mZnNldCBhcmcgaW4gbmZz\n" - "X3BnaW9fcnBjc2V0dXANCiAgICAgIHBuZnMvYmxvY2tsYXlvdXQ6IEFkZCBtb2R1bGUgYWxpYXMg\n" - "Zm9yIExBWU9VVDRfU0NTSQ0KICAgICAgcG5mcy9ibG9ja2xheW91dDogc2V0IFBORlNfTEFZT1VU\n" - "UkVUVVJOX09OX0VSUk9SDQogICAgICBwbmZzL2Jsb2NrbGF5b3V0OiBoYW5kbGUgdHJhbnNpZW50\n" - "IGRldmljZXMNCiAgICAgIFNVTlJQQzogRml4IG51bGwgcnBjX2NsbnQgZGVyZWZlcmVuY2UgaW4g\n" - "cnBjX3Rhc2tfcXVldWVkIHRyYWNlcG9pbnQNCiAgICAgIHBuZnMvYmxvY2tsYXlvdXQ6IHBuZnNf\n" - "YmxvY2tfZGV2X21hcCB1c2VzIGJ5dGVzLCBub3Qgc2VjdG9ycw0KICAgICAgcG5mcy9ibG9ja2xh\n" - "eW91dDogRW5zdXJlIGRpc2sgYWRkcmVzcyBpbiBibG9jayBkZXZpY2UgbWFwDQoNCkNodWNrIExl\n" - "dmVyICgzOSk6DQogICAgICBuZnM6IERlZmluZSBORlNfUkRNQV9QT1JUDQogICAgICBuZnM6IFJl\n" - "ZmVycmFscyBzaG91bGQgdXNlIHRoZSBzYW1lIHByb3RvIHNldHRpbmcgYXMgdGhlaXIgcGFyZW50\n" - "DQogICAgICBuZnM6IFVwZGF0ZSBzZXJ2ZXIgcG9ydCBhZnRlciByZWZlcnJhbCBvciBtaWdyYXRp\n" - "b24NCiAgICAgIFNVTlJQQzogUmVtb3ZlIHJwY19wcm90b2NvbCgpDQogICAgICB4cHJ0cmRtYTog\n" - "Rml4IGJ1ZmZlciBsZWFrIGFmdGVyIHRyYW5zcG9ydCBzZXQgdXAgZmFpbHVyZQ0KICAgICAgeHBy\n" - "dHJkbWE6IEZpeCBiYWNrY2hhbm5lbCBhbGxvY2F0aW9uIG9mIGV4dHJhIHJwY3JkbWFfcmVwcw0K\n" - "ICAgICAgeHBydHJkbWE6IEVsaW1pbmF0ZSB1bm5lY2Vzc2FyeSBsb2NrIGN5Y2xlIGluIHhwcnRf\n" - "cmRtYV9zZW5kX3JlcXVlc3QNCiAgICAgIHhwcnRyZG1hOiBQZXItbW9kZSBoYW5kbGluZyBmb3Ig\n" - "UmVtb3RlIEludmFsaWRhdGlvbg0KICAgICAgeHBydHJkbWE6IFJlbW92ZSByaV9yZW1pbnZfZXhw\n" - "ZWN0ZWQNCiAgICAgIHhwcnRyZG1hOiBSZW1vdmUgdW51c2VkIHBhZGRpbmcgdmFyaWFibGVzDQog\n" - "ICAgICB4cHJ0cmRtYTogSW5pdGlhbGl6ZSB0aGUgeHBydCBhZGRyZXNzIHN0cmluZyBhcnJheSBl\n" - "YXJsaWVyDQogICAgICB4cHJ0cmRtYTogUmVtb3ZlIGFub3RoZXIgc29ja2FkZHJfc3RvcmFnZSBm\n" - "aWVsZCAoY2RhdGE6OmFkZHIpDQogICAgICB4cHJ0cmRtYTogU3VwcG9ydCBJUHY2IGluIHhwcnRf\n" - "cmRtYV9zZXRfcG9ydA0KICAgICAgeHBydHJkbWE6IE1vdmUgdW5tYXAtc2FmZSBsb2dpYyB0byBy\n" - "cGNyZG1hX21hcnNoYWxfcmVxDQogICAgICB4cHJ0cmRtYTogYnVmX2ZyZWUgbm90IGNhbGxlZCBm\n" - "b3IgQ0IgcmVwbGllcw0KICAgICAgeHBydHJkbWE6IFNwbGl0IHhwcnRfcmRtYV9zZW5kX3JlcXVl\n" - "c3QNCiAgICAgIHhwcnRyZG1hOiBEb24ndCBjbGVhciBSUENfQkNfUEFfSU5fVVNFIG9uIHByZS1h\n" - "bGxvY2F0ZWQgcnBjX3Jxc3Qncw0KICAgICAgeHBydHJkbWE6IFJlcGxhY2UgYWxsIHVzYWdlIG9m\n" - "ICJmcm1yIiB3aXRoICJmcndyIg0KICAgICAgeHBydHJkbWE6IFJlbW92ZSB1c2FnZSBvZiAibXci\n" - "DQogICAgICB4cHJ0cmRtYTogSW50cm9kdWNlIHJwY3JkbWFfbXdfdW5tYXBfYW5kX3B1dA0KICAg\n" - "ICAgbmZzOiBVc2UgcHJvcGVyIGVudW0gZGVmaW5pdGlvbnMgZm9yIG5mc19zaG93X3N0YWJsZQ0K\n" - "ICAgICAgcmRtYS9pYjogQWRkIHRyYWNlIHBvaW50IG1hY3JvcyB0byBkaXNwbGF5IGh1bWFuLXJl\n" - "YWRhYmxlIHZhbHVlcw0KICAgICAgcnBjcmRtYTogaW5mcmFzdHJ1Y3R1cmUgZm9yIHN0YXRpYyB0\n" - "cmFjZSBwb2ludHMgaW4gcnBjcmRtYS5rbw0KICAgICAgeHBydHJkbWE6IEFkZCB0cmFjZSBwb2lu\n" - "dHMgaW4gUlBDIENhbGwgdHJhbnNtaXQgcGF0aHMNCiAgICAgIHhwcnRyZG1hOiBBZGQgdHJhY2Ug\n" - "cG9pbnRzIGluIHRoZSBSUEMgUmVwbHkgaGFuZGxlciBwYXRocw0KICAgICAgeHBydHJkbWE6IEFk\n" - "ZCB0cmFjZSBwb2ludHMgdG8gaW5zdHJ1bWVudCBtZW1vcnkgcmVnaXN0cmF0aW9uDQogICAgICB4\n" - "cHJ0cmRtYTogQWRkIHRyYWNlIHBvaW50cyBpbiByZXBseSBkZWNvZGVyIHBhdGgNCiAgICAgIHhw\n" - "cnRyZG1hOiBBZGQgdHJhY2UgcG9pbnRzIHRvIGluc3RydW1lbnQgbWVtb3J5IGludmFsaWRhdGlv\n" - "bg0KICAgICAgeHBydHJkbWE6IEFkZCB0cmFjZSBwb2ludHMgdG8gaW5zdHJ1bWVudCBNUiBhbGxv\n" - "Y2F0aW9uIGFuZCByZWNvdmVyeQ0KICAgICAgeHBydHJkbWE6IEFkZCB0cmFjZSBwb2ludHMgZm9y\n" - "IGNvbm5lY3QgZXZlbnRzDQogICAgICB4cHJ0cmRtYTogQWRkIHRyYWNlIHBvaW50cyBpbiB0aGUg\n" - "Y2xpZW50LXNpZGUgYmFja2NoYW5uZWwgY29kZSBwYXRocw0KICAgICAgeHBydHJkbWE6IEFkZCB0\n" - "cmFjZSBwb2ludHMgdG8gaW5zdHJ1bWVudCBRUCBhbmQgQ1EgYWNjZXNzIHVwY2FsbHMNCiAgICAg\n" - "IHhwcnRyZG1hOiBJbnN0cnVtZW50IGFsbG9jYXRpb24vcmVsZWFzZSBvZiBycGNyZG1hX3JlcS9y\n" - "ZXAgb2JqZWN0cw0KICAgICAgeHBydHJkbWE6IEZpeCAiYnl0ZXMgcmVnaXN0ZXJlZCIgYWNjb3Vu\n" - "dGluZw0KICAgICAgeHBydHJkbWE6IENvcnJlY3Qgc29tZSBkb2N1bWVudGluZyBjb21tZW50cw0K\n" - "ICAgICAgU1VOUlBDOiBUcmFjZSB4cHJ0X3RpbWVyIGV2ZW50cw0KICAgICAgc3VucnBjOiBGb3Jt\n" - "YXQgUlBDIGV2ZW50cyBjb25zaXN0ZW50bHkgZm9yIGRpc3BsYXkNCiAgICAgIFNVTlJQQzogdGFz\n" - "a19ydW5fYWN0aW9uIHNob3VsZCBkaXNwbGF5IHRrX2NhbGxiYWNrDQogICAgICBTVU5SUEM6IE1p\n" - "Y3JvLW9wdGltaXplIF9fcnBjX2V4ZWN1dGUNCg0KRWxlbmEgUmVzaGV0b3ZhICg0KToNCiAgICAg\n" - "IGxvY2tkOiBjb252ZXJ0IG5sbV9ob3N0LmhfY291bnQgZnJvbSBhdG9taWNfdCB0byByZWZjb3Vu\n" - "dF90DQogICAgICBsb2NrZDogY29udmVydCBuc21faGFuZGxlLnNtX2NvdW50IGZyb20gYXRvbWlj\n" - "X3QgdG8gcmVmY291bnRfdA0KICAgICAgbG9ja2Q6IGNvbnZlcnQgbmxtX2xvY2tvd25lci5jb3Vu\n" - "dCBmcm9tIGF0b21pY190IHRvIHJlZmNvdW50X3QNCiAgICAgIGxvY2tkOiBjb252ZXJ0IG5sbV9y\n" - "cXN0LmFfY291bnQgZnJvbSBhdG9taWNfdCB0byByZWZjb3VudF90DQoNCkVyaWMgQmlnZ2VycyAo\n" - "MSk6DQogICAgICBORlM6IHJlamVjdCByZXF1ZXN0IGZvciBpZF9sZWdhY3kga2V5IHdpdGhvdXQg\n" - "YXV4ZGF0YQ0KDQpKLiBCcnVjZSBGaWVsZHMgKDEpOg0KICAgICAgTkZTOiBjb21taXQgZGlyZWN0\n" - "IHdyaXRlcyBldmVuIGlmIHRoZXkgZmFpbCBwYXJ0aWFsbHkNCg0KSmFuIENob2Nob2wgKDEpOg0K\n" - "ICAgICAgbmZzOiBEbyBub3QgY29udmVydCBuZnNfaWRtYXBfY2FjaGVfdGltZW91dCB0byBqaWZm\n" - "aWVzDQoNCk5laWxCcm93biAoMik6DQogICAgICBuZnM6IHJlbW92ZSBkZWFkIGNvZGUgZnJvbSBu\n" - "ZnNfZW5jb2RlX2ZoKCkNCiAgICAgIE5GU3Y0OiBhbHdheXMgc2V0IE5GU19MT0NLX0xPU1Qgd2hl\n" - "biBhIGxvY2sgaXMgbG9zdC4NCg0KU2NvdHQgTWF5aGV3ICgxKToNCiAgICAgIG5mcy9wbmZzOiBm\n" - "aXggbmZzX2RpcmVjdF9yZXEgcmVmIGxlYWsgd2hlbiBpL28gZmFsbHMgYmFjayB0byB0aGUgbWRz\n" - "DQoNClRpZ3JhbiBNa3J0Y2h5YW4gKDEpOg0KICAgICAgbmZzNDE6IGRvIG5vdCByZXR1cm4gRU5P\n" - "TUVNIG9uIExBWU9VVFVOQVZBSUxBQkxFDQoNClRyb25kIE15a2xlYnVzdCAoMTIpOg0KICAgICAg\n" - "TkZTOiBBZGQgYSBjb25kX3Jlc2NoZWQoKSB0byBuZnNfY29tbWl0X3JlbGVhc2VfcGFnZXMoKQ0K\n" - "ICAgICAgTkZTdjQ6IENvbnZlcnQgQ0xPU0UgdG8gdXNlIG5mczRfYXN5bmNfaGFuZGxlX2V4Y2Vw\n" - "dGlvbigpDQogICAgICBORlN2NDogQ29udmVydCBERUxFR1JFVFVSTiB0byB1c2UgbmZzNF9oYW5k\n" - "bGVfZXhjZXB0aW9uKCkNCiAgICAgIE5GU3Y0OiBDb252ZXJ0IExPQ0tVIHRvIHVzZSBuZnM0X2Fz\n" - "eW5jX2hhbmRsZV9leGNlcHRpb24oKQ0KICAgICAgTkZTOiBGaXggbmZzc3RhdCBicmVha2FnZSBk\n" - "dWUgdG8gTE9PS1VQUA0KICAgICAgU3VwcG9ydCBzdGF0eCgpIG1hc2sgYW5kIHF1ZXJ5IGZsYWdz\n" - "IHBhcmFtZXRlcnMNCiAgICAgIFNVTlJQQzogQ2h1bmsgcmVhZGluZyBvZiByZXBsaWVzIGZyb20g\n" - "dGhlIHNlcnZlcg0KICAgICAgU1VOUlBDOiBBZGQgZXhwbGljaXQgcmVzY2hlZHVsaW5nIHBvaW50\n" - "cyBpbiB0aGUgcmVjZWl2ZSBwYXRoDQogICAgICBNZXJnZSB0YWcgJ25mcy1yZG1hLWZvci00LjE2\n" - "LTEnIG9mIGdpdDovL2dpdC5saW51eC1uZnMub3JnL3Byb2plY3RzL2FubmEvbGludXgtbmZzDQog\n" - "ICAgICBsb2NrZDogRml4IHNlcnZlciByZWZjb3VudGluZw0KICAgICAgTkZTOiBSZW1vdmUgYSBy\n" - "ZWR1bmRhbnQgY2FsbCB0byB1bm1hcF9tYXBwaW5nX3JhbmdlKCkNCiAgICAgIE5GUzogRml4IGEg\n" - "cmFjZSBiZXR3ZWVuIG1tYXAoKSBhbmQgT19ESVJFQ1QNCg0KIGZzL2xvY2tkL2NsbnRwcm9jLmMg\n" - "ICAgICAgICAgICAgICB8ICAxNCArLQ0KIGZzL2xvY2tkL2hvc3QuYyAgICAgICAgICAgICAgICAg\n" - "ICB8ICAyMiArLQ0KIGZzL2xvY2tkL21vbi5jICAgICAgICAgICAgICAgICAgICB8ICAxNCArLQ0K\n" - "IGZzL2xvY2tkL3N2Y3Byb2MuYyAgICAgICAgICAgICAgICB8ICAgMiArLQ0KIGZzL25mcy9ibG9j\n" - "a2xheW91dC9ibG9ja2xheW91dC5jICB8ICA5NCArKystDQogZnMvbmZzL2Jsb2NrbGF5b3V0L2Js\n" - "b2NrbGF5b3V0LmggIHwgICA3ICstDQogZnMvbmZzL2Jsb2NrbGF5b3V0L2Rldi5jICAgICAgICAg\n" - "IHwgICA3ICstDQogZnMvbmZzL2RpcmVjdC5jICAgICAgICAgICAgICAgICAgIHwgICA0ICstDQog\n" - "ZnMvbmZzL2V4cG9ydC5jICAgICAgICAgICAgICAgICAgIHwgICA1IC0NCiBmcy9uZnMvZmlsZWxh\n" - "eW91dC9maWxlbGF5b3V0LmMgICAgfCAgIDQgKy0NCiBmcy9uZnMvaW5vZGUuYyAgICAgICAgICAg\n" - "ICAgICAgICAgfCAgNTMgKystDQogZnMvbmZzL2lvLmMgICAgICAgICAgICAgICAgICAgICAgIHwg\n" - "ICAyICstDQogZnMvbmZzL25mczRjbGllbnQuYyAgICAgICAgICAgICAgIHwgIDI0ICstDQogZnMv\n" - "bmZzL25mczRpZG1hcC5jICAgICAgICAgICAgICAgIHwgICA2ICstDQogZnMvbmZzL25mczRuYW1l\n" - "c3BhY2UuYyAgICAgICAgICAgIHwgICAyIC0NCiBmcy9uZnMvbmZzNHByb2MuYyAgICAgICAgICAg\n" - "ICAgICAgfCAgNDIgKy0NCiBmcy9uZnMvbmZzNHN0YXRlLmMgICAgICAgICAgICAgICAgfCAgIDUg\n" - "Ky0NCiBmcy9uZnMvbmZzNHN5c2N0bC5jICAgICAgICAgICAgICAgfCAgIDIgKy0NCiBmcy9uZnMv\n" - "bmZzNHhkci5jICAgICAgICAgICAgICAgICAgfCAgNjQgKy0tDQogZnMvbmZzL25mc3RyYWNlLmgg\n" - "ICAgICAgICAgICAgICAgIHwgIDIyICstDQogZnMvbmZzL3BhZ2VsaXN0LmMgICAgICAgICAgICAg\n" - "ICAgIHwgICA4ICstDQogZnMvbmZzL3BuZnMuYyAgICAgICAgICAgICAgICAgICAgIHwgICA2ICst\n" - "DQogZnMvbmZzL3BuZnMuaCAgICAgICAgICAgICAgICAgICAgIHwgICA2ICstDQogZnMvbmZzL3Bu\n" - "ZnNfZGV2LmMgICAgICAgICAgICAgICAgIHwgICAxIC0NCiBmcy9uZnMvd3JpdGUuYyAgICAgICAg\n" - "ICAgICAgICAgICAgfCAgIDIgKw0KIGluY2x1ZGUvbGludXgvbG9ja2QvbG9ja2QuaCAgICAgICB8\n" - "ICAgOSArLQ0KIGluY2x1ZGUvbGludXgvbmZzNC5oICAgICAgICAgICAgICB8ICAxMiArLQ0KIGlu\n" - "Y2x1ZGUvbGludXgvc3VucnBjL2NsbnQuaCAgICAgICB8ICAgMSAtDQogaW5jbHVkZS9saW51eC9z\n" - "dW5ycGMveHBydHJkbWEuaCAgIHwgICAyICstDQogaW5jbHVkZS90cmFjZS9ldmVudHMvcmRtYS5o\n" - "ICAgICAgIHwgMTI5ICsrKysrKw0KIGluY2x1ZGUvdHJhY2UvZXZlbnRzL3JwY3JkbWEuaCAgICB8\n" - "IDg5MCArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKw0KIGluY2x1ZGUvdHJh\n" - "Y2UvZXZlbnRzL3N1bnJwYy5oICAgICB8ICAxMiArLQ0KIGluY2x1ZGUvdWFwaS9saW51eC9uZnMu\n" - "aCAgICAgICAgICB8ICAgMSArDQogbmV0L3N1bnJwYy9jbG50LmMgICAgICAgICAgICAgICAgIHwg\n" - "IDE2IC0NCiBuZXQvc3VucnBjL3NjaGVkLmMgICAgICAgICAgICAgICAgfCAgMjYgKy0NCiBuZXQv\n" - "c3VucnBjL3hwcnQuYyAgICAgICAgICAgICAgICAgfCAgIDIgKy0NCiBuZXQvc3VucnBjL3hwcnRy\n" - "ZG1hL2JhY2tjaGFubmVsLmMgfCAgNzggKystLQ0KIG5ldC9zdW5ycGMveHBydHJkbWEvZm1yX29w\n" - "cy5jICAgICB8IDE1NyArKysrLS0tDQogbmV0L3N1bnJwYy94cHJ0cmRtYS9mcndyX29wcy5jICAg\n" - "IHwgMzI5ICsrKysrKystLS0tLS0tDQogbmV0L3N1bnJwYy94cHJ0cmRtYS9tb2R1bGUuYyAgICAg\n" - "IHwgIDEyICstDQogbmV0L3N1bnJwYy94cHJ0cmRtYS9ycGNfcmRtYS5jICAgIHwgMTYyICsrKy0t\n" - "LS0NCiBuZXQvc3VucnBjL3hwcnRyZG1hL3RyYW5zcG9ydC5jICAgfCAxMjggKysrLS0tDQogbmV0\n" - "L3N1bnJwYy94cHJ0cmRtYS92ZXJicy5jICAgICAgIHwgMjgwICsrKysrKy0tLS0tLQ0KIG5ldC9z\n" - "dW5ycGMveHBydHJkbWEveHBydF9yZG1hLmggICB8IDExNiArKy0tLQ0KIG5ldC9zdW5ycGMveHBy\n" - "dHNvY2suYyAgICAgICAgICAgICB8ICAzNiArLQ0KIDQ1IGZpbGVzIGNoYW5nZWQsIDE5OTUgaW5z\n" - "ZXJ0aW9ucygrKSwgODIxIGRlbGV0aW9ucygtKQ0KIGNyZWF0ZSBtb2RlIDEwMDY0NCBpbmNsdWRl\n" - "L3RyYWNlL2V2ZW50cy9yZG1hLmgNCiBjcmVhdGUgbW9kZSAxMDA2NDQgaW5jbHVkZS90cmFjZS9l\n" - "dmVudHMvcnBjcmRtYS5oDQoNCi0tIA0KVHJvbmQgTXlrbGVidXN0DQpMaW51eCBORlMgY2xpZW50\n" - "IG1haW50YWluZXIsIFByaW1hcnlEYXRhDQp0cm9uZC5teWtsZWJ1c3RAcHJpbWFyeWRhdGEuY29t\n" - DQo= + "Hi Linus,\n" + "\n" + "The following changes since commit a8750ddca918032d6349adbf9a4b6555e7db20da:\n" + "\n" + " Linux 4.15-rc8 (2018-01-14 15:32:30 -0800)\n" + "\n" + "are available in the Git repository at:\n" + "\n" + " git://git.linux-nfs.org/projects/trondmy/linux-nfs.git tags/nfs-for-4.16-1\n" + "\n" + "for you to fetch changes up to e231c6879cfd44e4fffd384bb6dd7d313249a523:\n" + "\n" + " NFS: Fix a race between mmap() and O_DIRECT (2018-01-28 22:00:15 -0500)\n" + "\n" + "----------------------------------------------------------------\n" + "NFS client updates for Linux 4.16\n" + "\n" + "Highlights include:\n" + "\n" + "Stable bugfixes:\n" + "- Fix breakages in the nfsstat utility due to the inclusion of the NFSv4\n" + " LOOKUPP operation.\n" + "- Fix a NULL pointer dereference in nfs_idmap_prepare_pipe_upcall() due to\n" + " nfs_idmap_legacy_upcall() being called without an 'aux' parameter.\n" + "- Fix a refcount leak in the standard O_DIRECT error path.\n" + "- Fix a refcount leak in the pNFS O_DIRECT fallback to MDS path.\n" + "- Fix CPU latency issues with nfs_commit_release_pages()\n" + "- Fix the LAYOUTUNAVAILABLE error case in the file layout type.\n" + "- NFS: Fix a race between mmap() and O_DIRECT\n" + "\n" + "Features:\n" + "- Support the statx() mask and query flags to enable optimisations when\n" + " the user is requesting only attributes that are already up to date in\n" + " the inode cache, or is specifying the AT_STATX_DONT_SYNC flag.\n" + "- Add a module alias for the SCSI pNFS layout type.\n" + "\n" + "Bugfixes:\n" + "- Automounting when resolving a NFSv4 referral should preserve the RDMA\n" + " transport protocol settings.\n" + "- Various other RDMA bugfixes from Chuck.\n" + "- pNFS block layout fixes.\n" + "- Always set NFS_LOCK_LOST when a lock is lost.\n" + "\n" + "----------------------------------------------------------------\n" + "Arnd Bergmann (1):\n" + " nfs: remove unused label in nfs_encode_fh()\n" + "\n" + "Benjamin Coddington (7):\n" + " NFS: remove unused offset arg in nfs_pgio_rpcsetup\n" + " pnfs/blocklayout: Add module alias for LAYOUT4_SCSI\n" + " pnfs/blocklayout: set PNFS_LAYOUTRETURN_ON_ERROR\n" + " pnfs/blocklayout: handle transient devices\n" + " SUNRPC: Fix null rpc_clnt dereference in rpc_task_queued tracepoint\n" + " pnfs/blocklayout: pnfs_block_dev_map uses bytes, not sectors\n" + " pnfs/blocklayout: Ensure disk address in block device map\n" + "\n" + "Chuck Lever (39):\n" + " nfs: Define NFS_RDMA_PORT\n" + " nfs: Referrals should use the same proto setting as their parent\n" + " nfs: Update server port after referral or migration\n" + " SUNRPC: Remove rpc_protocol()\n" + " xprtrdma: Fix buffer leak after transport set up failure\n" + " xprtrdma: Fix backchannel allocation of extra rpcrdma_reps\n" + " xprtrdma: Eliminate unnecessary lock cycle in xprt_rdma_send_request\n" + " xprtrdma: Per-mode handling for Remote Invalidation\n" + " xprtrdma: Remove ri_reminv_expected\n" + " xprtrdma: Remove unused padding variables\n" + " xprtrdma: Initialize the xprt address string array earlier\n" + " xprtrdma: Remove another sockaddr_storage field (cdata::addr)\n" + " xprtrdma: Support IPv6 in xprt_rdma_set_port\n" + " xprtrdma: Move unmap-safe logic to rpcrdma_marshal_req\n" + " xprtrdma: buf_free not called for CB replies\n" + " xprtrdma: Split xprt_rdma_send_request\n" + " xprtrdma: Don't clear RPC_BC_PA_IN_USE on pre-allocated rpc_rqst's\n" + " xprtrdma: Replace all usage of \"frmr\" with \"frwr\"\n" + " xprtrdma: Remove usage of \"mw\"\n" + " xprtrdma: Introduce rpcrdma_mw_unmap_and_put\n" + " nfs: Use proper enum definitions for nfs_show_stable\n" + " rdma/ib: Add trace point macros to display human-readable values\n" + " rpcrdma: infrastructure for static trace points in rpcrdma.ko\n" + " xprtrdma: Add trace points in RPC Call transmit paths\n" + " xprtrdma: Add trace points in the RPC Reply handler paths\n" + " xprtrdma: Add trace points to instrument memory registration\n" + " xprtrdma: Add trace points in reply decoder path\n" + " xprtrdma: Add trace points to instrument memory invalidation\n" + " xprtrdma: Add trace points to instrument MR allocation and recovery\n" + " xprtrdma: Add trace points for connect events\n" + " xprtrdma: Add trace points in the client-side backchannel code paths\n" + " xprtrdma: Add trace points to instrument QP and CQ access upcalls\n" + " xprtrdma: Instrument allocation/release of rpcrdma_req/rep objects\n" + " xprtrdma: Fix \"bytes registered\" accounting\n" + " xprtrdma: Correct some documenting comments\n" + " SUNRPC: Trace xprt_timer events\n" + " sunrpc: Format RPC events consistently for display\n" + " SUNRPC: task_run_action should display tk_callback\n" + " SUNRPC: Micro-optimize __rpc_execute\n" + "\n" + "Elena Reshetova (4):\n" + " lockd: convert nlm_host.h_count from atomic_t to refcount_t\n" + " lockd: convert nsm_handle.sm_count from atomic_t to refcount_t\n" + " lockd: convert nlm_lockowner.count from atomic_t to refcount_t\n" + " lockd: convert nlm_rqst.a_count from atomic_t to refcount_t\n" + "\n" + "Eric Biggers (1):\n" + " NFS: reject request for id_legacy key without auxdata\n" + "\n" + "J. Bruce Fields (1):\n" + " NFS: commit direct writes even if they fail partially\n" + "\n" + "Jan Chochol (1):\n" + " nfs: Do not convert nfs_idmap_cache_timeout to jiffies\n" + "\n" + "NeilBrown (2):\n" + " nfs: remove dead code from nfs_encode_fh()\n" + " NFSv4: always set NFS_LOCK_LOST when a lock is lost.\n" + "\n" + "Scott Mayhew (1):\n" + " nfs/pnfs: fix nfs_direct_req ref leak when i/o falls back to the mds\n" + "\n" + "Tigran Mkrtchyan (1):\n" + " nfs41: do not return ENOMEM on LAYOUTUNAVAILABLE\n" + "\n" + "Trond Myklebust (12):\n" + " NFS: Add a cond_resched() to nfs_commit_release_pages()\n" + " NFSv4: Convert CLOSE to use nfs4_async_handle_exception()\n" + " NFSv4: Convert DELEGRETURN to use nfs4_handle_exception()\n" + " NFSv4: Convert LOCKU to use nfs4_async_handle_exception()\n" + " NFS: Fix nfsstat breakage due to LOOKUPP\n" + " Support statx() mask and query flags parameters\n" + " SUNRPC: Chunk reading of replies from the server\n" + " SUNRPC: Add explicit rescheduling points in the receive path\n" + " Merge tag 'nfs-rdma-for-4.16-1' of git://git.linux-nfs.org/projects/anna/linux-nfs\n" + " lockd: Fix server refcounting\n" + " NFS: Remove a redundant call to unmap_mapping_range()\n" + " NFS: Fix a race between mmap() and O_DIRECT\n" + "\n" + " fs/lockd/clntproc.c | 14 +-\n" + " fs/lockd/host.c | 22 +-\n" + " fs/lockd/mon.c | 14 +-\n" + " fs/lockd/svcproc.c | 2 +-\n" + " fs/nfs/blocklayout/blocklayout.c | 94 +++-\n" + " fs/nfs/blocklayout/blocklayout.h | 7 +-\n" + " fs/nfs/blocklayout/dev.c | 7 +-\n" + " fs/nfs/direct.c | 4 +-\n" + " fs/nfs/export.c | 5 -\n" + " fs/nfs/filelayout/filelayout.c | 4 +-\n" + " fs/nfs/inode.c | 53 ++-\n" + " fs/nfs/io.c | 2 +-\n" + " fs/nfs/nfs4client.c | 24 +-\n" + " fs/nfs/nfs4idmap.c | 6 +-\n" + " fs/nfs/nfs4namespace.c | 2 -\n" + " fs/nfs/nfs4proc.c | 42 +-\n" + " fs/nfs/nfs4state.c | 5 +-\n" + " fs/nfs/nfs4sysctl.c | 2 +-\n" + " fs/nfs/nfs4xdr.c | 64 +--\n" + " fs/nfs/nfstrace.h | 22 +-\n" + " fs/nfs/pagelist.c | 8 +-\n" + " fs/nfs/pnfs.c | 6 +-\n" + " fs/nfs/pnfs.h | 6 +-\n" + " fs/nfs/pnfs_dev.c | 1 -\n" + " fs/nfs/write.c | 2 +\n" + " include/linux/lockd/lockd.h | 9 +-\n" + " include/linux/nfs4.h | 12 +-\n" + " include/linux/sunrpc/clnt.h | 1 -\n" + " include/linux/sunrpc/xprtrdma.h | 2 +-\n" + " include/trace/events/rdma.h | 129 ++++++\n" + " include/trace/events/rpcrdma.h | 890 ++++++++++++++++++++++++++++++++++++++\n" + " include/trace/events/sunrpc.h | 12 +-\n" + " include/uapi/linux/nfs.h | 1 +\n" + " net/sunrpc/clnt.c | 16 -\n" + " net/sunrpc/sched.c | 26 +-\n" + " net/sunrpc/xprt.c | 2 +-\n" + " net/sunrpc/xprtrdma/backchannel.c | 78 ++--\n" + " net/sunrpc/xprtrdma/fmr_ops.c | 157 ++++---\n" + " net/sunrpc/xprtrdma/frwr_ops.c | 329 +++++++-------\n" + " net/sunrpc/xprtrdma/module.c | 12 +-\n" + " net/sunrpc/xprtrdma/rpc_rdma.c | 162 +++----\n" + " net/sunrpc/xprtrdma/transport.c | 128 +++---\n" + " net/sunrpc/xprtrdma/verbs.c | 280 ++++++------\n" + " net/sunrpc/xprtrdma/xprt_rdma.h | 116 ++---\n" + " net/sunrpc/xprtsock.c | 36 +-\n" + " 45 files changed, 1995 insertions(+), 821 deletions(-)\n" + " create mode 100644 include/trace/events/rdma.h\n" + " create mode 100644 include/trace/events/rpcrdma.h\n" + "\n" + "-- \n" + "Trond Myklebust\n" + "Linux NFS client maintainer, PrimaryData\n" + trond.myklebust@primarydata.com -52ff6a8dccc87f3ca6f0891c234ca447896d5b23cf1dc60ba184cad00ba9216a +6f18315c65bd07fc95cde1b66e4bbeeb137c1bebd62468b2f44b24db00b1f204
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.