diff for duplicates of <1521553578.10293.4.camel@primarydata.com> diff --git a/a/1.txt b/N1/1.txt index 4581d6e..9c79077 100644 --- a/a/1.txt +++ b/N1/1.txt @@ -1,29 +1,52 @@ -T24gVHVlLCAyMDE4LTAzLTIwIGF0IDEzOjM1ICswMDAwLCBEYXZpZCBIb3dlbGxzIHdyb3RlOg0K -PiBKLiBCcnVjZSBGaWVsZHMgPGJmaWVsZHNAcmVkaGF0LmNvbT4gd3JvdGU6DQo+IA0KPiA+IEBA -IC0xMzksNiArMTM5LDkgQEAgc3RydWN0IGNyZWQgew0KPiA+ICAJc3RydWN0IGtleQkqdGhyZWFk -X2tleXJpbmc7IC8qIGtleXJpbmcgcHJpdmF0ZSB0bw0KPiA+IHRoaXMgdGhyZWFkICovDQo+ID4g -IAlzdHJ1Y3Qga2V5CSpyZXF1ZXN0X2tleV9hdXRoOyAvKiBhc3N1bWVkDQo+ID4gcmVxdWVzdF9r -ZXkgYXV0aG9yaXR5ICovDQo+ID4gICNlbmRpZg0KPiA+ICsjaWZkZWYgQ09ORklHX0ZJTEVfTE9D -S0lORw0KPiA+ICsJdm9pZAkJKmxlYXNlX2JyZWFrZXI7IC8qIGlkZW50aWZ5IE5GUyBjbGllbnQN -Cj4gPiBicmVha2luZyBhIGRlbGVnYXRpb24gKi8NCj4gPiArI2VuZGlmDQo+ID4gICNpZmRlZiBD -T05GSUdfU0VDVVJJVFkNCj4gPiAgCXZvaWQJCSpzZWN1cml0eTsJLyogc3ViamVjdGl2ZSBMU00N -Cj4gPiBzZWN1cml0eSAqLw0KPiA+ICAjZW5kaWYNCj4gDQo+IFNvcnJ5LCBidXQgZXd3dy4NCj4g -DQo+IFR3byByZWFzb25zIGZvciB0aGF0IGNvbW1lbnQ6DQo+IA0KPiAgKDEpIFRoZSBjcmVkIHN0 -cnVjdCBtYXkgZ2V0IHJldGFpbmVkIGxvbmcgcGFzdCB3aGVyZSB5b3UgZXhwZWN0IGlmDQo+IGl0 -IGdldHMNCj4gICAgICBhdHRhY2hlZCB0byBhbm90aGVyIHByb2Nlc3Mgb3IgYSBmaWxlIGRlc2Ny -aXB0b3IuDQo+IA0KPiAgKDIpIFRoZSAtPmxlYXNlX2JyZWFrZXIgcG9pbnRlciBuZWVkcyBsaWZl -dGltZSBtYW5hZ2VtZW50IGluDQo+IGNyZWQuYy4gIEl0IHdpbGwNCj4gICAgICBwb3RlbnRpYWxs -eSBnZXQgY29waWVkIGFyb3VuZCBhbmQgbWF5IG5lZWQgY2xlYW5pbmcgdXAuDQo+IA0KPiBDYW4g -eW91IHN0aWNrIHlvdXIgYnJlYWtlciBpZGVudGl0eSBpbiBhIGtleSBzdHJ1Y3QgYXMgSmVmZg0K -PiBzdWdnZXN0ZWQ/DQo+IA0KDQpCcnVjZSwNCg0KRG8geW91IHJlYWxseSBuZWVkIHRvIGRvIG1v -cmUgdGhhbiBqdXN0IGlkZW50aWZ5IHRoYXQgdGhpcyBpcyBhIGtuZnNkDQp0aHJlYWQgdnMgbm90 -IGEga25mc2QgdGhyZWFkPyBJJ20gYXNzdW1pbmcgdGhhdCBhIGtuZnNkIHRocmVhZCB3aWxsDQp1 -c3VhbGx5IGJlIGluIGEgcG9zaXRpb24gdG8gcmVjYWxsIGRlbGVnYXRpb25zIGJlZm9yZSBpdCBl -dmVuIGluaXRpYXRlcw0KYW4gb3BlcmF0aW9uIG9uIHRoZSBpbm9kZSBpbiBxdWVzdGlvbiwgd29u -J3QgaXQ/DQoNCklPVzogd2hhdCBpZiB5b3Ugd2VyZSB0byBtb2RpZnkgdGhlIGxlYXNlIGNvZGUg -dG8gYWxsb3cga25mc2QgdGhyZWFkcw0KdG8gcmV0dXJuIGEgInBsZWFzZSBpZ25vcmUgbWUsIGFu -ZCBwcm9jZWVkIHdpdGggdGhlIG9wZXJhdGlvbiB0aGF0DQp0cmlnZ2VyZWQgdGhlIGxlYXNlIGJy -ZWFrIiByZXBseSwgYW5kIHRoZW4gaGFuZGxlIGNvbmZsaWN0cyBiZXR3ZWVuIE5GUw0KY2xpZW50 -cyBvdXRzaWRlIHRoZSBsZWFzZSBjYWxsYmFjayBjb2RlIGFsdG9nZXRoZXI/DQoNCkNoZWVycw0K -ICBUcm9uZA0KLS0gDQpUcm9uZCBNeWtsZWJ1c3QNCkxpbnV4IE5GUyBjbGllbnQgbWFpbnRhaW5l -ciwgUHJpbWFyeURhdGENCnRyb25kLm15a2xlYnVzdEBwcmltYXJ5ZGF0YS5jb20NCg== +On Tue, 2018-03-20 at 13:35 +0000, David Howells wrote: +> J. Bruce Fields <bfields@redhat.com> wrote: +> +> > @@ -139,6 +139,9 @@ struct cred { +> > struct key *thread_keyring; /* keyring private to +> > this thread */ +> > struct key *request_key_auth; /* assumed +> > request_key authority */ +> > #endif +> > +#ifdef CONFIG_FILE_LOCKING +> > + void *lease_breaker; /* identify NFS client +> > breaking a delegation */ +> > +#endif +> > #ifdef CONFIG_SECURITY +> > void *security; /* subjective LSM +> > security */ +> > #endif +> +> Sorry, but ewww. +> +> Two reasons for that comment: +> +> (1) The cred struct may get retained long past where you expect if +> it gets +> attached to another process or a file descriptor. +> +> (2) The ->lease_breaker pointer needs lifetime management in +> cred.c. It will +> potentially get copied around and may need cleaning up. +> +> Can you stick your breaker identity in a key struct as Jeff +> suggested? +> + +Bruce, + +Do you really need to do more than just identify that this is a knfsd +thread vs not a knfsd thread? I'm assuming that a knfsd thread will +usually be in a position to recall delegations before it even initiates +an operation on the inode in question, won't it? + +IOW: what if you were to modify the lease code to allow knfsd threads +to return a "please ignore me, and proceed with the operation that +triggered the lease break" reply, and then handle conflicts between NFS +clients outside the lease callback code altogether? + +Cheers + Trond +-- +Trond Myklebust +Linux NFS client maintainer, PrimaryData +trond.myklebust@primarydata.com diff --git a/a/content_digest b/N1/content_digest index 15625fe..e61582e 100644 --- a/a/content_digest +++ b/N1/content_digest @@ -10,34 +10,57 @@ " linux-fsdevel@vger.kernel.org <linux-fsdevel@vger.kernel.org>\0" "\00:1\0" "b\0" - "T24gVHVlLCAyMDE4LTAzLTIwIGF0IDEzOjM1ICswMDAwLCBEYXZpZCBIb3dlbGxzIHdyb3RlOg0K\n" - "PiBKLiBCcnVjZSBGaWVsZHMgPGJmaWVsZHNAcmVkaGF0LmNvbT4gd3JvdGU6DQo+IA0KPiA+IEBA\n" - "IC0xMzksNiArMTM5LDkgQEAgc3RydWN0IGNyZWQgew0KPiA+ICAJc3RydWN0IGtleQkqdGhyZWFk\n" - "X2tleXJpbmc7IC8qIGtleXJpbmcgcHJpdmF0ZSB0bw0KPiA+IHRoaXMgdGhyZWFkICovDQo+ID4g\n" - "IAlzdHJ1Y3Qga2V5CSpyZXF1ZXN0X2tleV9hdXRoOyAvKiBhc3N1bWVkDQo+ID4gcmVxdWVzdF9r\n" - "ZXkgYXV0aG9yaXR5ICovDQo+ID4gICNlbmRpZg0KPiA+ICsjaWZkZWYgQ09ORklHX0ZJTEVfTE9D\n" - "S0lORw0KPiA+ICsJdm9pZAkJKmxlYXNlX2JyZWFrZXI7IC8qIGlkZW50aWZ5IE5GUyBjbGllbnQN\n" - "Cj4gPiBicmVha2luZyBhIGRlbGVnYXRpb24gKi8NCj4gPiArI2VuZGlmDQo+ID4gICNpZmRlZiBD\n" - "T05GSUdfU0VDVVJJVFkNCj4gPiAgCXZvaWQJCSpzZWN1cml0eTsJLyogc3ViamVjdGl2ZSBMU00N\n" - "Cj4gPiBzZWN1cml0eSAqLw0KPiA+ICAjZW5kaWYNCj4gDQo+IFNvcnJ5LCBidXQgZXd3dy4NCj4g\n" - "DQo+IFR3byByZWFzb25zIGZvciB0aGF0IGNvbW1lbnQ6DQo+IA0KPiAgKDEpIFRoZSBjcmVkIHN0\n" - "cnVjdCBtYXkgZ2V0IHJldGFpbmVkIGxvbmcgcGFzdCB3aGVyZSB5b3UgZXhwZWN0IGlmDQo+IGl0\n" - "IGdldHMNCj4gICAgICBhdHRhY2hlZCB0byBhbm90aGVyIHByb2Nlc3Mgb3IgYSBmaWxlIGRlc2Ny\n" - "aXB0b3IuDQo+IA0KPiAgKDIpIFRoZSAtPmxlYXNlX2JyZWFrZXIgcG9pbnRlciBuZWVkcyBsaWZl\n" - "dGltZSBtYW5hZ2VtZW50IGluDQo+IGNyZWQuYy4gIEl0IHdpbGwNCj4gICAgICBwb3RlbnRpYWxs\n" - "eSBnZXQgY29waWVkIGFyb3VuZCBhbmQgbWF5IG5lZWQgY2xlYW5pbmcgdXAuDQo+IA0KPiBDYW4g\n" - "eW91IHN0aWNrIHlvdXIgYnJlYWtlciBpZGVudGl0eSBpbiBhIGtleSBzdHJ1Y3QgYXMgSmVmZg0K\n" - "PiBzdWdnZXN0ZWQ/DQo+IA0KDQpCcnVjZSwNCg0KRG8geW91IHJlYWxseSBuZWVkIHRvIGRvIG1v\n" - "cmUgdGhhbiBqdXN0IGlkZW50aWZ5IHRoYXQgdGhpcyBpcyBhIGtuZnNkDQp0aHJlYWQgdnMgbm90\n" - "IGEga25mc2QgdGhyZWFkPyBJJ20gYXNzdW1pbmcgdGhhdCBhIGtuZnNkIHRocmVhZCB3aWxsDQp1\n" - "c3VhbGx5IGJlIGluIGEgcG9zaXRpb24gdG8gcmVjYWxsIGRlbGVnYXRpb25zIGJlZm9yZSBpdCBl\n" - "dmVuIGluaXRpYXRlcw0KYW4gb3BlcmF0aW9uIG9uIHRoZSBpbm9kZSBpbiBxdWVzdGlvbiwgd29u\n" - "J3QgaXQ/DQoNCklPVzogd2hhdCBpZiB5b3Ugd2VyZSB0byBtb2RpZnkgdGhlIGxlYXNlIGNvZGUg\n" - "dG8gYWxsb3cga25mc2QgdGhyZWFkcw0KdG8gcmV0dXJuIGEgInBsZWFzZSBpZ25vcmUgbWUsIGFu\n" - "ZCBwcm9jZWVkIHdpdGggdGhlIG9wZXJhdGlvbiB0aGF0DQp0cmlnZ2VyZWQgdGhlIGxlYXNlIGJy\n" - "ZWFrIiByZXBseSwgYW5kIHRoZW4gaGFuZGxlIGNvbmZsaWN0cyBiZXR3ZWVuIE5GUw0KY2xpZW50\n" - "cyBvdXRzaWRlIHRoZSBsZWFzZSBjYWxsYmFjayBjb2RlIGFsdG9nZXRoZXI/DQoNCkNoZWVycw0K\n" - "ICBUcm9uZA0KLS0gDQpUcm9uZCBNeWtsZWJ1c3QNCkxpbnV4IE5GUyBjbGllbnQgbWFpbnRhaW5l\n" - ciwgUHJpbWFyeURhdGENCnRyb25kLm15a2xlYnVzdEBwcmltYXJ5ZGF0YS5jb20NCg== + "On Tue, 2018-03-20 at 13:35 +0000, David Howells wrote:\n" + "> J. Bruce Fields <bfields@redhat.com> wrote:\n" + "> \n" + "> > @@ -139,6 +139,9 @@ struct cred {\n" + "> > \tstruct key\t*thread_keyring; /* keyring private to\n" + "> > this thread */\n" + "> > \tstruct key\t*request_key_auth; /* assumed\n" + "> > request_key authority */\n" + "> > #endif\n" + "> > +#ifdef CONFIG_FILE_LOCKING\n" + "> > +\tvoid\t\t*lease_breaker; /* identify NFS client\n" + "> > breaking a delegation */\n" + "> > +#endif\n" + "> > #ifdef CONFIG_SECURITY\n" + "> > \tvoid\t\t*security;\t/* subjective LSM\n" + "> > security */\n" + "> > #endif\n" + "> \n" + "> Sorry, but ewww.\n" + "> \n" + "> Two reasons for that comment:\n" + "> \n" + "> (1) The cred struct may get retained long past where you expect if\n" + "> it gets\n" + "> attached to another process or a file descriptor.\n" + "> \n" + "> (2) The ->lease_breaker pointer needs lifetime management in\n" + "> cred.c. It will\n" + "> potentially get copied around and may need cleaning up.\n" + "> \n" + "> Can you stick your breaker identity in a key struct as Jeff\n" + "> suggested?\n" + "> \n" + "\n" + "Bruce,\n" + "\n" + "Do you really need to do more than just identify that this is a knfsd\n" + "thread vs not a knfsd thread? I'm assuming that a knfsd thread will\n" + "usually be in a position to recall delegations before it even initiates\n" + "an operation on the inode in question, won't it?\n" + "\n" + "IOW: what if you were to modify the lease code to allow knfsd threads\n" + "to return a \"please ignore me, and proceed with the operation that\n" + "triggered the lease break\" reply, and then handle conflicts between NFS\n" + "clients outside the lease callback code altogether?\n" + "\n" + "Cheers\n" + " Trond\n" + "-- \n" + "Trond Myklebust\n" + "Linux NFS client maintainer, PrimaryData\n" + trond.myklebust@primarydata.com -55bddd9ce98c0e15b039544a07d3ea25054fab5e9bf955a4fea3ed4aa2c4ee32 +01a6492920b2aed1d220006ff52a84ff41f53e2bd85fc356741a5de2882ca415
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.