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