diff for duplicates of <1469918203.3695.2.camel@primarydata.com> diff --git a/a/1.txt b/N1/1.txt index fd5c451..16b2c37 100644 --- a/a/1.txt +++ b/N1/1.txt @@ -1,219 +1,246 @@ -SGkgTGludXMsDQoNClRoZSBmb2xsb3dpbmcgY2hhbmdlcyBzaW5jZSBjb21taXQgOTJkMjFhYzc0 -YTllM2MwOWIwYjAxYzc2NGU1MzA2NTdlNGM4NWM0OToNCg0KICBMaW51eCA0LjctcmM3ICgyMDE2 -LTA3LTEwIDIwOjI0OjU5IC0wNzAwKQ0KDQphcmUgYXZhaWxhYmxlIGluIHRoZSBnaXQgcmVwb3Np -dG9yeSBhdDoNCg0KICBnaXQ6Ly9naXQubGludXgtbmZzLm9yZy9wcm9qZWN0cy90cm9uZG15L2xp -bnV4LW5mcy5naXQgdGFncy9uZnMtZm9yLTQuOC0xDQoNCmZvciB5b3UgdG8gZmV0Y2ggY2hhbmdl -cyB1cCB0byA5NDQxNzFjYmY0OTlkMzQ0NWM3NDlmN2MxM2M0NmRlMGE1NjRhOTA1Og0KDQogIHBO -RlM6IEFjdGl2ZWx5IHNldCBhdHRyaWJ1dGVzIGFzIGludmFsaWQgaWYgTEFZT1VUQ09NTUlUIGlz -IG91dHN0YW5kaW5nICgyMDE2LTA3LTI4IDE0OjQ5OjA4IC0wNDAwKQ0KDQpDaGVlcnMNCsKgIFRy -b25kDQoNCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t -LS0tLS0tLS0tLS0tLS0NCk5GUyBjbGllbnQgdXBkYXRlcyBmb3IgTGludXggNC44DQoNCkhpZ2hs -aWdodHMgaW5jbHVkZToNCg0KU3RhYmxlIGJ1Z2ZpeGVzOg0KIC0gbmZzOiBkb24ndCBjcmVhdGUg -emVyby1sZW5ndGggcmVxdWVzdHMNCiAtIFNldmVyYWwgTEFZT1VUR0VUIGJ1Z2ZpeGVzDQoNCkZl -YXR1cmVzOg0KIC0gU2V2ZXJhbCBwZXJmb3JtYW5jZSByZWxhdGVkIGZlYXR1cmVzDQogICAtIE1v -cmUgYWdncmVzc2l2ZSBjYWNoaW5nIHdoZW4gd2UgY2FuIHJlbHkgb24gY2xvc2UtdG8tb3BlbiBj -YWNoZQ0KICAgICBjb25zaXN0ZW5jeQ0KICAgLSBSZW1vdmUgc2VyaWFsaXNhdGlvbiBvZiBPX0RJ -UkVDVCByZWFkcyBhbmQgd3JpdGVzDQogICAtIE9wdGltaXNlIHNldmVyYWwgY29kZSBwYXRocyB0 -byBub3QgZmx1c2ggdG8gZGlzayB1bm5lY2Vzc2FyaWx5LiBIb3dldmVyDQogICAgIGFsbG93IGZv -ciB0aGUgaWRpb3N5bmNyYWNpZXMgb2YgcE5GUyBmb3IgdGhvc2UgbGF5b3V0IHR5cGVzIHRoYXQg -bmVlZA0KICAgICB0byBpc3N1ZSBhIExBWU9VVENPTU1JVCBiZWZvcmUgdGhlIG1ldGFkYXRhIGNh -biBiZSB1cGRhdGVkIG9uIHRoZSBzZXJ2ZXIuDQogICAtIFNVTlJQQyB1cGRhdGVzIHRvIHRoZSBj -bGllbnQgZGF0YSByZWNlaXZlIHBhdGgNCiAtIHBORlMvU0NTSSBzdXBwb3J0IFJIL0ZlZG9yYSBk -bS1tcGF0aCBkZXZpY2Ugbm9kZXMNCiAtIHBORlMgZmlsZXMvZmxleGZpbGVzIGNhbiBub3cgdXNl -IHVucHJpdmlsZWdlZCBwb3J0cyB3aGVuIHRoZSBnZW5lcmljIE5GUw0KICAgbW91bnQgb3B0aW9u -cyBhbGxvdyBpdC4NCg0KQnVnZml4ZXM6DQogLSBEb24ndCB1c2UgUkRNQSBkaXJlY3QgZGF0YSBw -bGFjZW1lbnQgdG9nZXRoZXIgd2l0aCBkYXRhIGludGVncml0eSBvcg0KICAgcHJpdmFjeSBzZWN1 -cml0eSBmbGF2b3Vycw0KIC0gUmVtb3ZlIHRoZSBSRE1BIEFMTFBIWVNJQ0FMIG1lbW9yeSByZWdp -c3RyYXRpb24gbW9kZSBhcyBpdCBoYXMgcG90ZW50aWFsDQogICBzZWN1cml0eSBob2xlcy4NCiAt -IFNldmVyYWwgbGF5b3V0IHJlY2FsbCBmaXhlcyB0byBpbXByb3ZlIE5GU3Y0LjEgcHJvdG9jb2wg -Y29tcGxpYW5jZS4NCiAtIEZpeCBhbiBPb3BzIGluIHRoZSBwTkZTIGZpbGVzIGFuZCBmbGV4Zmls -ZXMgY29ubmVjdGlvbiBzZXR1cCB0byB0aGUgRFMNCiAtIEFsbG93IHJldHJ5IG9mIG9wZXJhdGlv -bnMgdGhhdCB1c2VkIGEgcmV0dXJuZWQgZGVsZWdhdGlvbiBzdGF0ZWlkDQogLSBEb24ndCBtYXJr -IHRoZSBpbm9kZSBhcyByZXZhbGlkYXRlZCBpZiBhIExBWU9VVENPTU1JVCBpcyBvdXRzdGFuZGlu -Zw0KIC0gRml4IHdyaXRlYmFjayByYWNlcyBpbiBuZnM0X2NvcHlfcmFuZ2UoKSBhbmQgbmZzNDJf -cHJvY19kZWFsbG9jYXRlKCkNCg0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t -LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KQXJ0ZW0gU2F2a292ICgxKToNCiAgICAgIEZp -eCBOVUxMIHBvaW50ZXIgZGVyZWZlcmVuY2UgaW4gYmxfZnJlZV9kZXZpY2UoKS4NCg0KQmVuamFt -aW4gQ29kZGluZ3RvbiAoMyk6DQogICAgICBwbmZzL2Jsb2NrbGF5b3V0OiBwdXQgZGV2aWNlaWQg -bm9kZSBhZnRlciByZWxlYXNpbmcgYmxfZXh0X2xvY2sNCiAgICAgIG5mczogZG9uJ3QgY3JlYXRl -IHplcm8tbGVuZ3RoIHJlcXVlc3RzDQogICAgICBwTkZTOiBBY3RpdmVseSBzZXQgYXR0cmlidXRl -cyBhcyBpbnZhbGlkIGlmIExBWU9VVENPTU1JVCBpcyBvdXRzdGFuZGluZw0KDQpDaHJpc3RvcGgg -SGVsbHdpZyAoMyk6DQogICAgICBuZnMvYmxvY2tsYXlvdXQ6IHVzZSBwcm9wZXIgZm1vZGUgZm9y -IG9wZW5pbmcgYmxvY2sgZGV2aWNlcw0KICAgICAgbmZzL2Jsb2NrbGF5b3V0OiByZWZhY3RvciBv -cGVuLWJ5LXd3bg0KICAgICAgbmZzL2Jsb2NrbGF5b3V0OiBzdXBwb3J0IFJIL0ZlZG9yYSBkbS1t -cGF0aCBkZXZpY2Ugbm9kZXMNCg0KQ2h1Y2sgTGV2ZXIgKDI0KToNCiAgICAgIHhwcnRyZG1hOiBS -ZW1vdmUgRk1ScyBmcm9tIHRoZSB1bm1hcCBsaXN0IGFmdGVyIHVubWFwcGluZw0KICAgICAgeHBy -dHJkbWE6IENyZWF0ZSBjb21tb24gc2NhdHRlcmxpc3QgZmllbGRzIGluIHJwY3JkbWFfbXcNCiAg -ICAgIHhwcnRyZG1hOiBNb3ZlIGluaXQgYW5kIHJlbGVhc2UgaGVscGVycw0KICAgICAgeHBydHJk -bWE6IFJlbmFtZSBmaWVsZHMgaW4gcnBjcmRtYV9mbXINCiAgICAgIHhwcnRyZG1hOiBVc2Ugc2Nh -dHRlcmxpc3QgZm9yIERNQSBtYXBwaW5nIGFuZCB1bm1hcHBpbmcgdW5kZXIgRk1SDQogICAgICB4 -cHJ0cmRtYTogUmVmYWN0b3IgTVIgcmVjb3Zlcnkgd29yayBxdWV1ZXMNCiAgICAgIHhwcnRyZG1h -OiBEbyBub3QgbGVhayBhbiBNVyBkdXJpbmcgYSBETUEgbWFwIGZhaWx1cmUNCiAgICAgIHhwcnRy -ZG1hOiBSZW1vdmUgQUxMUEhZU0lDQUwgbWVtb3J5IHJlZ2lzdHJhdGlvbiBtb2RlDQogICAgICB4 -cHJ0cmRtYTogUmVtb3ZlIHJwY3JkbWFfbWFwX29uZSgpIGFuZCBmcmllbmRzDQogICAgICB4cHJ0 -cmRtYTogQ2xlYW4gdXAgZGV2aWNlIGNhcGFiaWxpdHkgZGV0ZWN0aW9uDQogICAgICB4cHJ0cmRt -YTogUmVwbHkgYnVmZmVyIGV4aGF1c3Rpb24gY2FuIGJlIGNhdGFzdHJvcGhpYw0KICAgICAgeHBy -dHJkbWE6IEhvbm9yIC0+c2VuZF9yZXF1ZXN0IEFQSSBjb250cmFjdA0KICAgICAgeHBydHJkbWE6 -IENodW5rIGxpc3QgZW5jb2RlcnMgbXVzdCBub3QgcmV0dXJuIHplcm8NCiAgICAgIHhwcnRyZG1h -OiBBbGxvY2F0ZSBNUnMgb24gZGVtYW5kDQogICAgICB4cHJ0cmRtYTogUmVsZWFzZSBvcnBoYW5l -ZCBNUnMgaW1tZWRpYXRlbHkNCiAgICAgIHhwcnRyZG1hOiBQbGFjZSByZWdpc3RlcmVkIE1XcyBv -biBhIHBlci1yZXEgbGlzdA0KICAgICAgeHBydHJkbWE6IENodW5rIGxpc3QgZW5jb2RlcnMgbm8g -bG9uZ2VyIHNoYXJlIG9uZSBybF9zZWdtZW50cyBhcnJheQ0KICAgICAgeHBydHJkbWE6IHJwY3Jk -bWFfaW5saW5lX2ZpeHVwKCkgb3ZlcnJ1bnMgdGhlIHJlY2VpdmUgcGFnZSBsaXN0DQogICAgICB4 -cHJ0cmRtYTogRG8gbm90IHVwZGF0ZSB7aGVhZCwgdGFpbH0uaW92X2xlbiBpbiBycGNyZG1hX2lu -bGluZV9maXh1cCgpDQogICAgICB4cHJ0cmRtYTogVXBkYXRlIG9ubHkgc3BlY2lmaWMgZmllbGRz -IGluIHByaXZhdGUgcmVjZWl2ZSBidWZmZXINCiAgICAgIHhwcnRyZG1hOiBDbGVhbiB1cCBmaXh1 -cF9jb3B5X2NvdW50IGFjY291bnRpbmcNCiAgICAgIHhwcnRyZG1hOiBObyBkaXJlY3QgZGF0YSBw -bGFjZW1lbnQgd2l0aCBrcmI1aSBhbmQga3JiNXANCiAgICAgIHN2YzogQXZvaWQgZ2FyYmFnZSBy -ZXBsaWVzIHdoZW4gcGNfZnVuYygpIHJldHVybnMgcnBjX2Ryb3BfcmVwbHkNCiAgICAgIE5GUzog -RG9uJ3QgZHJvcCBDQiByZXF1ZXN0cyB3aXRoIGludmFsaWQgcHJpbmNpcGFscw0KDQpGcmFuayBT -b3JlbnNvbiAoNCk6DQogICAgICBzdW5ycGM6IEZpeCBiaXQgY291bnQgd2hlbiBzZXR0aW5nIGhh -c2h0YWJsZSBzaXplIHRvIHBvd2VyLW9mLXR3bw0KICAgICAgc3VucnBjOiBGaXggcmVzZXJ2ZWQg -cG9ydCByYW5nZSBjYWxjdWxhdGlvbg0KICAgICAgc3VucnBjOiBQcmV2ZW50IHJlc3Zwb3J0IG1p -bi9tYXggaW52ZXJzaW9uIHZpYSBzeXNjdGwNCiAgICAgIHN1bnJwYzogUHJldmVudCByZXN2cG9y -dCBtaW4vbWF4IGludmVyc2lvbiB2aWEgc3lzZnMgYW5kIG1vZHVsZSBwYXJhbWV0ZXINCg0KS2lu -Z2xvbmcgTWVlICgyKToNCiAgICAgIG5mcy9ibG9ja2xheW91dDogTWFrZSBzdXJlIGNhbGN1bGF0 -ZSBzaWduYXR1cmUgbGVuZ3RoIGFsaWduZWQNCiAgICAgIG5mcy9ibG9ja2xheW91dDogQ2hlY2sg -bWF4IHV1aWRzIGFuZCBkZXZpY2VzIGJlZm9yZSBkZWNvZGluZw0KDQpTY290dCBNYXloZXcgKDEp -Og0KICAgICAgc3VucnBjOiBtb3ZlIE5PX0NSS0VZX1RJTUVPVVQgdG8gdGhlIGF1dGgtPmF1X2Zs -YWdzDQoNClN0ZXZlIERpY2tzb24gKDEpOg0KICAgICAgbW91bnQ6IHVzZSBzZWM9IHRoYXQgd2Fz -IHNwZWNpZmllZCBvbiB0aGUgY29tbWFuZCBsaW5lDQoNClRpZ3JhbiBNa3J0Y2h5YW4gKDIpOg0K -ICAgICAgbmZzNDogY2xudDogcmVzcGVjdCBub3Jlc3Zwb3J0IHdoZW4gZXN0YWJsaXNoaW5nIGNv -bm5lY3Rpb25zIHRvIERTZXMNCiAgICAgIG5mczQ6IGZsZXhmaWxlczogcmVzcGVjdCBub3Jlc3Zw -b3J0IHdoZW4gZXN0YWJsaXNoaW5nIGNvbm5lY3Rpb25zIHRvIERTZXMNCg0KVHJvbmQgTXlrbGVi -dXN0ICg2OSk6DQogICAgICBTVU5SUEM6IFNtYWxsIG9wdGltaXNhdGlvbiBvZiBjbGllbnQgcmVj -ZWl2ZQ0KICAgICAgU1VOUlBDOiBDb25zb2xpZGF0ZSB4c190Y3BfZGF0YV9yZWFkeSBhbmQgeHNf -ZGF0YV9yZWFkeQ0KICAgICAgU1VOUlBDOiBSUEMgdHJhbnNwb3J0IHF1ZXVlIG11c3QgYmUgbG93 -IGxhdGVuY3kNCiAgICAgIFNVTlJQQzogUmVkdWNlIGxhdGVuY3kgd2hlbiBzZW5kIHF1ZXVlIGlz -IGNvbmdlc3RlZA0KICAgICAgU1VOUlBDOiBGaXggc3VzcGljaW91cyBlbm9idWZzIGlzc3Vlcy4N -CiAgICAgIE5GUzogRG9uJ3QgZmx1c2ggY2FjaGVzIGZvciBhIGdldGF0dHIgdGhhdCByYWNlcyB3 -aXRoIHdyaXRlYmFjaw0KICAgICAgTkZTOiBDYWNoZSBhY2Nlc3MgY2hlY2tzIG1vcmUgYWdncmVz -c2l2ZWx5DQogICAgICBORlM6IENhY2hlIGFnZ3Jlc3NpdmVseSB3aGVuIGZpbGUgaXMgb3BlbiBm -b3Igd3JpdGluZw0KICAgICAgTkZTOiBLaWxsIE5GU19JTk9fTkZTX0lOT19GTFVTSElORzogaXQg -aXMgYSBwZXJmb3JtYW5jZSBraWxsZXINCiAgICAgIE5GUzogd3JpdGVwYWdlIG9mIGEgc2luZ2xl -IHBhZ2Ugc2hvdWxkIG5vdCBiZSBzeW5jaHJvbm91cw0KICAgICAgTkZTOiBEb24ndCBob2xkIHRo -ZSBpbm9kZSBsb2NrIGFjcm9zcyBmc3luYygpDQogICAgICBORlM6IERvbid0IGNhbGwgQ09NTUlU -IGluIC0+cmVsZWFzZXBhZ2UoKQ0KICAgICAgTkZTOiBGaXggYW4gT29wcyBpbiB0aGUgcE5GUyBm -aWxlcyBhbmQgZmxleGZpbGVzIGNvbm5lY3Rpb24gc2V0dXAgdG8gdGhlIERTDQogICAgICBORlMv -cG5mczogRG8gbm90IGNsb2JiZXIgZXhpc3RpbmcgcGdpb19kb25lX2NiIGluIG5mczRfcHJvY19y -ZWFkX3NldHVwDQogICAgICBORlN2NDogQWxsb3cgcmV0cnkgb2Ygb3BlcmF0aW9ucyB0aGF0IHVz -ZWQgYSByZXR1cm5lZCBkZWxlZ2F0aW9uIHN0YXRlaWQNCiAgICAgIHBORlMvZmlsZXM6IEZpeCBs -YXlvdXRjb21taXQgYWZ0ZXIgYSBjb21taXQgdG8gRFMNCiAgICAgIHBORlMvZmxleGZpbGVzOiBG -aXggbGF5b3V0Y29tbWl0IGFmdGVyIGEgY29tbWl0IHRvIERTDQogICAgICBwTkZTL2ZsZXhmaWxl -czogQ2xlYW4gdXAgY2FsbHMgdG8gcG5mc19zZXRfbGF5b3V0Y29tbWl0KCkNCiAgICAgIHBORlM6 -IEZpbGVzIGFuZCBmbGV4ZmlsZXMgYWx3YXlzIG5lZWQgdG8gY29tbWl0IGJlZm9yZSBsYXlvdXRj -b21taXQNCiAgICAgIHBORlM6IEVuc3VyZSB3ZSBsYXlvdXRjb21taXQgYmVmb3JlIHJldmFsaWRh -dGluZyBhdHRyaWJ1dGVzDQogICAgICBwTkZTOiBwbmZzX2xheW91dGNvbW1pdF9vdXRzdGFuZGlu -ZygpIGlzIG5vIGxvbmdlciB1c2VkIHdoZW4gIUNPTkZJR19ORlNfVjRfMQ0KICAgICAgTkZTOiBG -aXggT19ESVJFQ1QgdmVyaWZpZXIgcHJvYmxlbXMNCiAgICAgIE5GUzogRW5zdXJlIHdlIHJlc2V0 -IHRoZSB3cml0ZSB2ZXJpZmllciAnY29tbWl0dGVkJyB2YWx1ZSBvbiByZXNlbmQuDQogICAgICBO -RlM6IFJlbW92ZSByYWN5IHNpemUgbWFuaXB1bGF0aW9ucyBpbiBPX0RJUkVDVA0KICAgICAgTkZT -IENsZWFudXA6IG1vdmUgY2FsbCB0byBnZW5lcmljX3dyaXRlX2NoZWNrcygpIGludG8gZnMvbmZz -L2RpcmVjdC5jDQogICAgICBORlM6IE1vdmUgYnVmZmVyZWQgSS9PIGxvY2tpbmcgaW50byBuZnNf -ZmlsZV93cml0ZSgpDQogICAgICBORlM6IERvIG5vdCBzZXJpYWxpc2UgT19ESVJFQ1QgcmVhZHMg -YW5kIHdyaXRlcw0KICAgICAgTkZTOiBDbGVhbnVwIG5mc19kaXJlY3RfY29tcGxldGUoKQ0KICAg -ICAgTkZTOiBSZW1vdmUgcmVkdW5kYW50IHdhaXRzIGZvciBPX0RJUkVDVCBpbiBmc3luYygpIGFu -ZCB3cml0ZV9iZWdpbigpDQogICAgICBORlM6IFJlbW92ZSB1bnVzZWQgZnVuY3Rpb24gbmZzX3Jl -dmFsaWRhdGVfbWFwcGluZ19wcm90ZWN0ZWQoKQ0KICAgICAgTkZTOiBEbyBub3QgYWdncmVzc2l2 -ZWx5IGNhY2hlIGZpbGUgYXR0cmlidXRlcyBpbiB0aGUgY2FzZSBvZiBPX0RJUkVDVA0KICAgICAg -TkZTOiBHZXRhdHRyIGRvZXNuJ3QgcmVxdWlyZSBkYXRhIHN5bmMgc2VtYW50aWNzDQogICAgICBO -RlN2NC4yOiBGaXggYSByYWNlIGluIG5mczQyX3Byb2NfZGVhbGxvY2F0ZSgpDQogICAgICBORlN2 -NC4yOiBGaXggd3JpdGViYWNrIHJhY2VzIGluIG5mczRfY29weV9maWxlX3JhbmdlDQogICAgICBO -RlN2NC4yOiBsbHNlZWsoU0VFS19IT0xFKSBhbmQgbGxzZWVrKFNFRUtfREFUQSkgZG9uJ3QgcmVx -dWlyZSBkYXRhIHN5bmMNCiAgICAgIE5GUyBuZnNfdm1fcGFnZV9ta3dyaXRlOiBEb24ndCBmcmVl -emUgbWUsIEJyby4uLg0KICAgICAgTkZTdjQ6IFJldmVydCAiVHJ1bmNhdGluZyBmaWxlIG9wZW5z -IHNob3VsZCBhbHNvIHN5bmMgT19ESVJFQ1Qgd3JpdGVzIg0KICAgICAgTWVyZ2UgdGFnICduZnMt -cmRtYS00LjgtMScgb2YgZ2l0Oi8vZ2l0LmxpbnV4LW5mcy5vcmcvcHJvamVjdHMvYW5uYS9uZnMt -cmRtYQ0KICAgICAgU1VOUlBDOiBGaXggaW5maW5pdGUgbG9vcGluZyBpbiBycGNfY2xudF9pdGVy -YXRlX2Zvcl9lYWNoX3hwcnQNCiAgICAgIHBORlM6IERvbid0IG1hcmsgdGhlIGlub2RlIGFzIHJl -dmFsaWRhdGVkIGlmIGEgTEFZT1VUQ09NTUlUIGlzIG91dHN0YW5kaW5nDQogICAgICBwTkZTOiBG -aXggcG9zdC1sYXlvdXRnZXQgZXJyb3IgaGFuZGxpbmcgaW4gcG5mc191cGRhdGVfbGF5b3V0KCkN -CiAgICAgIHBORlM6IFNlcGFyYXRlIGhhbmRsaW5nIG9mIE5GUzRFUlJfTEFZT1VUVFJZTEFURVIg -YW5kIFJFQ0FMTENPTkZMSUNUDQogICAgICBwTkZTOiBIYW5kbGUgTkZTNEVSUl9SRUNBTExDT05G -TElDVCBjb3JyZWN0bHkgaW4gTEFZT1VUR0VUDQogICAgICBwTkZTOiBGaXggTEFZT1VUR0VUIGhh -bmRsaW5nIG9mIE5GUzRFUlJfQkFEX1NUQVRFSUQgYW5kIE5GUzRFUlJfRVhQSVJFRA0KICAgICAg -TWVyZ2UgdGFnICduZnMtcmRtYS00LjgtMicgb2YgZ2l0Oi8vZ2l0LmxpbnV4LW5mcy5vcmcvcHJv -amVjdHMvYW5uYS9uZnMtcmRtYQ0KICAgICAgcE5GUy9maWxlczogZmlsZWxheW91dF93cml0ZV9k -b25lX2NiIG11c3QgY2FsbCBuZnNfd3JpdGViYWNrX3VwZGF0ZV9pbm9kZSgpDQogICAgICBNZXJn -ZSBjb21taXQgJ2U3YmRlYTc3NTBlYicNCiAgICAgIHBORlM6IExBWU9VVFJFVFVSTiBzaG91bGQg -b25seSB1cGRhdGUgdGhlIHN0YXRlaWQgaWYgdGhlIGxheW91dCBpcyB2YWxpZA0KICAgICAgcE5G -UzogQ2xlYXIgdGhlIGxheW91dCByZXR1cm4gdHJhY2tpbmcgb24gbGF5b3V0IHJlaW5pdGlhbGlz -YXRpb24NCiAgICAgIHBORlM6IEFsd2F5cyB1cGRhdGUgdGhlIGxheW91dCBzdGF0ZWlkIGlmIE5G -U19MQVlPVVRfSU5WQUxJRF9TVElEIGlzIHNldA0KICAgICAgcE5GUzogQWx3YXlzIHVwZGF0ZSB0 -aGUgbGF5b3V0IGJhcnJpZXIgc2VxaWQgb24gTEFZT1VUR0VUDQogICAgICBwTkZTOiBGaXggQ0Jf -TEFZT1VUUkVDQUxMIHN0YXRlaWQgdmVyaWZpY2F0aW9uDQogICAgICBwTkZTOiBFbnN1cmUgbGF5 -b3V0cmV0dXJuIGFjdHMgYXMgYSBjb21wbGV0aW9uIGZvciBsYXlvdXQgY2FsbGJhY2tzDQogICAg -ICBwTkZTOiBEbyBub3Qgc2V0IHBsaF9yZXR1cm5fc2VxIGZvciBub24tY2FsbGJhY2sgcmVsYXRl -ZCBsYXlvdXRyZXR1cm5zDQogICAgICBORlM6IHBuZnNfbWFya19tYXRjaGluZ19sc2Vnc19yZXR1 -cm4oKSBzaG91bGQgbWF0Y2ggdGhlIGxheW91dCBzZXF1ZW5jZSBpZA0KICAgICAgcE5GUzogQ2xl -YW51cCAtIGRvbid0IG9wZW4gY29kZSBwbmZzX21hcmtfbGF5b3V0X3N0YXRlaWRfaW52YWxpZCgp -DQogICAgICBwTkZTOiBDbGVhciB0aGUgbGF5b3V0IG1ldGFkYXRhIGlmIHRoZSBzZXJ2ZXIgY2hh -bmdlZCB0aGUgbGF5b3V0IHN0YXRlaWQNCiAgICAgIHBORlM6IFJlbW92ZSByZWR1bmRhbnQgcG5m -c19tYXJrX2xheW91dF9yZXR1cm5lZF9pZl9lbXB0eSgpDQogICAgICBwTkZTOiBSZW1vdmUgcmVk -dW5kYW50IHN0YXRlaWQgaW52YWxpZGF0aW9uDQogICAgICBwTkZTOiBDbGVhbnVwIC0gZG8gbGF5 -b3V0IHNlZ21lbnQgaW5pdGlhbGlzYXRpb24gaW4gb25lIHBsYWNlDQogICAgICBwTkZTOiBSZW1v -dmUgcmVkdW5kYW50IHNtcF9tYigpIGZyb20gcG5mc19pbml0X2xzZWcoKQ0KICAgICAgU1VOUlBD -OiBGaXggYSBjb21waWxlciB3YXJuaW5nIGluIGZzL25mcy9jbG50LmMNCiAgICAgIE1lcmdlIGJy -YW5jaCAnc3VucnBjJw0KICAgICAgTWVyZ2UgYnJhbmNoICd3cml0ZWJhY2snDQogICAgICBNZXJn -ZSBicmFuY2ggJ3BuZnMnDQogICAgICBNZXJnZSBicmFuY2ggJ25mcy1yZG1hJw0KICAgICAgTkZT -djQ6IEZpeCB3YXJuaW5nICJubyBwcmV2aW91cyBwcm90b3R5cGUgZm9yIOKAmG5mczRfbGlzdHhh -dHRy4oCZIg0KICAgICAgTkZTdjQuMjogRml4IHdhcm5pbmcgInZhcmlhYmxlIOKAmHN0YXRlaWRz -4oCZIHNldCBidXQgbm90IHVzZWQiDQogICAgICBORlN2NDogQ2xlYW4gdXAgbG9va3VwIG9mIFNF -Q0lORk9fTk9fTkFNRQ0KDQprYnVpbGQgdGVzdCByb2JvdCAoMSk6DQogICAgICB4cHJ0cmRtYTog -Zml4IHNlbWljb2xvbi5jb2NjaSB3YXJuaW5ncw0KDQogZnMvbmZzL01ha2VmaWxlICAgICAgICAg -ICAgICAgICAgICAgICAgfCAgIDIgKy0NCiBmcy9uZnMvYmxvY2tsYXlvdXQvZGV2LmMgICAgICAg -ICAgICAgICB8IDExMCArKysrKysrLS0tDQogZnMvbmZzL2Jsb2NrbGF5b3V0L2V4dGVudF90cmVl -LmMgICAgICAgfCAgMjcgKystDQogZnMvbmZzL2NhbGxiYWNrX3Byb2MuYyAgICAgICAgICAgICAg -ICAgfCAgNjQgKysrKy0tDQogZnMvbmZzL2NhbGxiYWNrX3hkci5jICAgICAgICAgICAgICAgICAg -fCAgIDYgKy0NCiBmcy9uZnMvY2xpZW50LmMgICAgICAgICAgICAgICAgICAgICAgICB8ICAyMiAr -LQ0KIGZzL25mcy9kaXIuYyAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDUyICsrKy0tDQog -ZnMvbmZzL2RpcmVjdC5jICAgICAgICAgICAgICAgICAgICAgICAgfCAgOTMgKysrLS0tLS0NCiBm -cy9uZnMvZmlsZS5jICAgICAgICAgICAgICAgICAgICAgICAgICB8IDEwMCArKystLS0tLS0NCiBm -cy9uZnMvZmlsZWxheW91dC9maWxlbGF5b3V0LmMgICAgICAgICB8ICAxOCArLQ0KIGZzL25mcy9m -bGV4ZmlsZWxheW91dC9mbGV4ZmlsZWxheW91dC5jIHwgIDIzICstDQogZnMvbmZzL2lub2RlLmMg -ICAgICAgICAgICAgICAgICAgICAgICAgfCAxMzggKysrKysrLS0tLS0tDQogZnMvbmZzL2ludGVy -bmFsLmggICAgICAgICAgICAgICAgICAgICAgfCAgNjIgKysrKystDQogZnMvbmZzL2lvLmMgICAg -ICAgICAgICAgICAgICAgICAgICAgICAgfCAxNDcgKysrKysrKysrKysrKw0KIGZzL25mcy9uZnMz -Y2xpZW50LmMgICAgICAgICAgICAgICAgICAgIHwgIDE0ICstDQogZnMvbmZzL25mczQycHJvYy5j -ICAgICAgICAgICAgICAgICAgICAgfCAgMjQgKystDQogZnMvbmZzL25mczQyeGRyLmMgICAgICAg -ICAgICAgICAgICAgICAgfCAgMTIgKy0NCiBmcy9uZnMvbmZzNF9mcy5oICAgICAgICAgICAgICAg -ICAgICAgICB8ICAgMSArDQogZnMvbmZzL25mczRjbGllbnQuYyAgICAgICAgICAgICAgICAgICAg -fCAgMjYgKystDQogZnMvbmZzL25mczRmaWxlLmMgICAgICAgICAgICAgICAgICAgICAgfCAgMTYg -Ky0NCiBmcy9uZnMvbmZzNHByb2MuYyAgICAgICAgICAgICAgICAgICAgICB8IDE1MyArKysrKyst -LS0tLS0tDQogZnMvbmZzL25mczR4ZHIuYyAgICAgICAgICAgICAgICAgICAgICAgfCAgMTEgKy0N -CiBmcy9uZnMvbmZzdHJhY2UuaCAgICAgICAgICAgICAgICAgICAgICB8ICAgMSAtDQogZnMvbmZz -L3BuZnMuYyAgICAgICAgICAgICAgICAgICAgICAgICAgfCAxOTEgKysrKysrKysrKy0tLS0tLS0N -CiBmcy9uZnMvcG5mcy5oICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAzNCArKy0NCiBmcy9u -ZnMvcG5mc19uZnMuYyAgICAgICAgICAgICAgICAgICAgICB8ICAxMyArLQ0KIGZzL25mcy9zdXBl -ci5jICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDE0ICstDQogZnMvbmZzL3dyaXRlLmMgICAg -ICAgICAgICAgICAgICAgICAgICAgfCAgNDQgKystLQ0KIGluY2x1ZGUvbGludXgvbmZzX2ZzLmgg -ICAgICAgICAgICAgICAgIHwgICAzICstDQogaW5jbHVkZS9saW51eC9uZnNfeGRyLmggICAgICAg -ICAgICAgICAgfCAgIDUgKy0NCiBpbmNsdWRlL2xpbnV4L3N1bnJwYy9hdXRoLmggICAgICAgICAg -ICB8ICAgOSArLQ0KIGluY2x1ZGUvbGludXgvc3VucnBjL2dzc19hcGkuaCAgICAgICAgIHwgICAy -ICsNCiBpbmNsdWRlL2xpbnV4L3N1bnJwYy9zY2hlZC5oICAgICAgICAgICB8ICAgNSArDQogaW5j -bHVkZS9saW51eC9zdW5ycGMveHBydHNvY2suaCAgICAgICAgfCAgIDEgKw0KIG5ldC9zdW5ycGMv -YXV0aC5jICAgICAgICAgICAgICAgICAgICAgIHwgICA4ICstDQogbmV0L3N1bnJwYy9hdXRoX2dl -bmVyaWMuYyAgICAgICAgICAgICAgfCAgIDkgKy0NCiBuZXQvc3VucnBjL2F1dGhfZ3NzL2F1dGhf -Z3NzLmMgICAgICAgICB8ICAgMyArDQogbmV0L3N1bnJwYy9hdXRoX2dzcy9nc3Nfa3JiNV9tZWNo -LmMgICAgfCAgIDIgKw0KIG5ldC9zdW5ycGMvYXV0aF9nc3MvZ3NzX21lY2hfc3dpdGNoLmMgIHwg -IDEyICsrDQogbmV0L3N1bnJwYy9hdXRoX251bGwuYyAgICAgICAgICAgICAgICAgfCAgIDEgKw0K -IG5ldC9zdW5ycGMvYXV0aF91bml4LmMgICAgICAgICAgICAgICAgIHwgICAxICsNCiBuZXQvc3Vu -cnBjL2NsbnQuYyAgICAgICAgICAgICAgICAgICAgICB8ICAgMiArLQ0KIG5ldC9zdW5ycGMvc2No -ZWQuYyAgICAgICAgICAgICAgICAgICAgIHwgIDY3ICsrKystLQ0KIG5ldC9zdW5ycGMvc3ZjLmMg -ICAgICAgICAgICAgICAgICAgICAgIHwgICA4ICstDQogbmV0L3N1bnJwYy94cHJ0LmMgICAgICAg -ICAgICAgICAgICAgICAgfCAgMTQgKy0NCiBuZXQvc3VucnBjL3hwcnRtdWx0aXBhdGguYyAgICAg -ICAgICAgICB8ICAgOCArLQ0KIG5ldC9zdW5ycGMveHBydHJkbWEvTWFrZWZpbGUgICAgICAgICAg -IHwgICAyICstDQogbmV0L3N1bnJwYy94cHJ0cmRtYS9mbXJfb3BzLmMgICAgICAgICAgfCAzNzgg -KysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tDQogbmV0L3N1bnJwYy94cHJ0cmRtYS9m -cndyX29wcy5jICAgICAgICAgfCAzNjkgKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0N -CiBuZXQvc3VucnBjL3hwcnRyZG1hL3BoeXNpY2FsX29wcy5jICAgICB8IDEyMiAtLS0tLS0tLS0t -LQ0KIG5ldC9zdW5ycGMveHBydHJkbWEvcnBjX3JkbWEuYyAgICAgICAgIHwgMjc0ICsrKysrKysr -KysrKy0tLS0tLS0tLS0tLQ0KIG5ldC9zdW5ycGMveHBydHJkbWEvdHJhbnNwb3J0LmMgICAgICAg -IHwgIDQwICsrLS0NCiBuZXQvc3VucnBjL3hwcnRyZG1hL3ZlcmJzLmMgICAgICAgICAgICB8IDI0 -MiArKysrKysrKysrKysrKy0tLS0tLS0NCiBuZXQvc3VucnBjL3hwcnRyZG1hL3hwcnRfcmRtYS5o -ICAgICAgICB8IDExOCArKysrLS0tLS0tDQogbmV0L3N1bnJwYy94cHJ0c29jay5jICAgICAgICAg -ICAgICAgICAgfCAxMjUgKysrKysrLS0tLS0NCiA1NSBmaWxlcyBjaGFuZ2VkLCAxNzQ4IGluc2Vy -dGlvbnMoKyksIDE1MDAgZGVsZXRpb25zKC0pDQogY3JlYXRlIG1vZGUgMTAwNjQ0IGZzL25mcy9p -by5jDQogZGVsZXRlIG1vZGUgMTAwNjQ0IG5ldC9zdW5ycGMveHBydHJkbWEvcGh5c2ljYWxfb3Bz -LmMNCi0tIA0KVHJvbmQgTXlrbGVidXN0DQpMaW51eCBORlMgY2xpZW50IG1haW50YWluZXIsIFBy -aW1hcnlEYXRhDQp0cm9uZC5teWtsZWJ1c3RAcHJpbWFyeWRhdGEuY29tDQo= +Hi Linus, + +The following changes since commit 92d21ac74a9e3c09b0b01c764e530657e4c85c49: + + Linux 4.7-rc7 (2016-07-10 20:24:59 -0700) + +are available in the git repository at: + + git://git.linux-nfs.org/projects/trondmy/linux-nfs.git tags/nfs-for-4.8-1 + +for you to fetch changes up to 944171cbf499d3445c749f7c13c46de0a564a905: + + pNFS: Actively set attributes as invalid if LAYOUTCOMMIT is outstanding (2016-07-28 14:49:08 -0400) + +Cheers + Trond + +---------------------------------------------------------------- +NFS client updates for Linux 4.8 + +Highlights include: + +Stable bugfixes: + - nfs: don't create zero-length requests + - Several LAYOUTGET bugfixes + +Features: + - Several performance related features + - More aggressive caching when we can rely on close-to-open cache + consistency + - Remove serialisation of O_DIRECT reads and writes + - Optimise several code paths to not flush to disk unnecessarily. However + allow for the idiosyncracies of pNFS for those layout types that need + to issue a LAYOUTCOMMIT before the metadata can be updated on the server. + - SUNRPC updates to the client data receive path + - pNFS/SCSI support RH/Fedora dm-mpath device nodes + - pNFS files/flexfiles can now use unprivileged ports when the generic NFS + mount options allow it. + +Bugfixes: + - Don't use RDMA direct data placement together with data integrity or + privacy security flavours + - Remove the RDMA ALLPHYSICAL memory registration mode as it has potential + security holes. + - Several layout recall fixes to improve NFSv4.1 protocol compliance. + - Fix an Oops in the pNFS files and flexfiles connection setup to the DS + - Allow retry of operations that used a returned delegation stateid + - Don't mark the inode as revalidated if a LAYOUTCOMMIT is outstanding + - Fix writeback races in nfs4_copy_range() and nfs42_proc_deallocate() + +---------------------------------------------------------------- +Artem Savkov (1): + Fix NULL pointer dereference in bl_free_device(). + +Benjamin Coddington (3): + pnfs/blocklayout: put deviceid node after releasing bl_ext_lock + nfs: don't create zero-length requests + pNFS: Actively set attributes as invalid if LAYOUTCOMMIT is outstanding + +Christoph Hellwig (3): + nfs/blocklayout: use proper fmode for opening block devices + nfs/blocklayout: refactor open-by-wwn + nfs/blocklayout: support RH/Fedora dm-mpath device nodes + +Chuck Lever (24): + xprtrdma: Remove FMRs from the unmap list after unmapping + xprtrdma: Create common scatterlist fields in rpcrdma_mw + xprtrdma: Move init and release helpers + xprtrdma: Rename fields in rpcrdma_fmr + xprtrdma: Use scatterlist for DMA mapping and unmapping under FMR + xprtrdma: Refactor MR recovery work queues + xprtrdma: Do not leak an MW during a DMA map failure + xprtrdma: Remove ALLPHYSICAL memory registration mode + xprtrdma: Remove rpcrdma_map_one() and friends + xprtrdma: Clean up device capability detection + xprtrdma: Reply buffer exhaustion can be catastrophic + xprtrdma: Honor ->send_request API contract + xprtrdma: Chunk list encoders must not return zero + xprtrdma: Allocate MRs on demand + xprtrdma: Release orphaned MRs immediately + xprtrdma: Place registered MWs on a per-req list + xprtrdma: Chunk list encoders no longer share one rl_segments array + xprtrdma: rpcrdma_inline_fixup() overruns the receive page list + xprtrdma: Do not update {head, tail}.iov_len in rpcrdma_inline_fixup() + xprtrdma: Update only specific fields in private receive buffer + xprtrdma: Clean up fixup_copy_count accounting + xprtrdma: No direct data placement with krb5i and krb5p + svc: Avoid garbage replies when pc_func() returns rpc_drop_reply + NFS: Don't drop CB requests with invalid principals + +Frank Sorenson (4): + sunrpc: Fix bit count when setting hashtable size to power-of-two + sunrpc: Fix reserved port range calculation + sunrpc: Prevent resvport min/max inversion via sysctl + sunrpc: Prevent resvport min/max inversion via sysfs and module parameter + +Kinglong Mee (2): + nfs/blocklayout: Make sure calculate signature length aligned + nfs/blocklayout: Check max uuids and devices before decoding + +Scott Mayhew (1): + sunrpc: move NO_CRKEY_TIMEOUT to the auth->au_flags + +Steve Dickson (1): + mount: use sec= that was specified on the command line + +Tigran Mkrtchyan (2): + nfs4: clnt: respect noresvport when establishing connections to DSes + nfs4: flexfiles: respect noresvport when establishing connections to DSes + +Trond Myklebust (69): + SUNRPC: Small optimisation of client receive + SUNRPC: Consolidate xs_tcp_data_ready and xs_data_ready + SUNRPC: RPC transport queue must be low latency + SUNRPC: Reduce latency when send queue is congested + SUNRPC: Fix suspicious enobufs issues. + NFS: Don't flush caches for a getattr that races with writeback + NFS: Cache access checks more aggressively + NFS: Cache aggressively when file is open for writing + NFS: Kill NFS_INO_NFS_INO_FLUSHING: it is a performance killer + NFS: writepage of a single page should not be synchronous + NFS: Don't hold the inode lock across fsync() + NFS: Don't call COMMIT in ->releasepage() + NFS: Fix an Oops in the pNFS files and flexfiles connection setup to the DS + NFS/pnfs: Do not clobber existing pgio_done_cb in nfs4_proc_read_setup + NFSv4: Allow retry of operations that used a returned delegation stateid + pNFS/files: Fix layoutcommit after a commit to DS + pNFS/flexfiles: Fix layoutcommit after a commit to DS + pNFS/flexfiles: Clean up calls to pnfs_set_layoutcommit() + pNFS: Files and flexfiles always need to commit before layoutcommit + pNFS: Ensure we layoutcommit before revalidating attributes + pNFS: pnfs_layoutcommit_outstanding() is no longer used when !CONFIG_NFS_V4_1 + NFS: Fix O_DIRECT verifier problems + NFS: Ensure we reset the write verifier 'committed' value on resend. + NFS: Remove racy size manipulations in O_DIRECT + NFS Cleanup: move call to generic_write_checks() into fs/nfs/direct.c + NFS: Move buffered I/O locking into nfs_file_write() + NFS: Do not serialise O_DIRECT reads and writes + NFS: Cleanup nfs_direct_complete() + NFS: Remove redundant waits for O_DIRECT in fsync() and write_begin() + NFS: Remove unused function nfs_revalidate_mapping_protected() + NFS: Do not aggressively cache file attributes in the case of O_DIRECT + NFS: Getattr doesn't require data sync semantics + NFSv4.2: Fix a race in nfs42_proc_deallocate() + NFSv4.2: Fix writeback races in nfs4_copy_file_range + NFSv4.2: llseek(SEEK_HOLE) and llseek(SEEK_DATA) don't require data sync + NFS nfs_vm_page_mkwrite: Don't freeze me, Bro... + NFSv4: Revert "Truncating file opens should also sync O_DIRECT writes" + Merge tag 'nfs-rdma-4.8-1' of git://git.linux-nfs.org/projects/anna/nfs-rdma + SUNRPC: Fix infinite looping in rpc_clnt_iterate_for_each_xprt + pNFS: Don't mark the inode as revalidated if a LAYOUTCOMMIT is outstanding + pNFS: Fix post-layoutget error handling in pnfs_update_layout() + pNFS: Separate handling of NFS4ERR_LAYOUTTRYLATER and RECALLCONFLICT + pNFS: Handle NFS4ERR_RECALLCONFLICT correctly in LAYOUTGET + pNFS: Fix LAYOUTGET handling of NFS4ERR_BAD_STATEID and NFS4ERR_EXPIRED + Merge tag 'nfs-rdma-4.8-2' of git://git.linux-nfs.org/projects/anna/nfs-rdma + pNFS/files: filelayout_write_done_cb must call nfs_writeback_update_inode() + Merge commit 'e7bdea7750eb' + pNFS: LAYOUTRETURN should only update the stateid if the layout is valid + pNFS: Clear the layout return tracking on layout reinitialisation + pNFS: Always update the layout stateid if NFS_LAYOUT_INVALID_STID is set + pNFS: Always update the layout barrier seqid on LAYOUTGET + pNFS: Fix CB_LAYOUTRECALL stateid verification + pNFS: Ensure layoutreturn acts as a completion for layout callbacks + pNFS: Do not set plh_return_seq for non-callback related layoutreturns + NFS: pnfs_mark_matching_lsegs_return() should match the layout sequence id + pNFS: Cleanup - don't open code pnfs_mark_layout_stateid_invalid() + pNFS: Clear the layout metadata if the server changed the layout stateid + pNFS: Remove redundant pnfs_mark_layout_returned_if_empty() + pNFS: Remove redundant stateid invalidation + pNFS: Cleanup - do layout segment initialisation in one place + pNFS: Remove redundant smp_mb() from pnfs_init_lseg() + SUNRPC: Fix a compiler warning in fs/nfs/clnt.c + Merge branch 'sunrpc' + Merge branch 'writeback' + Merge branch 'pnfs' + Merge branch 'nfs-rdma' + NFSv4: Fix warning "no previous prototype for ‘nfs4_listxattr’" + NFSv4.2: Fix warning "variable ‘stateids’ set but not used" + NFSv4: Clean up lookup of SECINFO_NO_NAME + +kbuild test robot (1): + xprtrdma: fix semicolon.cocci warnings + + fs/nfs/Makefile | 2 +- + fs/nfs/blocklayout/dev.c | 110 +++++++--- + fs/nfs/blocklayout/extent_tree.c | 27 ++- + fs/nfs/callback_proc.c | 64 ++++-- + fs/nfs/callback_xdr.c | 6 +- + fs/nfs/client.c | 22 +- + fs/nfs/dir.c | 52 +++-- + fs/nfs/direct.c | 93 +++----- + fs/nfs/file.c | 100 +++------ + fs/nfs/filelayout/filelayout.c | 18 +- + fs/nfs/flexfilelayout/flexfilelayout.c | 23 +- + fs/nfs/inode.c | 138 ++++++------ + fs/nfs/internal.h | 62 +++++- + fs/nfs/io.c | 147 +++++++++++++ + fs/nfs/nfs3client.c | 14 +- + fs/nfs/nfs42proc.c | 24 ++- + fs/nfs/nfs42xdr.c | 12 +- + fs/nfs/nfs4_fs.h | 1 + + fs/nfs/nfs4client.c | 26 ++- + fs/nfs/nfs4file.c | 16 +- + fs/nfs/nfs4proc.c | 153 ++++++------- + fs/nfs/nfs4xdr.c | 11 +- + fs/nfs/nfstrace.h | 1 - + fs/nfs/pnfs.c | 191 ++++++++++------- + fs/nfs/pnfs.h | 34 ++- + fs/nfs/pnfs_nfs.c | 13 +- + fs/nfs/super.c | 14 +- + fs/nfs/write.c | 44 ++-- + include/linux/nfs_fs.h | 3 +- + include/linux/nfs_xdr.h | 5 +- + include/linux/sunrpc/auth.h | 9 +- + include/linux/sunrpc/gss_api.h | 2 + + include/linux/sunrpc/sched.h | 5 + + include/linux/sunrpc/xprtsock.h | 1 + + net/sunrpc/auth.c | 8 +- + net/sunrpc/auth_generic.c | 9 +- + net/sunrpc/auth_gss/auth_gss.c | 3 + + net/sunrpc/auth_gss/gss_krb5_mech.c | 2 + + net/sunrpc/auth_gss/gss_mech_switch.c | 12 ++ + net/sunrpc/auth_null.c | 1 + + net/sunrpc/auth_unix.c | 1 + + net/sunrpc/clnt.c | 2 +- + net/sunrpc/sched.c | 67 ++++-- + net/sunrpc/svc.c | 8 +- + net/sunrpc/xprt.c | 14 +- + net/sunrpc/xprtmultipath.c | 8 +- + net/sunrpc/xprtrdma/Makefile | 2 +- + net/sunrpc/xprtrdma/fmr_ops.c | 378 +++++++++++++++------------------ + net/sunrpc/xprtrdma/frwr_ops.c | 369 ++++++++++++-------------------- + net/sunrpc/xprtrdma/physical_ops.c | 122 ----------- + net/sunrpc/xprtrdma/rpc_rdma.c | 274 ++++++++++++------------ + net/sunrpc/xprtrdma/transport.c | 40 ++-- + net/sunrpc/xprtrdma/verbs.c | 242 ++++++++++++++------- + net/sunrpc/xprtrdma/xprt_rdma.h | 118 ++++------ + net/sunrpc/xprtsock.c | 125 ++++++----- + 55 files changed, 1748 insertions(+), 1500 deletions(-) + create mode 100644 fs/nfs/io.c + delete mode 100644 net/sunrpc/xprtrdma/physical_ops.c +-- +Trond Myklebust +Linux NFS client maintainer, PrimaryData +trond.myklebust@primarydata.com diff --git a/a/content_digest b/N1/content_digest index 6e1e799..92fca1a 100644 --- a/a/content_digest +++ b/N1/content_digest @@ -7,224 +7,251 @@ " linux-nfs@vger.kernel.org <linux-nfs@vger.kernel.org>\0" "\00:1\0" "b\0" - "SGkgTGludXMsDQoNClRoZSBmb2xsb3dpbmcgY2hhbmdlcyBzaW5jZSBjb21taXQgOTJkMjFhYzc0\n" - "YTllM2MwOWIwYjAxYzc2NGU1MzA2NTdlNGM4NWM0OToNCg0KICBMaW51eCA0LjctcmM3ICgyMDE2\n" - "LTA3LTEwIDIwOjI0OjU5IC0wNzAwKQ0KDQphcmUgYXZhaWxhYmxlIGluIHRoZSBnaXQgcmVwb3Np\n" - "dG9yeSBhdDoNCg0KICBnaXQ6Ly9naXQubGludXgtbmZzLm9yZy9wcm9qZWN0cy90cm9uZG15L2xp\n" - "bnV4LW5mcy5naXQgdGFncy9uZnMtZm9yLTQuOC0xDQoNCmZvciB5b3UgdG8gZmV0Y2ggY2hhbmdl\n" - "cyB1cCB0byA5NDQxNzFjYmY0OTlkMzQ0NWM3NDlmN2MxM2M0NmRlMGE1NjRhOTA1Og0KDQogIHBO\n" - "RlM6IEFjdGl2ZWx5IHNldCBhdHRyaWJ1dGVzIGFzIGludmFsaWQgaWYgTEFZT1VUQ09NTUlUIGlz\n" - "IG91dHN0YW5kaW5nICgyMDE2LTA3LTI4IDE0OjQ5OjA4IC0wNDAwKQ0KDQpDaGVlcnMNCsKgIFRy\n" - "b25kDQoNCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t\n" - "LS0tLS0tLS0tLS0tLS0NCk5GUyBjbGllbnQgdXBkYXRlcyBmb3IgTGludXggNC44DQoNCkhpZ2hs\n" - "aWdodHMgaW5jbHVkZToNCg0KU3RhYmxlIGJ1Z2ZpeGVzOg0KIC0gbmZzOiBkb24ndCBjcmVhdGUg\n" - "emVyby1sZW5ndGggcmVxdWVzdHMNCiAtIFNldmVyYWwgTEFZT1VUR0VUIGJ1Z2ZpeGVzDQoNCkZl\n" - "YXR1cmVzOg0KIC0gU2V2ZXJhbCBwZXJmb3JtYW5jZSByZWxhdGVkIGZlYXR1cmVzDQogICAtIE1v\n" - "cmUgYWdncmVzc2l2ZSBjYWNoaW5nIHdoZW4gd2UgY2FuIHJlbHkgb24gY2xvc2UtdG8tb3BlbiBj\n" - "YWNoZQ0KICAgICBjb25zaXN0ZW5jeQ0KICAgLSBSZW1vdmUgc2VyaWFsaXNhdGlvbiBvZiBPX0RJ\n" - "UkVDVCByZWFkcyBhbmQgd3JpdGVzDQogICAtIE9wdGltaXNlIHNldmVyYWwgY29kZSBwYXRocyB0\n" - "byBub3QgZmx1c2ggdG8gZGlzayB1bm5lY2Vzc2FyaWx5LiBIb3dldmVyDQogICAgIGFsbG93IGZv\n" - "ciB0aGUgaWRpb3N5bmNyYWNpZXMgb2YgcE5GUyBmb3IgdGhvc2UgbGF5b3V0IHR5cGVzIHRoYXQg\n" - "bmVlZA0KICAgICB0byBpc3N1ZSBhIExBWU9VVENPTU1JVCBiZWZvcmUgdGhlIG1ldGFkYXRhIGNh\n" - "biBiZSB1cGRhdGVkIG9uIHRoZSBzZXJ2ZXIuDQogICAtIFNVTlJQQyB1cGRhdGVzIHRvIHRoZSBj\n" - "bGllbnQgZGF0YSByZWNlaXZlIHBhdGgNCiAtIHBORlMvU0NTSSBzdXBwb3J0IFJIL0ZlZG9yYSBk\n" - "bS1tcGF0aCBkZXZpY2Ugbm9kZXMNCiAtIHBORlMgZmlsZXMvZmxleGZpbGVzIGNhbiBub3cgdXNl\n" - "IHVucHJpdmlsZWdlZCBwb3J0cyB3aGVuIHRoZSBnZW5lcmljIE5GUw0KICAgbW91bnQgb3B0aW9u\n" - "cyBhbGxvdyBpdC4NCg0KQnVnZml4ZXM6DQogLSBEb24ndCB1c2UgUkRNQSBkaXJlY3QgZGF0YSBw\n" - "bGFjZW1lbnQgdG9nZXRoZXIgd2l0aCBkYXRhIGludGVncml0eSBvcg0KICAgcHJpdmFjeSBzZWN1\n" - "cml0eSBmbGF2b3Vycw0KIC0gUmVtb3ZlIHRoZSBSRE1BIEFMTFBIWVNJQ0FMIG1lbW9yeSByZWdp\n" - "c3RyYXRpb24gbW9kZSBhcyBpdCBoYXMgcG90ZW50aWFsDQogICBzZWN1cml0eSBob2xlcy4NCiAt\n" - "IFNldmVyYWwgbGF5b3V0IHJlY2FsbCBmaXhlcyB0byBpbXByb3ZlIE5GU3Y0LjEgcHJvdG9jb2wg\n" - "Y29tcGxpYW5jZS4NCiAtIEZpeCBhbiBPb3BzIGluIHRoZSBwTkZTIGZpbGVzIGFuZCBmbGV4Zmls\n" - "ZXMgY29ubmVjdGlvbiBzZXR1cCB0byB0aGUgRFMNCiAtIEFsbG93IHJldHJ5IG9mIG9wZXJhdGlv\n" - "bnMgdGhhdCB1c2VkIGEgcmV0dXJuZWQgZGVsZWdhdGlvbiBzdGF0ZWlkDQogLSBEb24ndCBtYXJr\n" - "IHRoZSBpbm9kZSBhcyByZXZhbGlkYXRlZCBpZiBhIExBWU9VVENPTU1JVCBpcyBvdXRzdGFuZGlu\n" - "Zw0KIC0gRml4IHdyaXRlYmFjayByYWNlcyBpbiBuZnM0X2NvcHlfcmFuZ2UoKSBhbmQgbmZzNDJf\n" - "cHJvY19kZWFsbG9jYXRlKCkNCg0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t\n" - "LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KQXJ0ZW0gU2F2a292ICgxKToNCiAgICAgIEZp\n" - "eCBOVUxMIHBvaW50ZXIgZGVyZWZlcmVuY2UgaW4gYmxfZnJlZV9kZXZpY2UoKS4NCg0KQmVuamFt\n" - "aW4gQ29kZGluZ3RvbiAoMyk6DQogICAgICBwbmZzL2Jsb2NrbGF5b3V0OiBwdXQgZGV2aWNlaWQg\n" - "bm9kZSBhZnRlciByZWxlYXNpbmcgYmxfZXh0X2xvY2sNCiAgICAgIG5mczogZG9uJ3QgY3JlYXRl\n" - "IHplcm8tbGVuZ3RoIHJlcXVlc3RzDQogICAgICBwTkZTOiBBY3RpdmVseSBzZXQgYXR0cmlidXRl\n" - "cyBhcyBpbnZhbGlkIGlmIExBWU9VVENPTU1JVCBpcyBvdXRzdGFuZGluZw0KDQpDaHJpc3RvcGgg\n" - "SGVsbHdpZyAoMyk6DQogICAgICBuZnMvYmxvY2tsYXlvdXQ6IHVzZSBwcm9wZXIgZm1vZGUgZm9y\n" - "IG9wZW5pbmcgYmxvY2sgZGV2aWNlcw0KICAgICAgbmZzL2Jsb2NrbGF5b3V0OiByZWZhY3RvciBv\n" - "cGVuLWJ5LXd3bg0KICAgICAgbmZzL2Jsb2NrbGF5b3V0OiBzdXBwb3J0IFJIL0ZlZG9yYSBkbS1t\n" - "cGF0aCBkZXZpY2Ugbm9kZXMNCg0KQ2h1Y2sgTGV2ZXIgKDI0KToNCiAgICAgIHhwcnRyZG1hOiBS\n" - "ZW1vdmUgRk1ScyBmcm9tIHRoZSB1bm1hcCBsaXN0IGFmdGVyIHVubWFwcGluZw0KICAgICAgeHBy\n" - "dHJkbWE6IENyZWF0ZSBjb21tb24gc2NhdHRlcmxpc3QgZmllbGRzIGluIHJwY3JkbWFfbXcNCiAg\n" - "ICAgIHhwcnRyZG1hOiBNb3ZlIGluaXQgYW5kIHJlbGVhc2UgaGVscGVycw0KICAgICAgeHBydHJk\n" - "bWE6IFJlbmFtZSBmaWVsZHMgaW4gcnBjcmRtYV9mbXINCiAgICAgIHhwcnRyZG1hOiBVc2Ugc2Nh\n" - "dHRlcmxpc3QgZm9yIERNQSBtYXBwaW5nIGFuZCB1bm1hcHBpbmcgdW5kZXIgRk1SDQogICAgICB4\n" - "cHJ0cmRtYTogUmVmYWN0b3IgTVIgcmVjb3Zlcnkgd29yayBxdWV1ZXMNCiAgICAgIHhwcnRyZG1h\n" - "OiBEbyBub3QgbGVhayBhbiBNVyBkdXJpbmcgYSBETUEgbWFwIGZhaWx1cmUNCiAgICAgIHhwcnRy\n" - "ZG1hOiBSZW1vdmUgQUxMUEhZU0lDQUwgbWVtb3J5IHJlZ2lzdHJhdGlvbiBtb2RlDQogICAgICB4\n" - "cHJ0cmRtYTogUmVtb3ZlIHJwY3JkbWFfbWFwX29uZSgpIGFuZCBmcmllbmRzDQogICAgICB4cHJ0\n" - "cmRtYTogQ2xlYW4gdXAgZGV2aWNlIGNhcGFiaWxpdHkgZGV0ZWN0aW9uDQogICAgICB4cHJ0cmRt\n" - "YTogUmVwbHkgYnVmZmVyIGV4aGF1c3Rpb24gY2FuIGJlIGNhdGFzdHJvcGhpYw0KICAgICAgeHBy\n" - "dHJkbWE6IEhvbm9yIC0+c2VuZF9yZXF1ZXN0IEFQSSBjb250cmFjdA0KICAgICAgeHBydHJkbWE6\n" - "IENodW5rIGxpc3QgZW5jb2RlcnMgbXVzdCBub3QgcmV0dXJuIHplcm8NCiAgICAgIHhwcnRyZG1h\n" - "OiBBbGxvY2F0ZSBNUnMgb24gZGVtYW5kDQogICAgICB4cHJ0cmRtYTogUmVsZWFzZSBvcnBoYW5l\n" - "ZCBNUnMgaW1tZWRpYXRlbHkNCiAgICAgIHhwcnRyZG1hOiBQbGFjZSByZWdpc3RlcmVkIE1XcyBv\n" - "biBhIHBlci1yZXEgbGlzdA0KICAgICAgeHBydHJkbWE6IENodW5rIGxpc3QgZW5jb2RlcnMgbm8g\n" - "bG9uZ2VyIHNoYXJlIG9uZSBybF9zZWdtZW50cyBhcnJheQ0KICAgICAgeHBydHJkbWE6IHJwY3Jk\n" - "bWFfaW5saW5lX2ZpeHVwKCkgb3ZlcnJ1bnMgdGhlIHJlY2VpdmUgcGFnZSBsaXN0DQogICAgICB4\n" - "cHJ0cmRtYTogRG8gbm90IHVwZGF0ZSB7aGVhZCwgdGFpbH0uaW92X2xlbiBpbiBycGNyZG1hX2lu\n" - "bGluZV9maXh1cCgpDQogICAgICB4cHJ0cmRtYTogVXBkYXRlIG9ubHkgc3BlY2lmaWMgZmllbGRz\n" - "IGluIHByaXZhdGUgcmVjZWl2ZSBidWZmZXINCiAgICAgIHhwcnRyZG1hOiBDbGVhbiB1cCBmaXh1\n" - "cF9jb3B5X2NvdW50IGFjY291bnRpbmcNCiAgICAgIHhwcnRyZG1hOiBObyBkaXJlY3QgZGF0YSBw\n" - "bGFjZW1lbnQgd2l0aCBrcmI1aSBhbmQga3JiNXANCiAgICAgIHN2YzogQXZvaWQgZ2FyYmFnZSBy\n" - "ZXBsaWVzIHdoZW4gcGNfZnVuYygpIHJldHVybnMgcnBjX2Ryb3BfcmVwbHkNCiAgICAgIE5GUzog\n" - "RG9uJ3QgZHJvcCBDQiByZXF1ZXN0cyB3aXRoIGludmFsaWQgcHJpbmNpcGFscw0KDQpGcmFuayBT\n" - "b3JlbnNvbiAoNCk6DQogICAgICBzdW5ycGM6IEZpeCBiaXQgY291bnQgd2hlbiBzZXR0aW5nIGhh\n" - "c2h0YWJsZSBzaXplIHRvIHBvd2VyLW9mLXR3bw0KICAgICAgc3VucnBjOiBGaXggcmVzZXJ2ZWQg\n" - "cG9ydCByYW5nZSBjYWxjdWxhdGlvbg0KICAgICAgc3VucnBjOiBQcmV2ZW50IHJlc3Zwb3J0IG1p\n" - "bi9tYXggaW52ZXJzaW9uIHZpYSBzeXNjdGwNCiAgICAgIHN1bnJwYzogUHJldmVudCByZXN2cG9y\n" - "dCBtaW4vbWF4IGludmVyc2lvbiB2aWEgc3lzZnMgYW5kIG1vZHVsZSBwYXJhbWV0ZXINCg0KS2lu\n" - "Z2xvbmcgTWVlICgyKToNCiAgICAgIG5mcy9ibG9ja2xheW91dDogTWFrZSBzdXJlIGNhbGN1bGF0\n" - "ZSBzaWduYXR1cmUgbGVuZ3RoIGFsaWduZWQNCiAgICAgIG5mcy9ibG9ja2xheW91dDogQ2hlY2sg\n" - "bWF4IHV1aWRzIGFuZCBkZXZpY2VzIGJlZm9yZSBkZWNvZGluZw0KDQpTY290dCBNYXloZXcgKDEp\n" - "Og0KICAgICAgc3VucnBjOiBtb3ZlIE5PX0NSS0VZX1RJTUVPVVQgdG8gdGhlIGF1dGgtPmF1X2Zs\n" - "YWdzDQoNClN0ZXZlIERpY2tzb24gKDEpOg0KICAgICAgbW91bnQ6IHVzZSBzZWM9IHRoYXQgd2Fz\n" - "IHNwZWNpZmllZCBvbiB0aGUgY29tbWFuZCBsaW5lDQoNClRpZ3JhbiBNa3J0Y2h5YW4gKDIpOg0K\n" - "ICAgICAgbmZzNDogY2xudDogcmVzcGVjdCBub3Jlc3Zwb3J0IHdoZW4gZXN0YWJsaXNoaW5nIGNv\n" - "bm5lY3Rpb25zIHRvIERTZXMNCiAgICAgIG5mczQ6IGZsZXhmaWxlczogcmVzcGVjdCBub3Jlc3Zw\n" - "b3J0IHdoZW4gZXN0YWJsaXNoaW5nIGNvbm5lY3Rpb25zIHRvIERTZXMNCg0KVHJvbmQgTXlrbGVi\n" - "dXN0ICg2OSk6DQogICAgICBTVU5SUEM6IFNtYWxsIG9wdGltaXNhdGlvbiBvZiBjbGllbnQgcmVj\n" - "ZWl2ZQ0KICAgICAgU1VOUlBDOiBDb25zb2xpZGF0ZSB4c190Y3BfZGF0YV9yZWFkeSBhbmQgeHNf\n" - "ZGF0YV9yZWFkeQ0KICAgICAgU1VOUlBDOiBSUEMgdHJhbnNwb3J0IHF1ZXVlIG11c3QgYmUgbG93\n" - "IGxhdGVuY3kNCiAgICAgIFNVTlJQQzogUmVkdWNlIGxhdGVuY3kgd2hlbiBzZW5kIHF1ZXVlIGlz\n" - "IGNvbmdlc3RlZA0KICAgICAgU1VOUlBDOiBGaXggc3VzcGljaW91cyBlbm9idWZzIGlzc3Vlcy4N\n" - "CiAgICAgIE5GUzogRG9uJ3QgZmx1c2ggY2FjaGVzIGZvciBhIGdldGF0dHIgdGhhdCByYWNlcyB3\n" - "aXRoIHdyaXRlYmFjaw0KICAgICAgTkZTOiBDYWNoZSBhY2Nlc3MgY2hlY2tzIG1vcmUgYWdncmVz\n" - "c2l2ZWx5DQogICAgICBORlM6IENhY2hlIGFnZ3Jlc3NpdmVseSB3aGVuIGZpbGUgaXMgb3BlbiBm\n" - "b3Igd3JpdGluZw0KICAgICAgTkZTOiBLaWxsIE5GU19JTk9fTkZTX0lOT19GTFVTSElORzogaXQg\n" - "aXMgYSBwZXJmb3JtYW5jZSBraWxsZXINCiAgICAgIE5GUzogd3JpdGVwYWdlIG9mIGEgc2luZ2xl\n" - "IHBhZ2Ugc2hvdWxkIG5vdCBiZSBzeW5jaHJvbm91cw0KICAgICAgTkZTOiBEb24ndCBob2xkIHRo\n" - "ZSBpbm9kZSBsb2NrIGFjcm9zcyBmc3luYygpDQogICAgICBORlM6IERvbid0IGNhbGwgQ09NTUlU\n" - "IGluIC0+cmVsZWFzZXBhZ2UoKQ0KICAgICAgTkZTOiBGaXggYW4gT29wcyBpbiB0aGUgcE5GUyBm\n" - "aWxlcyBhbmQgZmxleGZpbGVzIGNvbm5lY3Rpb24gc2V0dXAgdG8gdGhlIERTDQogICAgICBORlMv\n" - "cG5mczogRG8gbm90IGNsb2JiZXIgZXhpc3RpbmcgcGdpb19kb25lX2NiIGluIG5mczRfcHJvY19y\n" - "ZWFkX3NldHVwDQogICAgICBORlN2NDogQWxsb3cgcmV0cnkgb2Ygb3BlcmF0aW9ucyB0aGF0IHVz\n" - "ZWQgYSByZXR1cm5lZCBkZWxlZ2F0aW9uIHN0YXRlaWQNCiAgICAgIHBORlMvZmlsZXM6IEZpeCBs\n" - "YXlvdXRjb21taXQgYWZ0ZXIgYSBjb21taXQgdG8gRFMNCiAgICAgIHBORlMvZmxleGZpbGVzOiBG\n" - "aXggbGF5b3V0Y29tbWl0IGFmdGVyIGEgY29tbWl0IHRvIERTDQogICAgICBwTkZTL2ZsZXhmaWxl\n" - "czogQ2xlYW4gdXAgY2FsbHMgdG8gcG5mc19zZXRfbGF5b3V0Y29tbWl0KCkNCiAgICAgIHBORlM6\n" - "IEZpbGVzIGFuZCBmbGV4ZmlsZXMgYWx3YXlzIG5lZWQgdG8gY29tbWl0IGJlZm9yZSBsYXlvdXRj\n" - "b21taXQNCiAgICAgIHBORlM6IEVuc3VyZSB3ZSBsYXlvdXRjb21taXQgYmVmb3JlIHJldmFsaWRh\n" - "dGluZyBhdHRyaWJ1dGVzDQogICAgICBwTkZTOiBwbmZzX2xheW91dGNvbW1pdF9vdXRzdGFuZGlu\n" - "ZygpIGlzIG5vIGxvbmdlciB1c2VkIHdoZW4gIUNPTkZJR19ORlNfVjRfMQ0KICAgICAgTkZTOiBG\n" - "aXggT19ESVJFQ1QgdmVyaWZpZXIgcHJvYmxlbXMNCiAgICAgIE5GUzogRW5zdXJlIHdlIHJlc2V0\n" - "IHRoZSB3cml0ZSB2ZXJpZmllciAnY29tbWl0dGVkJyB2YWx1ZSBvbiByZXNlbmQuDQogICAgICBO\n" - "RlM6IFJlbW92ZSByYWN5IHNpemUgbWFuaXB1bGF0aW9ucyBpbiBPX0RJUkVDVA0KICAgICAgTkZT\n" - "IENsZWFudXA6IG1vdmUgY2FsbCB0byBnZW5lcmljX3dyaXRlX2NoZWNrcygpIGludG8gZnMvbmZz\n" - "L2RpcmVjdC5jDQogICAgICBORlM6IE1vdmUgYnVmZmVyZWQgSS9PIGxvY2tpbmcgaW50byBuZnNf\n" - "ZmlsZV93cml0ZSgpDQogICAgICBORlM6IERvIG5vdCBzZXJpYWxpc2UgT19ESVJFQ1QgcmVhZHMg\n" - "YW5kIHdyaXRlcw0KICAgICAgTkZTOiBDbGVhbnVwIG5mc19kaXJlY3RfY29tcGxldGUoKQ0KICAg\n" - "ICAgTkZTOiBSZW1vdmUgcmVkdW5kYW50IHdhaXRzIGZvciBPX0RJUkVDVCBpbiBmc3luYygpIGFu\n" - "ZCB3cml0ZV9iZWdpbigpDQogICAgICBORlM6IFJlbW92ZSB1bnVzZWQgZnVuY3Rpb24gbmZzX3Jl\n" - "dmFsaWRhdGVfbWFwcGluZ19wcm90ZWN0ZWQoKQ0KICAgICAgTkZTOiBEbyBub3QgYWdncmVzc2l2\n" - "ZWx5IGNhY2hlIGZpbGUgYXR0cmlidXRlcyBpbiB0aGUgY2FzZSBvZiBPX0RJUkVDVA0KICAgICAg\n" - "TkZTOiBHZXRhdHRyIGRvZXNuJ3QgcmVxdWlyZSBkYXRhIHN5bmMgc2VtYW50aWNzDQogICAgICBO\n" - "RlN2NC4yOiBGaXggYSByYWNlIGluIG5mczQyX3Byb2NfZGVhbGxvY2F0ZSgpDQogICAgICBORlN2\n" - "NC4yOiBGaXggd3JpdGViYWNrIHJhY2VzIGluIG5mczRfY29weV9maWxlX3JhbmdlDQogICAgICBO\n" - "RlN2NC4yOiBsbHNlZWsoU0VFS19IT0xFKSBhbmQgbGxzZWVrKFNFRUtfREFUQSkgZG9uJ3QgcmVx\n" - "dWlyZSBkYXRhIHN5bmMNCiAgICAgIE5GUyBuZnNfdm1fcGFnZV9ta3dyaXRlOiBEb24ndCBmcmVl\n" - "emUgbWUsIEJyby4uLg0KICAgICAgTkZTdjQ6IFJldmVydCAiVHJ1bmNhdGluZyBmaWxlIG9wZW5z\n" - "IHNob3VsZCBhbHNvIHN5bmMgT19ESVJFQ1Qgd3JpdGVzIg0KICAgICAgTWVyZ2UgdGFnICduZnMt\n" - "cmRtYS00LjgtMScgb2YgZ2l0Oi8vZ2l0LmxpbnV4LW5mcy5vcmcvcHJvamVjdHMvYW5uYS9uZnMt\n" - "cmRtYQ0KICAgICAgU1VOUlBDOiBGaXggaW5maW5pdGUgbG9vcGluZyBpbiBycGNfY2xudF9pdGVy\n" - "YXRlX2Zvcl9lYWNoX3hwcnQNCiAgICAgIHBORlM6IERvbid0IG1hcmsgdGhlIGlub2RlIGFzIHJl\n" - "dmFsaWRhdGVkIGlmIGEgTEFZT1VUQ09NTUlUIGlzIG91dHN0YW5kaW5nDQogICAgICBwTkZTOiBG\n" - "aXggcG9zdC1sYXlvdXRnZXQgZXJyb3IgaGFuZGxpbmcgaW4gcG5mc191cGRhdGVfbGF5b3V0KCkN\n" - "CiAgICAgIHBORlM6IFNlcGFyYXRlIGhhbmRsaW5nIG9mIE5GUzRFUlJfTEFZT1VUVFJZTEFURVIg\n" - "YW5kIFJFQ0FMTENPTkZMSUNUDQogICAgICBwTkZTOiBIYW5kbGUgTkZTNEVSUl9SRUNBTExDT05G\n" - "TElDVCBjb3JyZWN0bHkgaW4gTEFZT1VUR0VUDQogICAgICBwTkZTOiBGaXggTEFZT1VUR0VUIGhh\n" - "bmRsaW5nIG9mIE5GUzRFUlJfQkFEX1NUQVRFSUQgYW5kIE5GUzRFUlJfRVhQSVJFRA0KICAgICAg\n" - "TWVyZ2UgdGFnICduZnMtcmRtYS00LjgtMicgb2YgZ2l0Oi8vZ2l0LmxpbnV4LW5mcy5vcmcvcHJv\n" - "amVjdHMvYW5uYS9uZnMtcmRtYQ0KICAgICAgcE5GUy9maWxlczogZmlsZWxheW91dF93cml0ZV9k\n" - "b25lX2NiIG11c3QgY2FsbCBuZnNfd3JpdGViYWNrX3VwZGF0ZV9pbm9kZSgpDQogICAgICBNZXJn\n" - "ZSBjb21taXQgJ2U3YmRlYTc3NTBlYicNCiAgICAgIHBORlM6IExBWU9VVFJFVFVSTiBzaG91bGQg\n" - "b25seSB1cGRhdGUgdGhlIHN0YXRlaWQgaWYgdGhlIGxheW91dCBpcyB2YWxpZA0KICAgICAgcE5G\n" - "UzogQ2xlYXIgdGhlIGxheW91dCByZXR1cm4gdHJhY2tpbmcgb24gbGF5b3V0IHJlaW5pdGlhbGlz\n" - "YXRpb24NCiAgICAgIHBORlM6IEFsd2F5cyB1cGRhdGUgdGhlIGxheW91dCBzdGF0ZWlkIGlmIE5G\n" - "U19MQVlPVVRfSU5WQUxJRF9TVElEIGlzIHNldA0KICAgICAgcE5GUzogQWx3YXlzIHVwZGF0ZSB0\n" - "aGUgbGF5b3V0IGJhcnJpZXIgc2VxaWQgb24gTEFZT1VUR0VUDQogICAgICBwTkZTOiBGaXggQ0Jf\n" - "TEFZT1VUUkVDQUxMIHN0YXRlaWQgdmVyaWZpY2F0aW9uDQogICAgICBwTkZTOiBFbnN1cmUgbGF5\n" - "b3V0cmV0dXJuIGFjdHMgYXMgYSBjb21wbGV0aW9uIGZvciBsYXlvdXQgY2FsbGJhY2tzDQogICAg\n" - "ICBwTkZTOiBEbyBub3Qgc2V0IHBsaF9yZXR1cm5fc2VxIGZvciBub24tY2FsbGJhY2sgcmVsYXRl\n" - "ZCBsYXlvdXRyZXR1cm5zDQogICAgICBORlM6IHBuZnNfbWFya19tYXRjaGluZ19sc2Vnc19yZXR1\n" - "cm4oKSBzaG91bGQgbWF0Y2ggdGhlIGxheW91dCBzZXF1ZW5jZSBpZA0KICAgICAgcE5GUzogQ2xl\n" - "YW51cCAtIGRvbid0IG9wZW4gY29kZSBwbmZzX21hcmtfbGF5b3V0X3N0YXRlaWRfaW52YWxpZCgp\n" - "DQogICAgICBwTkZTOiBDbGVhciB0aGUgbGF5b3V0IG1ldGFkYXRhIGlmIHRoZSBzZXJ2ZXIgY2hh\n" - "bmdlZCB0aGUgbGF5b3V0IHN0YXRlaWQNCiAgICAgIHBORlM6IFJlbW92ZSByZWR1bmRhbnQgcG5m\n" - "c19tYXJrX2xheW91dF9yZXR1cm5lZF9pZl9lbXB0eSgpDQogICAgICBwTkZTOiBSZW1vdmUgcmVk\n" - "dW5kYW50IHN0YXRlaWQgaW52YWxpZGF0aW9uDQogICAgICBwTkZTOiBDbGVhbnVwIC0gZG8gbGF5\n" - "b3V0IHNlZ21lbnQgaW5pdGlhbGlzYXRpb24gaW4gb25lIHBsYWNlDQogICAgICBwTkZTOiBSZW1v\n" - "dmUgcmVkdW5kYW50IHNtcF9tYigpIGZyb20gcG5mc19pbml0X2xzZWcoKQ0KICAgICAgU1VOUlBD\n" - "OiBGaXggYSBjb21waWxlciB3YXJuaW5nIGluIGZzL25mcy9jbG50LmMNCiAgICAgIE1lcmdlIGJy\n" - "YW5jaCAnc3VucnBjJw0KICAgICAgTWVyZ2UgYnJhbmNoICd3cml0ZWJhY2snDQogICAgICBNZXJn\n" - "ZSBicmFuY2ggJ3BuZnMnDQogICAgICBNZXJnZSBicmFuY2ggJ25mcy1yZG1hJw0KICAgICAgTkZT\n" - "djQ6IEZpeCB3YXJuaW5nICJubyBwcmV2aW91cyBwcm90b3R5cGUgZm9yIOKAmG5mczRfbGlzdHhh\n" - "dHRy4oCZIg0KICAgICAgTkZTdjQuMjogRml4IHdhcm5pbmcgInZhcmlhYmxlIOKAmHN0YXRlaWRz\n" - "4oCZIHNldCBidXQgbm90IHVzZWQiDQogICAgICBORlN2NDogQ2xlYW4gdXAgbG9va3VwIG9mIFNF\n" - "Q0lORk9fTk9fTkFNRQ0KDQprYnVpbGQgdGVzdCByb2JvdCAoMSk6DQogICAgICB4cHJ0cmRtYTog\n" - "Zml4IHNlbWljb2xvbi5jb2NjaSB3YXJuaW5ncw0KDQogZnMvbmZzL01ha2VmaWxlICAgICAgICAg\n" - "ICAgICAgICAgICAgICAgfCAgIDIgKy0NCiBmcy9uZnMvYmxvY2tsYXlvdXQvZGV2LmMgICAgICAg\n" - "ICAgICAgICB8IDExMCArKysrKysrLS0tDQogZnMvbmZzL2Jsb2NrbGF5b3V0L2V4dGVudF90cmVl\n" - "LmMgICAgICAgfCAgMjcgKystDQogZnMvbmZzL2NhbGxiYWNrX3Byb2MuYyAgICAgICAgICAgICAg\n" - "ICAgfCAgNjQgKysrKy0tDQogZnMvbmZzL2NhbGxiYWNrX3hkci5jICAgICAgICAgICAgICAgICAg\n" - "fCAgIDYgKy0NCiBmcy9uZnMvY2xpZW50LmMgICAgICAgICAgICAgICAgICAgICAgICB8ICAyMiAr\n" - "LQ0KIGZzL25mcy9kaXIuYyAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDUyICsrKy0tDQog\n" - "ZnMvbmZzL2RpcmVjdC5jICAgICAgICAgICAgICAgICAgICAgICAgfCAgOTMgKysrLS0tLS0NCiBm\n" - "cy9uZnMvZmlsZS5jICAgICAgICAgICAgICAgICAgICAgICAgICB8IDEwMCArKystLS0tLS0NCiBm\n" - "cy9uZnMvZmlsZWxheW91dC9maWxlbGF5b3V0LmMgICAgICAgICB8ICAxOCArLQ0KIGZzL25mcy9m\n" - "bGV4ZmlsZWxheW91dC9mbGV4ZmlsZWxheW91dC5jIHwgIDIzICstDQogZnMvbmZzL2lub2RlLmMg\n" - "ICAgICAgICAgICAgICAgICAgICAgICAgfCAxMzggKysrKysrLS0tLS0tDQogZnMvbmZzL2ludGVy\n" - "bmFsLmggICAgICAgICAgICAgICAgICAgICAgfCAgNjIgKysrKystDQogZnMvbmZzL2lvLmMgICAg\n" - "ICAgICAgICAgICAgICAgICAgICAgICAgfCAxNDcgKysrKysrKysrKysrKw0KIGZzL25mcy9uZnMz\n" - "Y2xpZW50LmMgICAgICAgICAgICAgICAgICAgIHwgIDE0ICstDQogZnMvbmZzL25mczQycHJvYy5j\n" - "ICAgICAgICAgICAgICAgICAgICAgfCAgMjQgKystDQogZnMvbmZzL25mczQyeGRyLmMgICAgICAg\n" - "ICAgICAgICAgICAgICAgfCAgMTIgKy0NCiBmcy9uZnMvbmZzNF9mcy5oICAgICAgICAgICAgICAg\n" - "ICAgICAgICB8ICAgMSArDQogZnMvbmZzL25mczRjbGllbnQuYyAgICAgICAgICAgICAgICAgICAg\n" - "fCAgMjYgKystDQogZnMvbmZzL25mczRmaWxlLmMgICAgICAgICAgICAgICAgICAgICAgfCAgMTYg\n" - "Ky0NCiBmcy9uZnMvbmZzNHByb2MuYyAgICAgICAgICAgICAgICAgICAgICB8IDE1MyArKysrKyst\n" - "LS0tLS0tDQogZnMvbmZzL25mczR4ZHIuYyAgICAgICAgICAgICAgICAgICAgICAgfCAgMTEgKy0N\n" - "CiBmcy9uZnMvbmZzdHJhY2UuaCAgICAgICAgICAgICAgICAgICAgICB8ICAgMSAtDQogZnMvbmZz\n" - "L3BuZnMuYyAgICAgICAgICAgICAgICAgICAgICAgICAgfCAxOTEgKysrKysrKysrKy0tLS0tLS0N\n" - "CiBmcy9uZnMvcG5mcy5oICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAzNCArKy0NCiBmcy9u\n" - "ZnMvcG5mc19uZnMuYyAgICAgICAgICAgICAgICAgICAgICB8ICAxMyArLQ0KIGZzL25mcy9zdXBl\n" - "ci5jICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDE0ICstDQogZnMvbmZzL3dyaXRlLmMgICAg\n" - "ICAgICAgICAgICAgICAgICAgICAgfCAgNDQgKystLQ0KIGluY2x1ZGUvbGludXgvbmZzX2ZzLmgg\n" - "ICAgICAgICAgICAgICAgIHwgICAzICstDQogaW5jbHVkZS9saW51eC9uZnNfeGRyLmggICAgICAg\n" - "ICAgICAgICAgfCAgIDUgKy0NCiBpbmNsdWRlL2xpbnV4L3N1bnJwYy9hdXRoLmggICAgICAgICAg\n" - "ICB8ICAgOSArLQ0KIGluY2x1ZGUvbGludXgvc3VucnBjL2dzc19hcGkuaCAgICAgICAgIHwgICAy\n" - "ICsNCiBpbmNsdWRlL2xpbnV4L3N1bnJwYy9zY2hlZC5oICAgICAgICAgICB8ICAgNSArDQogaW5j\n" - "bHVkZS9saW51eC9zdW5ycGMveHBydHNvY2suaCAgICAgICAgfCAgIDEgKw0KIG5ldC9zdW5ycGMv\n" - "YXV0aC5jICAgICAgICAgICAgICAgICAgICAgIHwgICA4ICstDQogbmV0L3N1bnJwYy9hdXRoX2dl\n" - "bmVyaWMuYyAgICAgICAgICAgICAgfCAgIDkgKy0NCiBuZXQvc3VucnBjL2F1dGhfZ3NzL2F1dGhf\n" - "Z3NzLmMgICAgICAgICB8ICAgMyArDQogbmV0L3N1bnJwYy9hdXRoX2dzcy9nc3Nfa3JiNV9tZWNo\n" - "LmMgICAgfCAgIDIgKw0KIG5ldC9zdW5ycGMvYXV0aF9nc3MvZ3NzX21lY2hfc3dpdGNoLmMgIHwg\n" - "IDEyICsrDQogbmV0L3N1bnJwYy9hdXRoX251bGwuYyAgICAgICAgICAgICAgICAgfCAgIDEgKw0K\n" - "IG5ldC9zdW5ycGMvYXV0aF91bml4LmMgICAgICAgICAgICAgICAgIHwgICAxICsNCiBuZXQvc3Vu\n" - "cnBjL2NsbnQuYyAgICAgICAgICAgICAgICAgICAgICB8ICAgMiArLQ0KIG5ldC9zdW5ycGMvc2No\n" - "ZWQuYyAgICAgICAgICAgICAgICAgICAgIHwgIDY3ICsrKystLQ0KIG5ldC9zdW5ycGMvc3ZjLmMg\n" - "ICAgICAgICAgICAgICAgICAgICAgIHwgICA4ICstDQogbmV0L3N1bnJwYy94cHJ0LmMgICAgICAg\n" - "ICAgICAgICAgICAgICAgfCAgMTQgKy0NCiBuZXQvc3VucnBjL3hwcnRtdWx0aXBhdGguYyAgICAg\n" - "ICAgICAgICB8ICAgOCArLQ0KIG5ldC9zdW5ycGMveHBydHJkbWEvTWFrZWZpbGUgICAgICAgICAg\n" - "IHwgICAyICstDQogbmV0L3N1bnJwYy94cHJ0cmRtYS9mbXJfb3BzLmMgICAgICAgICAgfCAzNzgg\n" - "KysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tDQogbmV0L3N1bnJwYy94cHJ0cmRtYS9m\n" - "cndyX29wcy5jICAgICAgICAgfCAzNjkgKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0N\n" - "CiBuZXQvc3VucnBjL3hwcnRyZG1hL3BoeXNpY2FsX29wcy5jICAgICB8IDEyMiAtLS0tLS0tLS0t\n" - "LQ0KIG5ldC9zdW5ycGMveHBydHJkbWEvcnBjX3JkbWEuYyAgICAgICAgIHwgMjc0ICsrKysrKysr\n" - "KysrKy0tLS0tLS0tLS0tLQ0KIG5ldC9zdW5ycGMveHBydHJkbWEvdHJhbnNwb3J0LmMgICAgICAg\n" - "IHwgIDQwICsrLS0NCiBuZXQvc3VucnBjL3hwcnRyZG1hL3ZlcmJzLmMgICAgICAgICAgICB8IDI0\n" - "MiArKysrKysrKysrKysrKy0tLS0tLS0NCiBuZXQvc3VucnBjL3hwcnRyZG1hL3hwcnRfcmRtYS5o\n" - "ICAgICAgICB8IDExOCArKysrLS0tLS0tDQogbmV0L3N1bnJwYy94cHJ0c29jay5jICAgICAgICAg\n" - "ICAgICAgICAgfCAxMjUgKysrKysrLS0tLS0NCiA1NSBmaWxlcyBjaGFuZ2VkLCAxNzQ4IGluc2Vy\n" - "dGlvbnMoKyksIDE1MDAgZGVsZXRpb25zKC0pDQogY3JlYXRlIG1vZGUgMTAwNjQ0IGZzL25mcy9p\n" - "by5jDQogZGVsZXRlIG1vZGUgMTAwNjQ0IG5ldC9zdW5ycGMveHBydHJkbWEvcGh5c2ljYWxfb3Bz\n" - "LmMNCi0tIA0KVHJvbmQgTXlrbGVidXN0DQpMaW51eCBORlMgY2xpZW50IG1haW50YWluZXIsIFBy\n" - aW1hcnlEYXRhDQp0cm9uZC5teWtsZWJ1c3RAcHJpbWFyeWRhdGEuY29tDQo= + "Hi Linus,\n" + "\n" + "The following changes since commit 92d21ac74a9e3c09b0b01c764e530657e4c85c49:\n" + "\n" + " Linux 4.7-rc7 (2016-07-10 20:24:59 -0700)\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.8-1\n" + "\n" + "for you to fetch changes up to 944171cbf499d3445c749f7c13c46de0a564a905:\n" + "\n" + " pNFS: Actively set attributes as invalid if LAYOUTCOMMIT is outstanding (2016-07-28 14:49:08 -0400)\n" + "\n" + "Cheers\n" + "\302\240 Trond\n" + "\n" + "----------------------------------------------------------------\n" + "NFS client updates for Linux 4.8\n" + "\n" + "Highlights include:\n" + "\n" + "Stable bugfixes:\n" + " - nfs: don't create zero-length requests\n" + " - Several LAYOUTGET bugfixes\n" + "\n" + "Features:\n" + " - Several performance related features\n" + " - More aggressive caching when we can rely on close-to-open cache\n" + " consistency\n" + " - Remove serialisation of O_DIRECT reads and writes\n" + " - Optimise several code paths to not flush to disk unnecessarily. However\n" + " allow for the idiosyncracies of pNFS for those layout types that need\n" + " to issue a LAYOUTCOMMIT before the metadata can be updated on the server.\n" + " - SUNRPC updates to the client data receive path\n" + " - pNFS/SCSI support RH/Fedora dm-mpath device nodes\n" + " - pNFS files/flexfiles can now use unprivileged ports when the generic NFS\n" + " mount options allow it.\n" + "\n" + "Bugfixes:\n" + " - Don't use RDMA direct data placement together with data integrity or\n" + " privacy security flavours\n" + " - Remove the RDMA ALLPHYSICAL memory registration mode as it has potential\n" + " security holes.\n" + " - Several layout recall fixes to improve NFSv4.1 protocol compliance.\n" + " - Fix an Oops in the pNFS files and flexfiles connection setup to the DS\n" + " - Allow retry of operations that used a returned delegation stateid\n" + " - Don't mark the inode as revalidated if a LAYOUTCOMMIT is outstanding\n" + " - Fix writeback races in nfs4_copy_range() and nfs42_proc_deallocate()\n" + "\n" + "----------------------------------------------------------------\n" + "Artem Savkov (1):\n" + " Fix NULL pointer dereference in bl_free_device().\n" + "\n" + "Benjamin Coddington (3):\n" + " pnfs/blocklayout: put deviceid node after releasing bl_ext_lock\n" + " nfs: don't create zero-length requests\n" + " pNFS: Actively set attributes as invalid if LAYOUTCOMMIT is outstanding\n" + "\n" + "Christoph Hellwig (3):\n" + " nfs/blocklayout: use proper fmode for opening block devices\n" + " nfs/blocklayout: refactor open-by-wwn\n" + " nfs/blocklayout: support RH/Fedora dm-mpath device nodes\n" + "\n" + "Chuck Lever (24):\n" + " xprtrdma: Remove FMRs from the unmap list after unmapping\n" + " xprtrdma: Create common scatterlist fields in rpcrdma_mw\n" + " xprtrdma: Move init and release helpers\n" + " xprtrdma: Rename fields in rpcrdma_fmr\n" + " xprtrdma: Use scatterlist for DMA mapping and unmapping under FMR\n" + " xprtrdma: Refactor MR recovery work queues\n" + " xprtrdma: Do not leak an MW during a DMA map failure\n" + " xprtrdma: Remove ALLPHYSICAL memory registration mode\n" + " xprtrdma: Remove rpcrdma_map_one() and friends\n" + " xprtrdma: Clean up device capability detection\n" + " xprtrdma: Reply buffer exhaustion can be catastrophic\n" + " xprtrdma: Honor ->send_request API contract\n" + " xprtrdma: Chunk list encoders must not return zero\n" + " xprtrdma: Allocate MRs on demand\n" + " xprtrdma: Release orphaned MRs immediately\n" + " xprtrdma: Place registered MWs on a per-req list\n" + " xprtrdma: Chunk list encoders no longer share one rl_segments array\n" + " xprtrdma: rpcrdma_inline_fixup() overruns the receive page list\n" + " xprtrdma: Do not update {head, tail}.iov_len in rpcrdma_inline_fixup()\n" + " xprtrdma: Update only specific fields in private receive buffer\n" + " xprtrdma: Clean up fixup_copy_count accounting\n" + " xprtrdma: No direct data placement with krb5i and krb5p\n" + " svc: Avoid garbage replies when pc_func() returns rpc_drop_reply\n" + " NFS: Don't drop CB requests with invalid principals\n" + "\n" + "Frank Sorenson (4):\n" + " sunrpc: Fix bit count when setting hashtable size to power-of-two\n" + " sunrpc: Fix reserved port range calculation\n" + " sunrpc: Prevent resvport min/max inversion via sysctl\n" + " sunrpc: Prevent resvport min/max inversion via sysfs and module parameter\n" + "\n" + "Kinglong Mee (2):\n" + " nfs/blocklayout: Make sure calculate signature length aligned\n" + " nfs/blocklayout: Check max uuids and devices before decoding\n" + "\n" + "Scott Mayhew (1):\n" + " sunrpc: move NO_CRKEY_TIMEOUT to the auth->au_flags\n" + "\n" + "Steve Dickson (1):\n" + " mount: use sec= that was specified on the command line\n" + "\n" + "Tigran Mkrtchyan (2):\n" + " nfs4: clnt: respect noresvport when establishing connections to DSes\n" + " nfs4: flexfiles: respect noresvport when establishing connections to DSes\n" + "\n" + "Trond Myklebust (69):\n" + " SUNRPC: Small optimisation of client receive\n" + " SUNRPC: Consolidate xs_tcp_data_ready and xs_data_ready\n" + " SUNRPC: RPC transport queue must be low latency\n" + " SUNRPC: Reduce latency when send queue is congested\n" + " SUNRPC: Fix suspicious enobufs issues.\n" + " NFS: Don't flush caches for a getattr that races with writeback\n" + " NFS: Cache access checks more aggressively\n" + " NFS: Cache aggressively when file is open for writing\n" + " NFS: Kill NFS_INO_NFS_INO_FLUSHING: it is a performance killer\n" + " NFS: writepage of a single page should not be synchronous\n" + " NFS: Don't hold the inode lock across fsync()\n" + " NFS: Don't call COMMIT in ->releasepage()\n" + " NFS: Fix an Oops in the pNFS files and flexfiles connection setup to the DS\n" + " NFS/pnfs: Do not clobber existing pgio_done_cb in nfs4_proc_read_setup\n" + " NFSv4: Allow retry of operations that used a returned delegation stateid\n" + " pNFS/files: Fix layoutcommit after a commit to DS\n" + " pNFS/flexfiles: Fix layoutcommit after a commit to DS\n" + " pNFS/flexfiles: Clean up calls to pnfs_set_layoutcommit()\n" + " pNFS: Files and flexfiles always need to commit before layoutcommit\n" + " pNFS: Ensure we layoutcommit before revalidating attributes\n" + " pNFS: pnfs_layoutcommit_outstanding() is no longer used when !CONFIG_NFS_V4_1\n" + " NFS: Fix O_DIRECT verifier problems\n" + " NFS: Ensure we reset the write verifier 'committed' value on resend.\n" + " NFS: Remove racy size manipulations in O_DIRECT\n" + " NFS Cleanup: move call to generic_write_checks() into fs/nfs/direct.c\n" + " NFS: Move buffered I/O locking into nfs_file_write()\n" + " NFS: Do not serialise O_DIRECT reads and writes\n" + " NFS: Cleanup nfs_direct_complete()\n" + " NFS: Remove redundant waits for O_DIRECT in fsync() and write_begin()\n" + " NFS: Remove unused function nfs_revalidate_mapping_protected()\n" + " NFS: Do not aggressively cache file attributes in the case of O_DIRECT\n" + " NFS: Getattr doesn't require data sync semantics\n" + " NFSv4.2: Fix a race in nfs42_proc_deallocate()\n" + " NFSv4.2: Fix writeback races in nfs4_copy_file_range\n" + " NFSv4.2: llseek(SEEK_HOLE) and llseek(SEEK_DATA) don't require data sync\n" + " NFS nfs_vm_page_mkwrite: Don't freeze me, Bro...\n" + " NFSv4: Revert \"Truncating file opens should also sync O_DIRECT writes\"\n" + " Merge tag 'nfs-rdma-4.8-1' of git://git.linux-nfs.org/projects/anna/nfs-rdma\n" + " SUNRPC: Fix infinite looping in rpc_clnt_iterate_for_each_xprt\n" + " pNFS: Don't mark the inode as revalidated if a LAYOUTCOMMIT is outstanding\n" + " pNFS: Fix post-layoutget error handling in pnfs_update_layout()\n" + " pNFS: Separate handling of NFS4ERR_LAYOUTTRYLATER and RECALLCONFLICT\n" + " pNFS: Handle NFS4ERR_RECALLCONFLICT correctly in LAYOUTGET\n" + " pNFS: Fix LAYOUTGET handling of NFS4ERR_BAD_STATEID and NFS4ERR_EXPIRED\n" + " Merge tag 'nfs-rdma-4.8-2' of git://git.linux-nfs.org/projects/anna/nfs-rdma\n" + " pNFS/files: filelayout_write_done_cb must call nfs_writeback_update_inode()\n" + " Merge commit 'e7bdea7750eb'\n" + " pNFS: LAYOUTRETURN should only update the stateid if the layout is valid\n" + " pNFS: Clear the layout return tracking on layout reinitialisation\n" + " pNFS: Always update the layout stateid if NFS_LAYOUT_INVALID_STID is set\n" + " pNFS: Always update the layout barrier seqid on LAYOUTGET\n" + " pNFS: Fix CB_LAYOUTRECALL stateid verification\n" + " pNFS: Ensure layoutreturn acts as a completion for layout callbacks\n" + " pNFS: Do not set plh_return_seq for non-callback related layoutreturns\n" + " NFS: pnfs_mark_matching_lsegs_return() should match the layout sequence id\n" + " pNFS: Cleanup - don't open code pnfs_mark_layout_stateid_invalid()\n" + " pNFS: Clear the layout metadata if the server changed the layout stateid\n" + " pNFS: Remove redundant pnfs_mark_layout_returned_if_empty()\n" + " pNFS: Remove redundant stateid invalidation\n" + " pNFS: Cleanup - do layout segment initialisation in one place\n" + " pNFS: Remove redundant smp_mb() from pnfs_init_lseg()\n" + " SUNRPC: Fix a compiler warning in fs/nfs/clnt.c\n" + " Merge branch 'sunrpc'\n" + " Merge branch 'writeback'\n" + " Merge branch 'pnfs'\n" + " Merge branch 'nfs-rdma'\n" + " NFSv4: Fix warning \"no previous prototype for \342\200\230nfs4_listxattr\342\200\231\"\n" + " NFSv4.2: Fix warning \"variable \342\200\230stateids\342\200\231 set but not used\"\n" + " NFSv4: Clean up lookup of SECINFO_NO_NAME\n" + "\n" + "kbuild test robot (1):\n" + " xprtrdma: fix semicolon.cocci warnings\n" + "\n" + " fs/nfs/Makefile | 2 +-\n" + " fs/nfs/blocklayout/dev.c | 110 +++++++---\n" + " fs/nfs/blocklayout/extent_tree.c | 27 ++-\n" + " fs/nfs/callback_proc.c | 64 ++++--\n" + " fs/nfs/callback_xdr.c | 6 +-\n" + " fs/nfs/client.c | 22 +-\n" + " fs/nfs/dir.c | 52 +++--\n" + " fs/nfs/direct.c | 93 +++-----\n" + " fs/nfs/file.c | 100 +++------\n" + " fs/nfs/filelayout/filelayout.c | 18 +-\n" + " fs/nfs/flexfilelayout/flexfilelayout.c | 23 +-\n" + " fs/nfs/inode.c | 138 ++++++------\n" + " fs/nfs/internal.h | 62 +++++-\n" + " fs/nfs/io.c | 147 +++++++++++++\n" + " fs/nfs/nfs3client.c | 14 +-\n" + " fs/nfs/nfs42proc.c | 24 ++-\n" + " fs/nfs/nfs42xdr.c | 12 +-\n" + " fs/nfs/nfs4_fs.h | 1 +\n" + " fs/nfs/nfs4client.c | 26 ++-\n" + " fs/nfs/nfs4file.c | 16 +-\n" + " fs/nfs/nfs4proc.c | 153 ++++++-------\n" + " fs/nfs/nfs4xdr.c | 11 +-\n" + " fs/nfs/nfstrace.h | 1 -\n" + " fs/nfs/pnfs.c | 191 ++++++++++-------\n" + " fs/nfs/pnfs.h | 34 ++-\n" + " fs/nfs/pnfs_nfs.c | 13 +-\n" + " fs/nfs/super.c | 14 +-\n" + " fs/nfs/write.c | 44 ++--\n" + " include/linux/nfs_fs.h | 3 +-\n" + " include/linux/nfs_xdr.h | 5 +-\n" + " include/linux/sunrpc/auth.h | 9 +-\n" + " include/linux/sunrpc/gss_api.h | 2 +\n" + " include/linux/sunrpc/sched.h | 5 +\n" + " include/linux/sunrpc/xprtsock.h | 1 +\n" + " net/sunrpc/auth.c | 8 +-\n" + " net/sunrpc/auth_generic.c | 9 +-\n" + " net/sunrpc/auth_gss/auth_gss.c | 3 +\n" + " net/sunrpc/auth_gss/gss_krb5_mech.c | 2 +\n" + " net/sunrpc/auth_gss/gss_mech_switch.c | 12 ++\n" + " net/sunrpc/auth_null.c | 1 +\n" + " net/sunrpc/auth_unix.c | 1 +\n" + " net/sunrpc/clnt.c | 2 +-\n" + " net/sunrpc/sched.c | 67 ++++--\n" + " net/sunrpc/svc.c | 8 +-\n" + " net/sunrpc/xprt.c | 14 +-\n" + " net/sunrpc/xprtmultipath.c | 8 +-\n" + " net/sunrpc/xprtrdma/Makefile | 2 +-\n" + " net/sunrpc/xprtrdma/fmr_ops.c | 378 +++++++++++++++------------------\n" + " net/sunrpc/xprtrdma/frwr_ops.c | 369 ++++++++++++--------------------\n" + " net/sunrpc/xprtrdma/physical_ops.c | 122 -----------\n" + " net/sunrpc/xprtrdma/rpc_rdma.c | 274 ++++++++++++------------\n" + " net/sunrpc/xprtrdma/transport.c | 40 ++--\n" + " net/sunrpc/xprtrdma/verbs.c | 242 ++++++++++++++-------\n" + " net/sunrpc/xprtrdma/xprt_rdma.h | 118 ++++------\n" + " net/sunrpc/xprtsock.c | 125 ++++++-----\n" + " 55 files changed, 1748 insertions(+), 1500 deletions(-)\n" + " create mode 100644 fs/nfs/io.c\n" + " delete mode 100644 net/sunrpc/xprtrdma/physical_ops.c\n" + "-- \n" + "Trond Myklebust\n" + "Linux NFS client maintainer, PrimaryData\n" + trond.myklebust@primarydata.com -9cb7e8a8ea683c4ab420a0870757c419af92043187dfaf3b4020b2cbc7760aad +ae97eaa67da618ba27dc9ad4299c5e3eacfbec415fb9f4df6d19f5fb764e9b98
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.