diff for duplicates of <1489760913.8441.1.camel@primarydata.com> diff --git a/a/1.txt b/N1/1.txt index 17aed84..2e8fb67 100644 --- a/a/1.txt +++ b/N1/1.txt @@ -1,92 +1,66 @@ -On Fri, 2017-03-17 at 09:02 -0400, Jeff Layton wrote: -> On Fri, 2017-03-17 at 12:50 +0000, Trond Myklebust wrote: -> > On Fri, 2017-03-17 at 14:10 +0200, Elena Reshetova wrote: -> > > refcount_t type and corresponding API should be -> > > used instead of atomic_t when the variable is used as -> > > a reference counter. This allows to avoid accidental -> > > refcounter overflows that might lead to use-after-free -> > > situations. -> > > -> > > Signed-off-by: Elena Reshetova <elena.reshetova@intel.com> -> > > Signed-off-by: Hans Liljestrand <ishkamiel@gmail.com> -> > > Signed-off-by: Kees Cook <keescook@chromium.org> -> > > Signed-off-by: David Windsor <dwindsor@gmail.com> -> > > --- -> > > include/linux/sunrpc/auth.h | 8 ++++---- -> > > net/sunrpc/auth.c | 12 ++++++------ -> > > 2 files changed, 10 insertions(+), 10 deletions(-) -> > > -> > > diff --git a/include/linux/sunrpc/auth.h -> > > b/include/linux/sunrpc/auth.h -> > > index b1bc62b..bd36e0b 100644 -> > > --- a/include/linux/sunrpc/auth.h -> > > +++ b/include/linux/sunrpc/auth.h -> > > @@ -15,7 +15,7 @@ -> > > #include <linux/sunrpc/msg_prot.h> -> > > #include <linux/sunrpc/xdr.h> -> > > -> > > -#include <linux/atomic.h> -> > > +#include <linux/refcount.h> -> > > #include <linux/rcupdate.h> -> > > #include <linux/uidgid.h> -> > > #include <linux/utsname.h> -> > > @@ -68,7 +68,7 @@ struct rpc_cred { -> > > #endif -> > > unsigned long cr_expire; /* when -> > > to gc -> > > */ -> > > unsigned long cr_flags; /* various -> > > flags */ -> > > - atomic_t cr_count; /* ref count */ -> > > + refcount_t cr_count; /* ref count -> > > */ -> > > -> > -> > NACK. That's going to be hitting -> > WARN_ONCE(!refcount_inc_not_zero(r), -> > "refcount_t: increment on 0; use-after-free.\n") like there's no -> > tomorrow... -> > -> > Please stop with these automated conversions. They are going to -> > cause a -> > lot more bugs than they fix. -> > -> -> Agreed. These patchsets are touching places where we've already -> banged -> out most of the refcounting bugs. I'm against doing large scale -> conversions like this without a damned good reason. -> -> I think it may be best to do this sort of thing in a more piecemeal -> fashion. Pick a subsystem or two and do the conversions there to -> prove -> that they're better than what we have. If the subsystem already has -> problems with its refcounting, then so much the better. Point to bugs -> that this new infrastructure helped find. -> -> Encourage people to adopt your new infrastructure as new refcounted -> objects are introduced into the kernel. You might even consider a LWN -> article about this. -> -> Eventually we'll get around to changing existing code to use it, once -> there is a sufficient advantage to doing so. Most likely when we're -> reworking the code for other reasons, or when we're chasing some -> horrid -> refcounting bug and think that this might help find it. - -The main issue is that this "refcount_t" implementation appears to be -assuming that there is one and only one model for refcounts (the one -where a value of "0" means "free me immediately"). - -The kernel has a plethora of object caching implementations where this -is simply not the case; the dcache is a prime example, and this cache -is another. In both these implementation, the atomic_t variable is -being used more as a semaphore-style lock that prevents freeing of the -object while it is in active use as opposed to being freeable, but -cached. This is why these automated conversions are a nuisance and a -source of bugs. - --- -Trond Myklebust -Linux NFS client maintainer, PrimaryData -trond.myklebust@primarydata.com +T24gRnJpLCAyMDE3LTAzLTE3IGF0IDA5OjAyIC0wNDAwLCBKZWZmIExheXRvbiB3cm90ZToNCj4g +T24gRnJpLCAyMDE3LTAzLTE3IGF0IDEyOjUwICswMDAwLCBUcm9uZCBNeWtsZWJ1c3Qgd3JvdGU6 +DQo+ID4gT24gRnJpLCAyMDE3LTAzLTE3IGF0IDE0OjEwICswMjAwLCBFbGVuYSBSZXNoZXRvdmEg +d3JvdGU6DQo+ID4gPiByZWZjb3VudF90IHR5cGUgYW5kIGNvcnJlc3BvbmRpbmcgQVBJIHNob3Vs +ZCBiZQ0KPiA+ID4gdXNlZCBpbnN0ZWFkIG9mIGF0b21pY190IHdoZW4gdGhlIHZhcmlhYmxlIGlz +IHVzZWQgYXMNCj4gPiA+IGEgcmVmZXJlbmNlIGNvdW50ZXIuIFRoaXMgYWxsb3dzIHRvIGF2b2lk +IGFjY2lkZW50YWwNCj4gPiA+IHJlZmNvdW50ZXIgb3ZlcmZsb3dzIHRoYXQgbWlnaHQgbGVhZCB0 +byB1c2UtYWZ0ZXItZnJlZQ0KPiA+ID4gc2l0dWF0aW9ucy4NCj4gPiA+IA0KPiA+ID4gU2lnbmVk +LW9mZi1ieTogRWxlbmEgUmVzaGV0b3ZhIDxlbGVuYS5yZXNoZXRvdmFAaW50ZWwuY29tPg0KPiA+ +ID4gU2lnbmVkLW9mZi1ieTogSGFucyBMaWxqZXN0cmFuZCA8aXNoa2FtaWVsQGdtYWlsLmNvbT4N +Cj4gPiA+IFNpZ25lZC1vZmYtYnk6IEtlZXMgQ29vayA8a2Vlc2Nvb2tAY2hyb21pdW0ub3JnPg0K +PiA+ID4gU2lnbmVkLW9mZi1ieTogRGF2aWQgV2luZHNvciA8ZHdpbmRzb3JAZ21haWwuY29tPg0K +PiA+ID4gLS0tDQo+ID4gPiDCoGluY2x1ZGUvbGludXgvc3VucnBjL2F1dGguaCB8wqDCoDggKysr +Ky0tLS0NCj4gPiA+IMKgbmV0L3N1bnJwYy9hdXRoLmPCoMKgwqDCoMKgwqDCoMKgwqDCoMKgfCAx +MiArKysrKystLS0tLS0NCj4gPiA+IMKgMiBmaWxlcyBjaGFuZ2VkLCAxMCBpbnNlcnRpb25zKCsp +LCAxMCBkZWxldGlvbnMoLSkNCj4gPiA+IA0KPiA+ID4gZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGlu +dXgvc3VucnBjL2F1dGguaA0KPiA+ID4gYi9pbmNsdWRlL2xpbnV4L3N1bnJwYy9hdXRoLmgNCj4g +PiA+IGluZGV4IGIxYmM2MmIuLmJkMzZlMGIgMTAwNjQ0DQo+ID4gPiAtLS0gYS9pbmNsdWRlL2xp +bnV4L3N1bnJwYy9hdXRoLmgNCj4gPiA+ICsrKyBiL2luY2x1ZGUvbGludXgvc3VucnBjL2F1dGgu +aA0KPiA+ID4gQEAgLTE1LDcgKzE1LDcgQEANCj4gPiA+IMKgI2luY2x1ZGUgPGxpbnV4L3N1bnJw +Yy9tc2dfcHJvdC5oPg0KPiA+ID4gwqAjaW5jbHVkZSA8bGludXgvc3VucnBjL3hkci5oPg0KPiA+ +ID4gwqANCj4gPiA+IC0jaW5jbHVkZSA8bGludXgvYXRvbWljLmg+DQo+ID4gPiArI2luY2x1ZGUg +PGxpbnV4L3JlZmNvdW50Lmg+DQo+ID4gPiDCoCNpbmNsdWRlIDxsaW51eC9yY3VwZGF0ZS5oPg0K +PiA+ID4gwqAjaW5jbHVkZSA8bGludXgvdWlkZ2lkLmg+DQo+ID4gPiDCoCNpbmNsdWRlIDxsaW51 +eC91dHNuYW1lLmg+DQo+ID4gPiBAQCAtNjgsNyArNjgsNyBAQCBzdHJ1Y3QgcnBjX2NyZWQgew0K +PiA+ID4gwqAjZW5kaWYNCj4gPiA+IMKgCXVuc2lnbmVkIGxvbmcJCWNyX2V4cGlyZTsJLyogd2hl +bg0KPiA+ID4gdG8gZ2MNCj4gPiA+ICovDQo+ID4gPiDCoAl1bnNpZ25lZCBsb25nCQljcl9mbGFn +czsJLyogdmFyaW91cw0KPiA+ID4gZmxhZ3MgKi8NCj4gPiA+IC0JYXRvbWljX3QJCWNyX2NvdW50 +OwkvKiByZWYgY291bnQgKi8NCj4gPiA+ICsJcmVmY291bnRfdAkJY3JfY291bnQ7CS8qIHJlZiBj +b3VudA0KPiA+ID4gKi8NCj4gPiA+IA0KPiA+IA0KPiA+IE5BQ0suIFRoYXQncyBnb2luZyB0byBi +ZSBoaXR0aW5nDQo+ID4gV0FSTl9PTkNFKCFyZWZjb3VudF9pbmNfbm90X3plcm8ociksDQo+ID4g +InJlZmNvdW50X3Q6IGluY3JlbWVudCBvbiAwOyB1c2UtYWZ0ZXItZnJlZS5cbiIpIGxpa2UgdGhl +cmUncyBubw0KPiA+IHRvbW9ycm93Li4uDQo+ID4gDQo+ID4gUGxlYXNlIHN0b3Agd2l0aCB0aGVz +ZSBhdXRvbWF0ZWQgY29udmVyc2lvbnMuIFRoZXkgYXJlIGdvaW5nIHRvDQo+ID4gY2F1c2UgYQ0K +PiA+IGxvdCBtb3JlIGJ1Z3MgdGhhbiB0aGV5IGZpeC4NCj4gPiANCj4gDQo+IEFncmVlZC4gVGhl +c2UgcGF0Y2hzZXRzIGFyZSB0b3VjaGluZyBwbGFjZXMgd2hlcmUgd2UndmUgYWxyZWFkeQ0KPiBi +YW5nZWQNCj4gb3V0IG1vc3Qgb2YgdGhlIHJlZmNvdW50aW5nIGJ1Z3MuIEknbSBhZ2FpbnN0IGRv +aW5nIGxhcmdlIHNjYWxlDQo+IGNvbnZlcnNpb25zIGxpa2UgdGhpcyB3aXRob3V0IGEgZGFtbmVk +IGdvb2QgcmVhc29uLg0KPiANCj4gSSB0aGluayBpdCBtYXkgYmUgYmVzdCB0byBkbyB0aGlzIHNv +cnQgb2YgdGhpbmcgaW4gYSBtb3JlIHBpZWNlbWVhbA0KPiBmYXNoaW9uLiBQaWNrIGEgc3Vic3lz +dGVtIG9yIHR3byBhbmQgZG8gdGhlIGNvbnZlcnNpb25zIHRoZXJlIHRvDQo+IHByb3ZlDQo+IHRo +YXQgdGhleSdyZSBiZXR0ZXIgdGhhbiB3aGF0IHdlIGhhdmUuIElmIHRoZSBzdWJzeXN0ZW0gYWxy +ZWFkeSBoYXMNCj4gcHJvYmxlbXMgd2l0aCBpdHMgcmVmY291bnRpbmcsIHRoZW4gc28gbXVjaCB0 +aGUgYmV0dGVyLiBQb2ludCB0byBidWdzDQo+IHRoYXQgdGhpcyBuZXcgaW5mcmFzdHJ1Y3R1cmUg +aGVscGVkIGZpbmQuDQo+IA0KPiBFbmNvdXJhZ2UgcGVvcGxlIHRvIGFkb3B0IHlvdXIgbmV3IGlu +ZnJhc3RydWN0dXJlIGFzIG5ldyByZWZjb3VudGVkDQo+IG9iamVjdHMgYXJlIGludHJvZHVjZWQg +aW50byB0aGUga2VybmVsLiBZb3UgbWlnaHQgZXZlbiBjb25zaWRlciBhIExXTg0KPiBhcnRpY2xl +IGFib3V0IHRoaXMuDQo+IA0KPiBFdmVudHVhbGx5IHdlJ2xsIGdldCBhcm91bmQgdG8gY2hhbmdp +bmcgZXhpc3RpbmcgY29kZSB0byB1c2UgaXQsIG9uY2UNCj4gdGhlcmUgaXMgYSBzdWZmaWNpZW50 +IGFkdmFudGFnZSB0byBkb2luZyBzby4gTW9zdCBsaWtlbHkgd2hlbiB3ZSdyZQ0KPiByZXdvcmtp +bmcgdGhlIGNvZGUgZm9yIG90aGVyIHJlYXNvbnMsIG9yIHdoZW4gd2UncmUgY2hhc2luZyBzb21l +DQo+IGhvcnJpZA0KPiByZWZjb3VudGluZyBidWcgYW5kIHRoaW5rIHRoYXQgdGhpcyBtaWdodCBo +ZWxwIGZpbmQgaXQuDQoNClRoZSBtYWluIGlzc3VlIGlzIHRoYXQgdGhpcyAicmVmY291bnRfdCIg +aW1wbGVtZW50YXRpb24gYXBwZWFycyB0byBiZQ0KYXNzdW1pbmcgdGhhdCB0aGVyZSBpcyBvbmUg +YW5kIG9ubHkgb25lIG1vZGVsIGZvciByZWZjb3VudHMgKHRoZSBvbmUNCndoZXJlIGEgdmFsdWUg +b2YgIjAiIG1lYW5zICJmcmVlIG1lIGltbWVkaWF0ZWx5IikuDQoNClRoZSBrZXJuZWwgaGFzIGEg +cGxldGhvcmEgb2Ygb2JqZWN0IGNhY2hpbmcgaW1wbGVtZW50YXRpb25zIHdoZXJlIHRoaXMNCmlz +IHNpbXBseSBub3QgdGhlIGNhc2U7IHRoZSBkY2FjaGUgaXMgYSBwcmltZSBleGFtcGxlLCBhbmQg +dGhpcyBjYWNoZQ0KaXMgYW5vdGhlci4gSW4gYm90aCB0aGVzZSBpbXBsZW1lbnRhdGlvbiwgdGhl +IGF0b21pY190IHZhcmlhYmxlIGlzDQpiZWluZyB1c2VkIG1vcmUgYXMgYSBzZW1hcGhvcmUtc3R5 +bGUgbG9jayB0aGF0IHByZXZlbnRzIGZyZWVpbmcgb2YgdGhlDQpvYmplY3Qgd2hpbGUgaXQgaXMg +aW4gYWN0aXZlIHVzZSBhcyBvcHBvc2VkIHRvIGJlaW5nIGZyZWVhYmxlLCBidXQNCmNhY2hlZC4g +VGhpcyBpcyB3aHkgdGhlc2UgYXV0b21hdGVkIGNvbnZlcnNpb25zIGFyZSBhIG51aXNhbmNlIGFu +ZCBhDQpzb3VyY2Ugb2YgYnVncy4NCg0KLS0gDQpUcm9uZCBNeWtsZWJ1c3QNCkxpbnV4IE5GUyBj +bGllbnQgbWFpbnRhaW5lciwgUHJpbWFyeURhdGENCnRyb25kLm15a2xlYnVzdEBwcmltYXJ5ZGF0 +YS5jb20NCg== diff --git a/a/content_digest b/N1/content_digest index ebcd1d0..f20a017 100644 --- a/a/content_digest +++ b/N1/content_digest @@ -2,122 +2,101 @@ "ref\01489752646-8749-2-git-send-email-elena.reshetova@intel.com\0" "ref\01489755011.6453.1.camel@primarydata.com\0" "ref\01489755736.2810.10.camel@poochiereds.net\0" - "ref\01489755736.2810.10.camel-vpEMnDpepFuMZCB2o+C8xQ@public.gmane.org\0" - "From\0Trond Myklebust <trondmy-7I+n7zu2hftEKMMhf/gKZA@public.gmane.org>\0" + "From\0Trond Myklebust <trondmy@primarydata.com>\0" "Subject\0Re: [PATCH 01/23] net, sunrpc: convert rpc_cred.cr_count from atomic_t to refcount_t\0" "Date\0Fri, 17 Mar 2017 14:28:37 +0000\0" - "To\0elena.reshetova-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org <elena.reshetova-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>" - netdev-u79uwXL29TY76Z2rM5mHXA@public.gmane.org <netdev-u79uwXL29TY76Z2rM5mHXA@public.gmane.org> - " jlayton-vpEMnDpepFuMZCB2o+C8xQ@public.gmane.org <jlayton-vpEMnDpepFuMZCB2o+C8xQ@public.gmane.org>\0" - "Cc\0herbert-lOAM2aK0SrRLBo1qDEOMRrpzq4S04n8Q@public.gmane.org <herbert-lOAM2aK0SrRLBo1qDEOMRrpzq4S04n8Q@public.gmane.org>" - linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org <linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org> - peterz-wEGCiKHe2LqWVfeAwA7xHQ@public.gmane.org <peterz-wEGCiKHe2LqWVfeAwA7xHQ@public.gmane.org> - ralf-6z/3iImG2C8G8FEW9MqTrA@public.gmane.org <ralf-6z/3iImG2C8G8FEW9MqTrA@public.gmane.org> - linux-rdma-u79uwXL29TY76Z2rM5mHXA@public.gmane.org <linux-rdma-u79uwXL29TY76Z2rM5mHXA@public.gmane.org> - ishkamiel-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org <ishkamiel-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> - bfields-uC3wQj2KruNg9hUCZPvPmw@public.gmane.org <bfields-uC3wQj2KruNg9hUCZPvPmw@public.gmane.org> - steffen.klassert-opNxpl+3fjRBDgjK7y7TUQ@public.gmane.org <steffen.klassert-opNxpl+3fjRBDgjK7y7TUQ@public.gmane.org> - nhorman-2XuSBdqkA4R54TAoqtyWWQ@public.gmane.org <nhorman-2XuSBdqkA4R54TAoqtyWWQ@public.gmane.org> - linux-nfs-u79uwXL29TY76Z2rM5mHXA@public.gmane.org <linux-nfs-u79uwXL29TY76Z2rM5mHXA@public.gmane.org> - jreuter-K7Hl1MveuGQ@public.gmane.org <jreuter-K7Hl1MveuGQ@public.gmane.org> - keescook-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org <keescook-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org> - linux-hams-u79uwXL29TY76Z2rM5mHXA@public.gmane.org <linux-hams-u79uwXL29TY76Z2rM5mHXA@public.gmane.org> - dwindsor-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org <dwindsor-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> - zyan-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org <zyan-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org> - " sage@redhat.\0" + "To\0elena.reshetova@intel.com <elena.reshetova@intel.com>" + netdev@vger.kernel.org <netdev@vger.kernel.org> + " jlayton@poochiereds.net <jlayton@poochiereds.net>\0" + "Cc\0herbert@gondor.apana.org.au <herbert@gondor.apana.org.au>" + linux-kernel@vger.kernel.org <linux-kernel@vger.kernel.org> + peterz@infradead.org <peterz@infradead.org> + ralf@linux-mips.org <ralf@linux-mips.org> + linux-rdma@vger.kernel.org <linux-rdma@vger.kernel.org> + ishkamiel@gmail.com <ishkamiel@gmail.com> + bfields@fieldses.org <bfields@fieldses.org> + steffen.klassert@secunet.com <steffen.klassert@secunet.com> + nhorman@tuxdriver.com <nhorman@tuxdriver.com> + linux-nfs@vger.kernel.org <linux-nfs@vger.kernel.org> + jreuter@yaina.de <jreuter@yaina.de> + keescook@chromium.org <keescook@chromium.org> + linux-hams@vger.kernel.org <linux-hams@vger.kernel.org> + dwindsor@gmail.com <dwindsor@gmail.com> + zyan@redhat.com <zyan@redhat.com> + sage@redhat.com <sage@redhat.com> + davem@davemloft.net <davem@davemloft.net> + linux-sctp@vger.kernel.org <linux-sctp@vger.kernel.org> + vyasevich@gmail.com <vyasevich@gmail.com> + linux-x25@vger.kernel.org <linux-x25@vger.kernel.org> + santosh.shilimkar@oracle.com <santosh.shilimkar@oracle.com> + " ceph-devel@vger.kernel.org <ceph-devel@vger.kernel.org>\0" "\00:1\0" "b\0" - "On Fri, 2017-03-17 at 09:02 -0400, Jeff Layton wrote:\n" - "> On Fri, 2017-03-17 at 12:50 +0000, Trond Myklebust wrote:\n" - "> > On Fri, 2017-03-17 at 14:10 +0200, Elena Reshetova wrote:\n" - "> > > refcount_t type and corresponding API should be\n" - "> > > used instead of atomic_t when the variable is used as\n" - "> > > a reference counter. This allows to avoid accidental\n" - "> > > refcounter overflows that might lead to use-after-free\n" - "> > > situations.\n" - "> > > \n" - "> > > Signed-off-by: Elena Reshetova <elena.reshetova@intel.com>\n" - "> > > Signed-off-by: Hans Liljestrand <ishkamiel@gmail.com>\n" - "> > > Signed-off-by: Kees Cook <keescook@chromium.org>\n" - "> > > Signed-off-by: David Windsor <dwindsor@gmail.com>\n" - "> > > ---\n" - "> > > \302\240include/linux/sunrpc/auth.h |\302\240\302\2408 ++++----\n" - "> > > \302\240net/sunrpc/auth.c\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240| 12 ++++++------\n" - "> > > \302\2402 files changed, 10 insertions(+), 10 deletions(-)\n" - "> > > \n" - "> > > diff --git a/include/linux/sunrpc/auth.h\n" - "> > > b/include/linux/sunrpc/auth.h\n" - "> > > index b1bc62b..bd36e0b 100644\n" - "> > > --- a/include/linux/sunrpc/auth.h\n" - "> > > +++ b/include/linux/sunrpc/auth.h\n" - "> > > @@ -15,7 +15,7 @@\n" - "> > > \302\240#include <linux/sunrpc/msg_prot.h>\n" - "> > > \302\240#include <linux/sunrpc/xdr.h>\n" - "> > > \302\240\n" - "> > > -#include <linux/atomic.h>\n" - "> > > +#include <linux/refcount.h>\n" - "> > > \302\240#include <linux/rcupdate.h>\n" - "> > > \302\240#include <linux/uidgid.h>\n" - "> > > \302\240#include <linux/utsname.h>\n" - "> > > @@ -68,7 +68,7 @@ struct rpc_cred {\n" - "> > > \302\240#endif\n" - "> > > \302\240\tunsigned long\t\tcr_expire;\t/* when\n" - "> > > to gc\n" - "> > > */\n" - "> > > \302\240\tunsigned long\t\tcr_flags;\t/* various\n" - "> > > flags */\n" - "> > > -\tatomic_t\t\tcr_count;\t/* ref count */\n" - "> > > +\trefcount_t\t\tcr_count;\t/* ref count\n" - "> > > */\n" - "> > > \n" - "> > \n" - "> > NACK. That's going to be hitting\n" - "> > WARN_ONCE(!refcount_inc_not_zero(r),\n" - "> > \"refcount_t: increment on 0; use-after-free.\\n\") like there's no\n" - "> > tomorrow...\n" - "> > \n" - "> > Please stop with these automated conversions. They are going to\n" - "> > cause a\n" - "> > lot more bugs than they fix.\n" - "> > \n" - "> \n" - "> Agreed. These patchsets are touching places where we've already\n" - "> banged\n" - "> out most of the refcounting bugs. I'm against doing large scale\n" - "> conversions like this without a damned good reason.\n" - "> \n" - "> I think it may be best to do this sort of thing in a more piecemeal\n" - "> fashion. Pick a subsystem or two and do the conversions there to\n" - "> prove\n" - "> that they're better than what we have. If the subsystem already has\n" - "> problems with its refcounting, then so much the better. Point to bugs\n" - "> that this new infrastructure helped find.\n" - "> \n" - "> Encourage people to adopt your new infrastructure as new refcounted\n" - "> objects are introduced into the kernel. You might even consider a LWN\n" - "> article about this.\n" - "> \n" - "> Eventually we'll get around to changing existing code to use it, once\n" - "> there is a sufficient advantage to doing so. Most likely when we're\n" - "> reworking the code for other reasons, or when we're chasing some\n" - "> horrid\n" - "> refcounting bug and think that this might help find it.\n" - "\n" - "The main issue is that this \"refcount_t\" implementation appears to be\n" - "assuming that there is one and only one model for refcounts (the one\n" - "where a value of \"0\" means \"free me immediately\").\n" - "\n" - "The kernel has a plethora of object caching implementations where this\n" - "is simply not the case; the dcache is a prime example, and this cache\n" - "is another. In both these implementation, the atomic_t variable is\n" - "being used more as a semaphore-style lock that prevents freeing of the\n" - "object while it is in active use as opposed to being freeable, but\n" - "cached. This is why these automated conversions are a nuisance and a\n" - "source of bugs.\n" - "\n" - "-- \n" - "Trond Myklebust\n" - "Linux NFS client maintainer, PrimaryData\n" - trond.myklebust@primarydata.com + "T24gRnJpLCAyMDE3LTAzLTE3IGF0IDA5OjAyIC0wNDAwLCBKZWZmIExheXRvbiB3cm90ZToNCj4g\n" + "T24gRnJpLCAyMDE3LTAzLTE3IGF0IDEyOjUwICswMDAwLCBUcm9uZCBNeWtsZWJ1c3Qgd3JvdGU6\n" + "DQo+ID4gT24gRnJpLCAyMDE3LTAzLTE3IGF0IDE0OjEwICswMjAwLCBFbGVuYSBSZXNoZXRvdmEg\n" + "d3JvdGU6DQo+ID4gPiByZWZjb3VudF90IHR5cGUgYW5kIGNvcnJlc3BvbmRpbmcgQVBJIHNob3Vs\n" + "ZCBiZQ0KPiA+ID4gdXNlZCBpbnN0ZWFkIG9mIGF0b21pY190IHdoZW4gdGhlIHZhcmlhYmxlIGlz\n" + "IHVzZWQgYXMNCj4gPiA+IGEgcmVmZXJlbmNlIGNvdW50ZXIuIFRoaXMgYWxsb3dzIHRvIGF2b2lk\n" + "IGFjY2lkZW50YWwNCj4gPiA+IHJlZmNvdW50ZXIgb3ZlcmZsb3dzIHRoYXQgbWlnaHQgbGVhZCB0\n" + "byB1c2UtYWZ0ZXItZnJlZQ0KPiA+ID4gc2l0dWF0aW9ucy4NCj4gPiA+IA0KPiA+ID4gU2lnbmVk\n" + "LW9mZi1ieTogRWxlbmEgUmVzaGV0b3ZhIDxlbGVuYS5yZXNoZXRvdmFAaW50ZWwuY29tPg0KPiA+\n" + "ID4gU2lnbmVkLW9mZi1ieTogSGFucyBMaWxqZXN0cmFuZCA8aXNoa2FtaWVsQGdtYWlsLmNvbT4N\n" + "Cj4gPiA+IFNpZ25lZC1vZmYtYnk6IEtlZXMgQ29vayA8a2Vlc2Nvb2tAY2hyb21pdW0ub3JnPg0K\n" + "PiA+ID4gU2lnbmVkLW9mZi1ieTogRGF2aWQgV2luZHNvciA8ZHdpbmRzb3JAZ21haWwuY29tPg0K\n" + "PiA+ID4gLS0tDQo+ID4gPiDCoGluY2x1ZGUvbGludXgvc3VucnBjL2F1dGguaCB8wqDCoDggKysr\n" + "Ky0tLS0NCj4gPiA+IMKgbmV0L3N1bnJwYy9hdXRoLmPCoMKgwqDCoMKgwqDCoMKgwqDCoMKgfCAx\n" + "MiArKysrKystLS0tLS0NCj4gPiA+IMKgMiBmaWxlcyBjaGFuZ2VkLCAxMCBpbnNlcnRpb25zKCsp\n" + "LCAxMCBkZWxldGlvbnMoLSkNCj4gPiA+IA0KPiA+ID4gZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGlu\n" + "dXgvc3VucnBjL2F1dGguaA0KPiA+ID4gYi9pbmNsdWRlL2xpbnV4L3N1bnJwYy9hdXRoLmgNCj4g\n" + "PiA+IGluZGV4IGIxYmM2MmIuLmJkMzZlMGIgMTAwNjQ0DQo+ID4gPiAtLS0gYS9pbmNsdWRlL2xp\n" + "bnV4L3N1bnJwYy9hdXRoLmgNCj4gPiA+ICsrKyBiL2luY2x1ZGUvbGludXgvc3VucnBjL2F1dGgu\n" + "aA0KPiA+ID4gQEAgLTE1LDcgKzE1LDcgQEANCj4gPiA+IMKgI2luY2x1ZGUgPGxpbnV4L3N1bnJw\n" + "Yy9tc2dfcHJvdC5oPg0KPiA+ID4gwqAjaW5jbHVkZSA8bGludXgvc3VucnBjL3hkci5oPg0KPiA+\n" + "ID4gwqANCj4gPiA+IC0jaW5jbHVkZSA8bGludXgvYXRvbWljLmg+DQo+ID4gPiArI2luY2x1ZGUg\n" + "PGxpbnV4L3JlZmNvdW50Lmg+DQo+ID4gPiDCoCNpbmNsdWRlIDxsaW51eC9yY3VwZGF0ZS5oPg0K\n" + "PiA+ID4gwqAjaW5jbHVkZSA8bGludXgvdWlkZ2lkLmg+DQo+ID4gPiDCoCNpbmNsdWRlIDxsaW51\n" + "eC91dHNuYW1lLmg+DQo+ID4gPiBAQCAtNjgsNyArNjgsNyBAQCBzdHJ1Y3QgcnBjX2NyZWQgew0K\n" + "PiA+ID4gwqAjZW5kaWYNCj4gPiA+IMKgCXVuc2lnbmVkIGxvbmcJCWNyX2V4cGlyZTsJLyogd2hl\n" + "bg0KPiA+ID4gdG8gZ2MNCj4gPiA+ICovDQo+ID4gPiDCoAl1bnNpZ25lZCBsb25nCQljcl9mbGFn\n" + "czsJLyogdmFyaW91cw0KPiA+ID4gZmxhZ3MgKi8NCj4gPiA+IC0JYXRvbWljX3QJCWNyX2NvdW50\n" + "OwkvKiByZWYgY291bnQgKi8NCj4gPiA+ICsJcmVmY291bnRfdAkJY3JfY291bnQ7CS8qIHJlZiBj\n" + "b3VudA0KPiA+ID4gKi8NCj4gPiA+IA0KPiA+IA0KPiA+IE5BQ0suIFRoYXQncyBnb2luZyB0byBi\n" + "ZSBoaXR0aW5nDQo+ID4gV0FSTl9PTkNFKCFyZWZjb3VudF9pbmNfbm90X3plcm8ociksDQo+ID4g\n" + "InJlZmNvdW50X3Q6IGluY3JlbWVudCBvbiAwOyB1c2UtYWZ0ZXItZnJlZS5cbiIpIGxpa2UgdGhl\n" + "cmUncyBubw0KPiA+IHRvbW9ycm93Li4uDQo+ID4gDQo+ID4gUGxlYXNlIHN0b3Agd2l0aCB0aGVz\n" + "ZSBhdXRvbWF0ZWQgY29udmVyc2lvbnMuIFRoZXkgYXJlIGdvaW5nIHRvDQo+ID4gY2F1c2UgYQ0K\n" + "PiA+IGxvdCBtb3JlIGJ1Z3MgdGhhbiB0aGV5IGZpeC4NCj4gPiANCj4gDQo+IEFncmVlZC4gVGhl\n" + "c2UgcGF0Y2hzZXRzIGFyZSB0b3VjaGluZyBwbGFjZXMgd2hlcmUgd2UndmUgYWxyZWFkeQ0KPiBi\n" + "YW5nZWQNCj4gb3V0IG1vc3Qgb2YgdGhlIHJlZmNvdW50aW5nIGJ1Z3MuIEknbSBhZ2FpbnN0IGRv\n" + "aW5nIGxhcmdlIHNjYWxlDQo+IGNvbnZlcnNpb25zIGxpa2UgdGhpcyB3aXRob3V0IGEgZGFtbmVk\n" + "IGdvb2QgcmVhc29uLg0KPiANCj4gSSB0aGluayBpdCBtYXkgYmUgYmVzdCB0byBkbyB0aGlzIHNv\n" + "cnQgb2YgdGhpbmcgaW4gYSBtb3JlIHBpZWNlbWVhbA0KPiBmYXNoaW9uLiBQaWNrIGEgc3Vic3lz\n" + "dGVtIG9yIHR3byBhbmQgZG8gdGhlIGNvbnZlcnNpb25zIHRoZXJlIHRvDQo+IHByb3ZlDQo+IHRo\n" + "YXQgdGhleSdyZSBiZXR0ZXIgdGhhbiB3aGF0IHdlIGhhdmUuIElmIHRoZSBzdWJzeXN0ZW0gYWxy\n" + "ZWFkeSBoYXMNCj4gcHJvYmxlbXMgd2l0aCBpdHMgcmVmY291bnRpbmcsIHRoZW4gc28gbXVjaCB0\n" + "aGUgYmV0dGVyLiBQb2ludCB0byBidWdzDQo+IHRoYXQgdGhpcyBuZXcgaW5mcmFzdHJ1Y3R1cmUg\n" + "aGVscGVkIGZpbmQuDQo+IA0KPiBFbmNvdXJhZ2UgcGVvcGxlIHRvIGFkb3B0IHlvdXIgbmV3IGlu\n" + "ZnJhc3RydWN0dXJlIGFzIG5ldyByZWZjb3VudGVkDQo+IG9iamVjdHMgYXJlIGludHJvZHVjZWQg\n" + "aW50byB0aGUga2VybmVsLiBZb3UgbWlnaHQgZXZlbiBjb25zaWRlciBhIExXTg0KPiBhcnRpY2xl\n" + "IGFib3V0IHRoaXMuDQo+IA0KPiBFdmVudHVhbGx5IHdlJ2xsIGdldCBhcm91bmQgdG8gY2hhbmdp\n" + "bmcgZXhpc3RpbmcgY29kZSB0byB1c2UgaXQsIG9uY2UNCj4gdGhlcmUgaXMgYSBzdWZmaWNpZW50\n" + "IGFkdmFudGFnZSB0byBkb2luZyBzby4gTW9zdCBsaWtlbHkgd2hlbiB3ZSdyZQ0KPiByZXdvcmtp\n" + "bmcgdGhlIGNvZGUgZm9yIG90aGVyIHJlYXNvbnMsIG9yIHdoZW4gd2UncmUgY2hhc2luZyBzb21l\n" + "DQo+IGhvcnJpZA0KPiByZWZjb3VudGluZyBidWcgYW5kIHRoaW5rIHRoYXQgdGhpcyBtaWdodCBo\n" + "ZWxwIGZpbmQgaXQuDQoNClRoZSBtYWluIGlzc3VlIGlzIHRoYXQgdGhpcyAicmVmY291bnRfdCIg\n" + "aW1wbGVtZW50YXRpb24gYXBwZWFycyB0byBiZQ0KYXNzdW1pbmcgdGhhdCB0aGVyZSBpcyBvbmUg\n" + "YW5kIG9ubHkgb25lIG1vZGVsIGZvciByZWZjb3VudHMgKHRoZSBvbmUNCndoZXJlIGEgdmFsdWUg\n" + "b2YgIjAiIG1lYW5zICJmcmVlIG1lIGltbWVkaWF0ZWx5IikuDQoNClRoZSBrZXJuZWwgaGFzIGEg\n" + "cGxldGhvcmEgb2Ygb2JqZWN0IGNhY2hpbmcgaW1wbGVtZW50YXRpb25zIHdoZXJlIHRoaXMNCmlz\n" + "IHNpbXBseSBub3QgdGhlIGNhc2U7IHRoZSBkY2FjaGUgaXMgYSBwcmltZSBleGFtcGxlLCBhbmQg\n" + "dGhpcyBjYWNoZQ0KaXMgYW5vdGhlci4gSW4gYm90aCB0aGVzZSBpbXBsZW1lbnRhdGlvbiwgdGhl\n" + "IGF0b21pY190IHZhcmlhYmxlIGlzDQpiZWluZyB1c2VkIG1vcmUgYXMgYSBzZW1hcGhvcmUtc3R5\n" + "bGUgbG9jayB0aGF0IHByZXZlbnRzIGZyZWVpbmcgb2YgdGhlDQpvYmplY3Qgd2hpbGUgaXQgaXMg\n" + "aW4gYWN0aXZlIHVzZSBhcyBvcHBvc2VkIHRvIGJlaW5nIGZyZWVhYmxlLCBidXQNCmNhY2hlZC4g\n" + "VGhpcyBpcyB3aHkgdGhlc2UgYXV0b21hdGVkIGNvbnZlcnNpb25zIGFyZSBhIG51aXNhbmNlIGFu\n" + "ZCBhDQpzb3VyY2Ugb2YgYnVncy4NCg0KLS0gDQpUcm9uZCBNeWtsZWJ1c3QNCkxpbnV4IE5GUyBj\n" + "bGllbnQgbWFpbnRhaW5lciwgUHJpbWFyeURhdGENCnRyb25kLm15a2xlYnVzdEBwcmltYXJ5ZGF0\n" + YS5jb20NCg== -c15dec5be1e2483993c6399e2910d4d8a79ef1e9c76cc8bf70dcdc4f0723a1ca +104030a4129dc6c4d6bf91e83d4d287128175d894529ca85477cebc16d2014ea
diff --git a/a/1.txt b/N2/1.txt index 17aed84..6e99ee8 100644 --- a/a/1.txt +++ b/N2/1.txt @@ -1,92 +1,66 @@ -On Fri, 2017-03-17 at 09:02 -0400, Jeff Layton wrote: -> On Fri, 2017-03-17 at 12:50 +0000, Trond Myklebust wrote: -> > On Fri, 2017-03-17 at 14:10 +0200, Elena Reshetova wrote: -> > > refcount_t type and corresponding API should be -> > > used instead of atomic_t when the variable is used as -> > > a reference counter. This allows to avoid accidental -> > > refcounter overflows that might lead to use-after-free -> > > situations. -> > > -> > > Signed-off-by: Elena Reshetova <elena.reshetova@intel.com> -> > > Signed-off-by: Hans Liljestrand <ishkamiel@gmail.com> -> > > Signed-off-by: Kees Cook <keescook@chromium.org> -> > > Signed-off-by: David Windsor <dwindsor@gmail.com> -> > > --- -> > > include/linux/sunrpc/auth.h | 8 ++++---- -> > > net/sunrpc/auth.c | 12 ++++++------ -> > > 2 files changed, 10 insertions(+), 10 deletions(-) -> > > -> > > diff --git a/include/linux/sunrpc/auth.h -> > > b/include/linux/sunrpc/auth.h -> > > index b1bc62b..bd36e0b 100644 -> > > --- a/include/linux/sunrpc/auth.h -> > > +++ b/include/linux/sunrpc/auth.h -> > > @@ -15,7 +15,7 @@ -> > > #include <linux/sunrpc/msg_prot.h> -> > > #include <linux/sunrpc/xdr.h> -> > > -> > > -#include <linux/atomic.h> -> > > +#include <linux/refcount.h> -> > > #include <linux/rcupdate.h> -> > > #include <linux/uidgid.h> -> > > #include <linux/utsname.h> -> > > @@ -68,7 +68,7 @@ struct rpc_cred { -> > > #endif -> > > unsigned long cr_expire; /* when -> > > to gc -> > > */ -> > > unsigned long cr_flags; /* various -> > > flags */ -> > > - atomic_t cr_count; /* ref count */ -> > > + refcount_t cr_count; /* ref count -> > > */ -> > > -> > -> > NACK. That's going to be hitting -> > WARN_ONCE(!refcount_inc_not_zero(r), -> > "refcount_t: increment on 0; use-after-free.\n") like there's no -> > tomorrow... -> > -> > Please stop with these automated conversions. They are going to -> > cause a -> > lot more bugs than they fix. -> > -> -> Agreed. These patchsets are touching places where we've already -> banged -> out most of the refcounting bugs. I'm against doing large scale -> conversions like this without a damned good reason. -> -> I think it may be best to do this sort of thing in a more piecemeal -> fashion. Pick a subsystem or two and do the conversions there to -> prove -> that they're better than what we have. If the subsystem already has -> problems with its refcounting, then so much the better. Point to bugs -> that this new infrastructure helped find. -> -> Encourage people to adopt your new infrastructure as new refcounted -> objects are introduced into the kernel. You might even consider a LWN -> article about this. -> -> Eventually we'll get around to changing existing code to use it, once -> there is a sufficient advantage to doing so. Most likely when we're -> reworking the code for other reasons, or when we're chasing some -> horrid -> refcounting bug and think that this might help find it. - -The main issue is that this "refcount_t" implementation appears to be -assuming that there is one and only one model for refcounts (the one -where a value of "0" means "free me immediately"). - -The kernel has a plethora of object caching implementations where this -is simply not the case; the dcache is a prime example, and this cache -is another. In both these implementation, the atomic_t variable is -being used more as a semaphore-style lock that prevents freeing of the -object while it is in active use as opposed to being freeable, but -cached. This is why these automated conversions are a nuisance and a -source of bugs. - --- -Trond Myklebust -Linux NFS client maintainer, PrimaryData -trond.myklebust@primarydata.com +T24gRnJpLCAyMDE3LTAzLTE3IGF0IDA5OjAyIC0wNDAwLCBKZWZmIExheXRvbiB3cm90ZToNCj4g +T24gRnJpLCAyMDE3LTAzLTE3IGF0IDEyOjUwICswMDAwLCBUcm9uZCBNeWtsZWJ1c3Qgd3JvdGU6 +DQo+ID4gT24gRnJpLCAyMDE3LTAzLTE3IGF0IDE0OjEwICswMjAwLCBFbGVuYSBSZXNoZXRvdmEg +d3JvdGU6DQo+ID4gPiByZWZjb3VudF90IHR5cGUgYW5kIGNvcnJlc3BvbmRpbmcgQVBJIHNob3Vs +ZCBiZQ0KPiA+ID4gdXNlZCBpbnN0ZWFkIG9mIGF0b21pY190IHdoZW4gdGhlIHZhcmlhYmxlIGlz +IHVzZWQgYXMNCj4gPiA+IGEgcmVmZXJlbmNlIGNvdW50ZXIuIFRoaXMgYWxsb3dzIHRvIGF2b2lk +IGFjY2lkZW50YWwNCj4gPiA+IHJlZmNvdW50ZXIgb3ZlcmZsb3dzIHRoYXQgbWlnaHQgbGVhZCB0 +byB1c2UtYWZ0ZXItZnJlZQ0KPiA+ID4gc2l0dWF0aW9ucy4NCj4gPiA+IA0KPiA+ID4gU2lnbmVk +LW9mZi1ieTogRWxlbmEgUmVzaGV0b3ZhIDxlbGVuYS5yZXNoZXRvdmFAaW50ZWwuY29tPg0KPiA+ +ID4gU2lnbmVkLW9mZi1ieTogSGFucyBMaWxqZXN0cmFuZCA8aXNoa2FtaWVsQGdtYWlsLmNvbT4N +Cj4gPiA+IFNpZ25lZC1vZmYtYnk6IEtlZXMgQ29vayA8a2Vlc2Nvb2tAY2hyb21pdW0ub3JnPg0K +PiA+ID4gU2lnbmVkLW9mZi1ieTogRGF2aWQgV2luZHNvciA8ZHdpbmRzb3JAZ21haWwuY29tPg0K +PiA+ID4gLS0tDQo+ID4gPiDCoGluY2x1ZGUvbGludXgvc3VucnBjL2F1dGguaCB8wqDCoDggKysr +Ky0tLS0NCj4gPiA+IMKgbmV0L3N1bnJwYy9hdXRoLmPCoMKgwqDCoMKgwqDCoMKgwqDCoMKgfCAx +MiArKysrKystLS0tLS0NCj4gPiA+IMKgMiBmaWxlcyBjaGFuZ2VkLCAxMCBpbnNlcnRpb25zKCsp +LCAxMCBkZWxldGlvbnMoLSkNCj4gPiA+IA0KPiA+ID4gZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGlu +dXgvc3VucnBjL2F1dGguaA0KPiA+ID4gYi9pbmNsdWRlL2xpbnV4L3N1bnJwYy9hdXRoLmgNCj4g +PiA+IGluZGV4IGIxYmM2MmIuLmJkMzZlMGIgMTAwNjQ0DQo+ID4gPiAtLS0gYS9pbmNsdWRlL2xp +bnV4L3N1bnJwYy9hdXRoLmgNCj4gPiA+ICsrKyBiL2luY2x1ZGUvbGludXgvc3VucnBjL2F1dGgu +aA0KPiA+ID4gQEAgLTE1LDcgKzE1LDcgQEANCj4gPiA+IMKgI2luY2x1ZGUgPGxpbnV4L3N1bnJw +Yy9tc2dfcHJvdC5oPg0KPiA+ID4gwqAjaW5jbHVkZSA8bGludXgvc3VucnBjL3hkci5oPg0KPiA+ +ID4gwqANCj4gPiA+IC0jaW5jbHVkZSA8bGludXgvYXRvbWljLmg+DQo+ID4gPiArI2luY2x1ZGUg +PGxpbnV4L3JlZmNvdW50Lmg+DQo+ID4gPiDCoCNpbmNsdWRlIDxsaW51eC9yY3VwZGF0ZS5oPg0K +PiA+ID4gwqAjaW5jbHVkZSA8bGludXgvdWlkZ2lkLmg+DQo+ID4gPiDCoCNpbmNsdWRlIDxsaW51 +eC91dHNuYW1lLmg+DQo+ID4gPiBAQCAtNjgsNyArNjgsNyBAQCBzdHJ1Y3QgcnBjX2NyZWQgew0K +PiA+ID4gwqAjZW5kaWYNCj4gPiA+IMKgCXVuc2lnbmVkIGxvbmcJCWNyX2V4cGlyZTsJLyogd2hl +bg0KPiA+ID4gdG8gZ2MNCj4gPiA+ICovDQo+ID4gPiDCoAl1bnNpZ25lZCBsb25nCQljcl9mbGFn +czsJLyogdmFyaW91cw0KPiA+ID4gZmxhZ3MgKi8NCj4gPiA+IC0JYXRvbWljX3QJCWNyX2NvdW50 +OwkvKiByZWYgY291bnQgKi8NCj4gPiA+ICsJcmVmY291bnRfdAkJY3JfY291bnQ7CS8qIHJlZiBj +b3VudA0KPiA+ID4gKi8NCj4gPiA+IA0KPiA+IA0KPiA+IE5BQ0suIFRoYXQncyBnb2luZyB0byBi +ZSBoaXR0aW5nDQo+ID4gV0FSTl9PTkNFKCFyZWZjb3VudF9pbmNfbm90X3plcm8ociksDQo+ID4g +InJlZmNvdW50X3Q6IGluY3JlbWVudCBvbiAwOyB1c2UtYWZ0ZXItZnJlZS5cbiIpIGxpa2UgdGhl +cmUncyBubw0KPiA+IHRvbW9ycm93Li4uDQo+ID4gDQo+ID4gUGxlYXNlIHN0b3Agd2l0aCB0aGVz +ZSBhdXRvbWF0ZWQgY29udmVyc2lvbnMuIFRoZXkgYXJlIGdvaW5nIHRvDQo+ID4gY2F1c2UgYQ0K +PiA+IGxvdCBtb3JlIGJ1Z3MgdGhhbiB0aGV5IGZpeC4NCj4gPiANCj4gDQo+IEFncmVlZC4gVGhl +c2UgcGF0Y2hzZXRzIGFyZSB0b3VjaGluZyBwbGFjZXMgd2hlcmUgd2UndmUgYWxyZWFkeQ0KPiBi +YW5nZWQNCj4gb3V0IG1vc3Qgb2YgdGhlIHJlZmNvdW50aW5nIGJ1Z3MuIEknbSBhZ2FpbnN0IGRv +aW5nIGxhcmdlIHNjYWxlDQo+IGNvbnZlcnNpb25zIGxpa2UgdGhpcyB3aXRob3V0IGEgZGFtbmVk +IGdvb2QgcmVhc29uLg0KPiANCj4gSSB0aGluayBpdCBtYXkgYmUgYmVzdCB0byBkbyB0aGlzIHNv +cnQgb2YgdGhpbmcgaW4gYSBtb3JlIHBpZWNlbWVhbA0KPiBmYXNoaW9uLiBQaWNrIGEgc3Vic3lz +dGVtIG9yIHR3byBhbmQgZG8gdGhlIGNvbnZlcnNpb25zIHRoZXJlIHRvDQo+IHByb3ZlDQo+IHRo +YXQgdGhleSdyZSBiZXR0ZXIgdGhhbiB3aGF0IHdlIGhhdmUuIElmIHRoZSBzdWJzeXN0ZW0gYWxy +ZWFkeSBoYXMNCj4gcHJvYmxlbXMgd2l0aCBpdHMgcmVmY291bnRpbmcsIHRoZW4gc28gbXVjaCB0 +aGUgYmV0dGVyLiBQb2ludCB0byBidWdzDQo+IHRoYXQgdGhpcyBuZXcgaW5mcmFzdHJ1Y3R1cmUg +aGVscGVkIGZpbmQuDQo+IA0KPiBFbmNvdXJhZ2UgcGVvcGxlIHRvIGFkb3B0IHlvdXIgbmV3IGlu +ZnJhc3RydWN0dXJlIGFzIG5ldyByZWZjb3VudGVkDQo+IG9iamVjdHMgYXJlIGludHJvZHVjZWQg +aW50byB0aGUga2VybmVsLiBZb3UgbWlnaHQgZXZlbiBjb25zaWRlciBhIExXTg0KPiBhcnRpY2xl +IGFib3V0IHRoaXMuDQo+IA0KPiBFdmVudHVhbGx5IHdlJ2xsIGdldCBhcm91bmQgdG8gY2hhbmdp +bmcgZXhpc3RpbmcgY29kZSB0byB1c2UgaXQsIG9uY2UNCj4gdGhlcmUgaXMgYSBzdWZmaWNpZW50 +IGFkdmFudGFnZSB0byBkb2luZyBzby4gTW9zdCBsaWtlbHkgd2hlbiB3ZSdyZQ0KPiByZXdvcmtp +bmcgdGhlIGNvZGUgZm9yIG90aGVyIHJlYXNvbnMsIG9yIHdoZW4gd2UncmUgY2hhc2luZyBzb21l +DQo+IGhvcnJpZA0KPiByZWZjb3VudGluZyBidWcgYW5kIHRoaW5rIHRoYXQgdGhpcyBtaWdodCBo +ZWxwIGZpbmQgaXQuDQoNClRoZSBtYWluIGlzc3VlIGlzIHRoYXQgdGhpcyAicmVmY291bnRfdCIg +aW1wbGVtZW50YXRpb24gYXBwZWFycyB0byBiZQ0KYXNzdW1pbmcgdGhhdCB0aGVyZSBpcyBvbmUg +YW5kIG9ubHkgb25lIG1vZGVsIGZvciByZWZjb3VudHMgKHRoZSBvbmUNCndoZXJlIGEgdmFsdWUg +b2YgIjAiIG1lYW5zICJmcmVlIG1lIGltbWVkaWF0ZWx5IikuDQoNClRoZSBrZXJuZWwgaGFzIGEg +cGxldGhvcmEgb2Ygb2JqZWN0IGNhY2hpbmcgaW1wbGVtZW50YXRpb25zIHdoZXJlIHRoaXMNCmlz +IHNpbXBseSBub3QgdGhlIGNhc2U7IHRoZSBkY2FjaGUgaXMgYSBwcmltZSBleGFtcGxlLCBhbmQg +dGhpcyBjYWNoZQ0KaXMgYW5vdGhlci4gSW4gYm90aCB0aGVzZSBpbXBsZW1lbnRhdGlvbiwgdGhl +IGF0b21pY190IHZhcmlhYmxlIGlzDQpiZWluZyB1c2VkIG1vcmUgYXMgYSBzZW1hcGhvcmUtc3R5 +bGUgbG9jayB0aGF0IHByZXZlbnRzIGZyZWVpbmcgb2YgdGhlDQpvYmplY3Qgd2hpbGUgaXQgaXMg +aW4gYWN0aXZlIHVzZSBhcyBvcHBvc2VkIHRvIGJlaW5nIGZyZWVhYmxlLCBidXQNCmNhY2hlZC4g +VGhpcyBpcyB3aHkgdGhlc2UgYXV0b21hdGVkIGNvbnZlcnNpb25zIGFyZSBhIG51aXNhbmNlIGFu +ZCBhDQpzb3VyY2Ugb2YgYnVncy4NCg0KLS0gDQpUcm9uZCBNeWtsZWJ1c3QNCkxpbnV4IE5GUyBj +bGllbnQgbWFpbnRhaW5lciwgUHJpbWFyeURhdGENCnRyb25kLm15a2xlYnVzdEBwcmltYXJ5ZGF0 +YS5jb20NCg= diff --git a/a/content_digest b/N2/content_digest index ebcd1d0..e907673 100644 --- a/a/content_digest +++ b/N2/content_digest @@ -3,7 +3,7 @@ "ref\01489755011.6453.1.camel@primarydata.com\0" "ref\01489755736.2810.10.camel@poochiereds.net\0" "ref\01489755736.2810.10.camel-vpEMnDpepFuMZCB2o+C8xQ@public.gmane.org\0" - "From\0Trond Myklebust <trondmy-7I+n7zu2hftEKMMhf/gKZA@public.gmane.org>\0" + "From\0Trond Myklebust <trondmy@primarydata.com>\0" "Subject\0Re: [PATCH 01/23] net, sunrpc: convert rpc_cred.cr_count from atomic_t to refcount_t\0" "Date\0Fri, 17 Mar 2017 14:28:37 +0000\0" "To\0elena.reshetova-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org <elena.reshetova-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>" @@ -27,97 +27,71 @@ " sage@redhat.\0" "\00:1\0" "b\0" - "On Fri, 2017-03-17 at 09:02 -0400, Jeff Layton wrote:\n" - "> On Fri, 2017-03-17 at 12:50 +0000, Trond Myklebust wrote:\n" - "> > On Fri, 2017-03-17 at 14:10 +0200, Elena Reshetova wrote:\n" - "> > > refcount_t type and corresponding API should be\n" - "> > > used instead of atomic_t when the variable is used as\n" - "> > > a reference counter. This allows to avoid accidental\n" - "> > > refcounter overflows that might lead to use-after-free\n" - "> > > situations.\n" - "> > > \n" - "> > > Signed-off-by: Elena Reshetova <elena.reshetova@intel.com>\n" - "> > > Signed-off-by: Hans Liljestrand <ishkamiel@gmail.com>\n" - "> > > Signed-off-by: Kees Cook <keescook@chromium.org>\n" - "> > > Signed-off-by: David Windsor <dwindsor@gmail.com>\n" - "> > > ---\n" - "> > > \302\240include/linux/sunrpc/auth.h |\302\240\302\2408 ++++----\n" - "> > > \302\240net/sunrpc/auth.c\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240| 12 ++++++------\n" - "> > > \302\2402 files changed, 10 insertions(+), 10 deletions(-)\n" - "> > > \n" - "> > > diff --git a/include/linux/sunrpc/auth.h\n" - "> > > b/include/linux/sunrpc/auth.h\n" - "> > > index b1bc62b..bd36e0b 100644\n" - "> > > --- a/include/linux/sunrpc/auth.h\n" - "> > > +++ b/include/linux/sunrpc/auth.h\n" - "> > > @@ -15,7 +15,7 @@\n" - "> > > \302\240#include <linux/sunrpc/msg_prot.h>\n" - "> > > \302\240#include <linux/sunrpc/xdr.h>\n" - "> > > \302\240\n" - "> > > -#include <linux/atomic.h>\n" - "> > > +#include <linux/refcount.h>\n" - "> > > \302\240#include <linux/rcupdate.h>\n" - "> > > \302\240#include <linux/uidgid.h>\n" - "> > > \302\240#include <linux/utsname.h>\n" - "> > > @@ -68,7 +68,7 @@ struct rpc_cred {\n" - "> > > \302\240#endif\n" - "> > > \302\240\tunsigned long\t\tcr_expire;\t/* when\n" - "> > > to gc\n" - "> > > */\n" - "> > > \302\240\tunsigned long\t\tcr_flags;\t/* various\n" - "> > > flags */\n" - "> > > -\tatomic_t\t\tcr_count;\t/* ref count */\n" - "> > > +\trefcount_t\t\tcr_count;\t/* ref count\n" - "> > > */\n" - "> > > \n" - "> > \n" - "> > NACK. That's going to be hitting\n" - "> > WARN_ONCE(!refcount_inc_not_zero(r),\n" - "> > \"refcount_t: increment on 0; use-after-free.\\n\") like there's no\n" - "> > tomorrow...\n" - "> > \n" - "> > Please stop with these automated conversions. They are going to\n" - "> > cause a\n" - "> > lot more bugs than they fix.\n" - "> > \n" - "> \n" - "> Agreed. These patchsets are touching places where we've already\n" - "> banged\n" - "> out most of the refcounting bugs. I'm against doing large scale\n" - "> conversions like this without a damned good reason.\n" - "> \n" - "> I think it may be best to do this sort of thing in a more piecemeal\n" - "> fashion. Pick a subsystem or two and do the conversions there to\n" - "> prove\n" - "> that they're better than what we have. If the subsystem already has\n" - "> problems with its refcounting, then so much the better. Point to bugs\n" - "> that this new infrastructure helped find.\n" - "> \n" - "> Encourage people to adopt your new infrastructure as new refcounted\n" - "> objects are introduced into the kernel. You might even consider a LWN\n" - "> article about this.\n" - "> \n" - "> Eventually we'll get around to changing existing code to use it, once\n" - "> there is a sufficient advantage to doing so. Most likely when we're\n" - "> reworking the code for other reasons, or when we're chasing some\n" - "> horrid\n" - "> refcounting bug and think that this might help find it.\n" - "\n" - "The main issue is that this \"refcount_t\" implementation appears to be\n" - "assuming that there is one and only one model for refcounts (the one\n" - "where a value of \"0\" means \"free me immediately\").\n" - "\n" - "The kernel has a plethora of object caching implementations where this\n" - "is simply not the case; the dcache is a prime example, and this cache\n" - "is another. In both these implementation, the atomic_t variable is\n" - "being used more as a semaphore-style lock that prevents freeing of the\n" - "object while it is in active use as opposed to being freeable, but\n" - "cached. This is why these automated conversions are a nuisance and a\n" - "source of bugs.\n" - "\n" - "-- \n" - "Trond Myklebust\n" - "Linux NFS client maintainer, PrimaryData\n" - trond.myklebust@primarydata.com + "T24gRnJpLCAyMDE3LTAzLTE3IGF0IDA5OjAyIC0wNDAwLCBKZWZmIExheXRvbiB3cm90ZToNCj4g\n" + "T24gRnJpLCAyMDE3LTAzLTE3IGF0IDEyOjUwICswMDAwLCBUcm9uZCBNeWtsZWJ1c3Qgd3JvdGU6\n" + "DQo+ID4gT24gRnJpLCAyMDE3LTAzLTE3IGF0IDE0OjEwICswMjAwLCBFbGVuYSBSZXNoZXRvdmEg\n" + "d3JvdGU6DQo+ID4gPiByZWZjb3VudF90IHR5cGUgYW5kIGNvcnJlc3BvbmRpbmcgQVBJIHNob3Vs\n" + "ZCBiZQ0KPiA+ID4gdXNlZCBpbnN0ZWFkIG9mIGF0b21pY190IHdoZW4gdGhlIHZhcmlhYmxlIGlz\n" + "IHVzZWQgYXMNCj4gPiA+IGEgcmVmZXJlbmNlIGNvdW50ZXIuIFRoaXMgYWxsb3dzIHRvIGF2b2lk\n" + "IGFjY2lkZW50YWwNCj4gPiA+IHJlZmNvdW50ZXIgb3ZlcmZsb3dzIHRoYXQgbWlnaHQgbGVhZCB0\n" + "byB1c2UtYWZ0ZXItZnJlZQ0KPiA+ID4gc2l0dWF0aW9ucy4NCj4gPiA+IA0KPiA+ID4gU2lnbmVk\n" + "LW9mZi1ieTogRWxlbmEgUmVzaGV0b3ZhIDxlbGVuYS5yZXNoZXRvdmFAaW50ZWwuY29tPg0KPiA+\n" + "ID4gU2lnbmVkLW9mZi1ieTogSGFucyBMaWxqZXN0cmFuZCA8aXNoa2FtaWVsQGdtYWlsLmNvbT4N\n" + "Cj4gPiA+IFNpZ25lZC1vZmYtYnk6IEtlZXMgQ29vayA8a2Vlc2Nvb2tAY2hyb21pdW0ub3JnPg0K\n" + "PiA+ID4gU2lnbmVkLW9mZi1ieTogRGF2aWQgV2luZHNvciA8ZHdpbmRzb3JAZ21haWwuY29tPg0K\n" + "PiA+ID4gLS0tDQo+ID4gPiDCoGluY2x1ZGUvbGludXgvc3VucnBjL2F1dGguaCB8wqDCoDggKysr\n" + "Ky0tLS0NCj4gPiA+IMKgbmV0L3N1bnJwYy9hdXRoLmPCoMKgwqDCoMKgwqDCoMKgwqDCoMKgfCAx\n" + "MiArKysrKystLS0tLS0NCj4gPiA+IMKgMiBmaWxlcyBjaGFuZ2VkLCAxMCBpbnNlcnRpb25zKCsp\n" + "LCAxMCBkZWxldGlvbnMoLSkNCj4gPiA+IA0KPiA+ID4gZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGlu\n" + "dXgvc3VucnBjL2F1dGguaA0KPiA+ID4gYi9pbmNsdWRlL2xpbnV4L3N1bnJwYy9hdXRoLmgNCj4g\n" + "PiA+IGluZGV4IGIxYmM2MmIuLmJkMzZlMGIgMTAwNjQ0DQo+ID4gPiAtLS0gYS9pbmNsdWRlL2xp\n" + "bnV4L3N1bnJwYy9hdXRoLmgNCj4gPiA+ICsrKyBiL2luY2x1ZGUvbGludXgvc3VucnBjL2F1dGgu\n" + "aA0KPiA+ID4gQEAgLTE1LDcgKzE1LDcgQEANCj4gPiA+IMKgI2luY2x1ZGUgPGxpbnV4L3N1bnJw\n" + "Yy9tc2dfcHJvdC5oPg0KPiA+ID4gwqAjaW5jbHVkZSA8bGludXgvc3VucnBjL3hkci5oPg0KPiA+\n" + "ID4gwqANCj4gPiA+IC0jaW5jbHVkZSA8bGludXgvYXRvbWljLmg+DQo+ID4gPiArI2luY2x1ZGUg\n" + "PGxpbnV4L3JlZmNvdW50Lmg+DQo+ID4gPiDCoCNpbmNsdWRlIDxsaW51eC9yY3VwZGF0ZS5oPg0K\n" + "PiA+ID4gwqAjaW5jbHVkZSA8bGludXgvdWlkZ2lkLmg+DQo+ID4gPiDCoCNpbmNsdWRlIDxsaW51\n" + "eC91dHNuYW1lLmg+DQo+ID4gPiBAQCAtNjgsNyArNjgsNyBAQCBzdHJ1Y3QgcnBjX2NyZWQgew0K\n" + "PiA+ID4gwqAjZW5kaWYNCj4gPiA+IMKgCXVuc2lnbmVkIGxvbmcJCWNyX2V4cGlyZTsJLyogd2hl\n" + "bg0KPiA+ID4gdG8gZ2MNCj4gPiA+ICovDQo+ID4gPiDCoAl1bnNpZ25lZCBsb25nCQljcl9mbGFn\n" + "czsJLyogdmFyaW91cw0KPiA+ID4gZmxhZ3MgKi8NCj4gPiA+IC0JYXRvbWljX3QJCWNyX2NvdW50\n" + "OwkvKiByZWYgY291bnQgKi8NCj4gPiA+ICsJcmVmY291bnRfdAkJY3JfY291bnQ7CS8qIHJlZiBj\n" + "b3VudA0KPiA+ID4gKi8NCj4gPiA+IA0KPiA+IA0KPiA+IE5BQ0suIFRoYXQncyBnb2luZyB0byBi\n" + "ZSBoaXR0aW5nDQo+ID4gV0FSTl9PTkNFKCFyZWZjb3VudF9pbmNfbm90X3plcm8ociksDQo+ID4g\n" + "InJlZmNvdW50X3Q6IGluY3JlbWVudCBvbiAwOyB1c2UtYWZ0ZXItZnJlZS5cbiIpIGxpa2UgdGhl\n" + "cmUncyBubw0KPiA+IHRvbW9ycm93Li4uDQo+ID4gDQo+ID4gUGxlYXNlIHN0b3Agd2l0aCB0aGVz\n" + "ZSBhdXRvbWF0ZWQgY29udmVyc2lvbnMuIFRoZXkgYXJlIGdvaW5nIHRvDQo+ID4gY2F1c2UgYQ0K\n" + "PiA+IGxvdCBtb3JlIGJ1Z3MgdGhhbiB0aGV5IGZpeC4NCj4gPiANCj4gDQo+IEFncmVlZC4gVGhl\n" + "c2UgcGF0Y2hzZXRzIGFyZSB0b3VjaGluZyBwbGFjZXMgd2hlcmUgd2UndmUgYWxyZWFkeQ0KPiBi\n" + "YW5nZWQNCj4gb3V0IG1vc3Qgb2YgdGhlIHJlZmNvdW50aW5nIGJ1Z3MuIEknbSBhZ2FpbnN0IGRv\n" + "aW5nIGxhcmdlIHNjYWxlDQo+IGNvbnZlcnNpb25zIGxpa2UgdGhpcyB3aXRob3V0IGEgZGFtbmVk\n" + "IGdvb2QgcmVhc29uLg0KPiANCj4gSSB0aGluayBpdCBtYXkgYmUgYmVzdCB0byBkbyB0aGlzIHNv\n" + "cnQgb2YgdGhpbmcgaW4gYSBtb3JlIHBpZWNlbWVhbA0KPiBmYXNoaW9uLiBQaWNrIGEgc3Vic3lz\n" + "dGVtIG9yIHR3byBhbmQgZG8gdGhlIGNvbnZlcnNpb25zIHRoZXJlIHRvDQo+IHByb3ZlDQo+IHRo\n" + "YXQgdGhleSdyZSBiZXR0ZXIgdGhhbiB3aGF0IHdlIGhhdmUuIElmIHRoZSBzdWJzeXN0ZW0gYWxy\n" + "ZWFkeSBoYXMNCj4gcHJvYmxlbXMgd2l0aCBpdHMgcmVmY291bnRpbmcsIHRoZW4gc28gbXVjaCB0\n" + "aGUgYmV0dGVyLiBQb2ludCB0byBidWdzDQo+IHRoYXQgdGhpcyBuZXcgaW5mcmFzdHJ1Y3R1cmUg\n" + "aGVscGVkIGZpbmQuDQo+IA0KPiBFbmNvdXJhZ2UgcGVvcGxlIHRvIGFkb3B0IHlvdXIgbmV3IGlu\n" + "ZnJhc3RydWN0dXJlIGFzIG5ldyByZWZjb3VudGVkDQo+IG9iamVjdHMgYXJlIGludHJvZHVjZWQg\n" + "aW50byB0aGUga2VybmVsLiBZb3UgbWlnaHQgZXZlbiBjb25zaWRlciBhIExXTg0KPiBhcnRpY2xl\n" + "IGFib3V0IHRoaXMuDQo+IA0KPiBFdmVudHVhbGx5IHdlJ2xsIGdldCBhcm91bmQgdG8gY2hhbmdp\n" + "bmcgZXhpc3RpbmcgY29kZSB0byB1c2UgaXQsIG9uY2UNCj4gdGhlcmUgaXMgYSBzdWZmaWNpZW50\n" + "IGFkdmFudGFnZSB0byBkb2luZyBzby4gTW9zdCBsaWtlbHkgd2hlbiB3ZSdyZQ0KPiByZXdvcmtp\n" + "bmcgdGhlIGNvZGUgZm9yIG90aGVyIHJlYXNvbnMsIG9yIHdoZW4gd2UncmUgY2hhc2luZyBzb21l\n" + "DQo+IGhvcnJpZA0KPiByZWZjb3VudGluZyBidWcgYW5kIHRoaW5rIHRoYXQgdGhpcyBtaWdodCBo\n" + "ZWxwIGZpbmQgaXQuDQoNClRoZSBtYWluIGlzc3VlIGlzIHRoYXQgdGhpcyAicmVmY291bnRfdCIg\n" + "aW1wbGVtZW50YXRpb24gYXBwZWFycyB0byBiZQ0KYXNzdW1pbmcgdGhhdCB0aGVyZSBpcyBvbmUg\n" + "YW5kIG9ubHkgb25lIG1vZGVsIGZvciByZWZjb3VudHMgKHRoZSBvbmUNCndoZXJlIGEgdmFsdWUg\n" + "b2YgIjAiIG1lYW5zICJmcmVlIG1lIGltbWVkaWF0ZWx5IikuDQoNClRoZSBrZXJuZWwgaGFzIGEg\n" + "cGxldGhvcmEgb2Ygb2JqZWN0IGNhY2hpbmcgaW1wbGVtZW50YXRpb25zIHdoZXJlIHRoaXMNCmlz\n" + "IHNpbXBseSBub3QgdGhlIGNhc2U7IHRoZSBkY2FjaGUgaXMgYSBwcmltZSBleGFtcGxlLCBhbmQg\n" + "dGhpcyBjYWNoZQ0KaXMgYW5vdGhlci4gSW4gYm90aCB0aGVzZSBpbXBsZW1lbnRhdGlvbiwgdGhl\n" + "IGF0b21pY190IHZhcmlhYmxlIGlzDQpiZWluZyB1c2VkIG1vcmUgYXMgYSBzZW1hcGhvcmUtc3R5\n" + "bGUgbG9jayB0aGF0IHByZXZlbnRzIGZyZWVpbmcgb2YgdGhlDQpvYmplY3Qgd2hpbGUgaXQgaXMg\n" + "aW4gYWN0aXZlIHVzZSBhcyBvcHBvc2VkIHRvIGJlaW5nIGZyZWVhYmxlLCBidXQNCmNhY2hlZC4g\n" + "VGhpcyBpcyB3aHkgdGhlc2UgYXV0b21hdGVkIGNvbnZlcnNpb25zIGFyZSBhIG51aXNhbmNlIGFu\n" + "ZCBhDQpzb3VyY2Ugb2YgYnVncy4NCg0KLS0gDQpUcm9uZCBNeWtsZWJ1c3QNCkxpbnV4IE5GUyBj\n" + "bGllbnQgbWFpbnRhaW5lciwgUHJpbWFyeURhdGENCnRyb25kLm15a2xlYnVzdEBwcmltYXJ5ZGF0\n" + YS5jb20NCg= -c15dec5be1e2483993c6399e2910d4d8a79ef1e9c76cc8bf70dcdc4f0723a1ca +d7ba5a2ace664941b551073e275372e4b3e1fc7dfbf096f122e3d2ef5de2e2b9
diff --git a/a/content_digest b/N3/content_digest index ebcd1d0..d4fddcf 100644 --- a/a/content_digest +++ b/N3/content_digest @@ -2,29 +2,34 @@ "ref\01489752646-8749-2-git-send-email-elena.reshetova@intel.com\0" "ref\01489755011.6453.1.camel@primarydata.com\0" "ref\01489755736.2810.10.camel@poochiereds.net\0" - "ref\01489755736.2810.10.camel-vpEMnDpepFuMZCB2o+C8xQ@public.gmane.org\0" - "From\0Trond Myklebust <trondmy-7I+n7zu2hftEKMMhf/gKZA@public.gmane.org>\0" + "From\0Trond Myklebust <trondmy@primarydata.com>\0" "Subject\0Re: [PATCH 01/23] net, sunrpc: convert rpc_cred.cr_count from atomic_t to refcount_t\0" "Date\0Fri, 17 Mar 2017 14:28:37 +0000\0" - "To\0elena.reshetova-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org <elena.reshetova-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>" - netdev-u79uwXL29TY76Z2rM5mHXA@public.gmane.org <netdev-u79uwXL29TY76Z2rM5mHXA@public.gmane.org> - " jlayton-vpEMnDpepFuMZCB2o+C8xQ@public.gmane.org <jlayton-vpEMnDpepFuMZCB2o+C8xQ@public.gmane.org>\0" - "Cc\0herbert-lOAM2aK0SrRLBo1qDEOMRrpzq4S04n8Q@public.gmane.org <herbert-lOAM2aK0SrRLBo1qDEOMRrpzq4S04n8Q@public.gmane.org>" - linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org <linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org> - peterz-wEGCiKHe2LqWVfeAwA7xHQ@public.gmane.org <peterz-wEGCiKHe2LqWVfeAwA7xHQ@public.gmane.org> - ralf-6z/3iImG2C8G8FEW9MqTrA@public.gmane.org <ralf-6z/3iImG2C8G8FEW9MqTrA@public.gmane.org> - linux-rdma-u79uwXL29TY76Z2rM5mHXA@public.gmane.org <linux-rdma-u79uwXL29TY76Z2rM5mHXA@public.gmane.org> - ishkamiel-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org <ishkamiel-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> - bfields-uC3wQj2KruNg9hUCZPvPmw@public.gmane.org <bfields-uC3wQj2KruNg9hUCZPvPmw@public.gmane.org> - steffen.klassert-opNxpl+3fjRBDgjK7y7TUQ@public.gmane.org <steffen.klassert-opNxpl+3fjRBDgjK7y7TUQ@public.gmane.org> - nhorman-2XuSBdqkA4R54TAoqtyWWQ@public.gmane.org <nhorman-2XuSBdqkA4R54TAoqtyWWQ@public.gmane.org> - linux-nfs-u79uwXL29TY76Z2rM5mHXA@public.gmane.org <linux-nfs-u79uwXL29TY76Z2rM5mHXA@public.gmane.org> - jreuter-K7Hl1MveuGQ@public.gmane.org <jreuter-K7Hl1MveuGQ@public.gmane.org> - keescook-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org <keescook-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org> - linux-hams-u79uwXL29TY76Z2rM5mHXA@public.gmane.org <linux-hams-u79uwXL29TY76Z2rM5mHXA@public.gmane.org> - dwindsor-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org <dwindsor-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> - zyan-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org <zyan-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org> - " sage@redhat.\0" + "To\0elena.reshetova@intel.com <elena.reshetova@intel.com>" + netdev@vger.kernel.org <netdev@vger.kernel.org> + " jlayton@poochiereds.net <jlayton@poochiereds.net>\0" + "Cc\0herbert@gondor.apana.org.au <herbert@gondor.apana.org.au>" + linux-kernel@vger.kernel.org <linux-kernel@vger.kernel.org> + peterz@infradead.org <peterz@infradead.org> + ralf@linux-mips.org <ralf@linux-mips.org> + linux-rdma@vger.kernel.org <linux-rdma@vger.kernel.org> + ishkamiel@gmail.com <ishkamiel@gmail.com> + bfields@fieldses.org <bfields@fieldses.org> + steffen.klassert@secunet.com <steffen.klassert@secunet.com> + nhorman@tuxdriver.com <nhorman@tuxdriver.com> + linux-nfs@vger.kernel.org <linux-nfs@vger.kernel.org> + jreuter@yaina.de <jreuter@yaina.de> + keescook@chromium.org <keescook@chromium.org> + linux-hams@vger.kernel.org <linux-hams@vger.kernel.org> + dwindsor@gmail.com <dwindsor@gmail.com> + zyan@redhat.com <zyan@redhat.com> + sage@redhat.com <sage@redhat.com> + davem@davemloft.net <davem@davemloft.net> + linux-sctp@vger.kernel.org <linux-sctp@vger.kernel.org> + vyasevich@gmail.com <vyasevich@gmail.com> + linux-x25@vger.kernel.org <linux-x25@vger.kernel.org> + santosh.shilimkar@oracle.com <santosh.shilimkar@oracle.com> + " ceph-devel@vger.kernel.org <ceph-devel@vger.kernel.org>\0" "\00:1\0" "b\0" "On Fri, 2017-03-17 at 09:02 -0400, Jeff Layton wrote:\n" @@ -120,4 +125,4 @@ "Linux NFS client maintainer, PrimaryData\n" trond.myklebust@primarydata.com -c15dec5be1e2483993c6399e2910d4d8a79ef1e9c76cc8bf70dcdc4f0723a1ca +4c39298dcf5469498cd977cadb56d4e634f6eb029561e3bb80a09116183b8512
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.