All of lore.kernel.org
 help / color / mirror / Atom feed
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.