diff for duplicates of <1509908140.12548.8.camel@primarydata.com> diff --git a/a/1.txt b/N1/1.txt index 1604403..72d0dd8 100644 --- a/a/1.txt +++ b/N1/1.txt @@ -1,38 +1,61 @@ -T24gU3VuLCAyMDE3LTExLTA1IGF0IDE5OjQ4ICswMzAwLCBWYXNpbHkgQXZlcmluIHdyb3RlOg0K -PiBPbiAyMDE3LTExLTA1IDE5OjAyLCBUcm9uZCBNeWtsZWJ1c3Qgd3JvdGU6DQo+ID4gT24gU3Vu -LCAyMDE3LTExLTA1IGF0IDEzOjAwICswMzAwLCBWYXNpbHkgQXZlcmluIHdyb3RlOg0KPiA+ID4g -QmUgc3VyZSB0aGF0IG5mc19jbGllbnRfbGlzdCBhbmQgbmZzX3ZvbHVtZV9saXN0IGxpc3RzDQo+ -ID4gPiBpbml0aWFsaXplZA0KPiA+ID4gaW4gbmV0X2luaXQgaG9vayB3ZXJlIHJldHVybiB0byBp -bml0aWFsIHN0YXRlIGluIG5ldF9leGl0IGhvb2suDQo+ID4gPiANCj4gPiA+IFNpZ25lZC1vZmYt -Ynk6IFZhc2lseSBBdmVyaW4gPHZ2c0B2aXJ0dW96em8uY29tPg0KPiA+ID4gLS0tDQo+ID4gPiAg -ZnMvbmZzL2NsaWVudC5jIHwgNCArKysrDQo+ID4gPiAgMSBmaWxlIGNoYW5nZWQsIDQgaW5zZXJ0 -aW9ucygrKQ0KPiA+ID4gDQo+ID4gPiBkaWZmIC0tZ2l0IGEvZnMvbmZzL2NsaWVudC5jIGIvZnMv -bmZzL2NsaWVudC5jDQo+ID4gPiBpbmRleCAyMjg4MGVmLi43YzA2OTFjIDEwMDY0NA0KPiA+ID4g -LS0tIGEvZnMvbmZzL2NsaWVudC5jDQo+ID4gPiArKysgYi9mcy9uZnMvY2xpZW50LmMNCj4gPiA+ -IEBAIC0yMDQsNiArMjA0LDEwIEBAIHZvaWQgbmZzX2NsZWFudXBfY2JfaWRlbnRfaWRyKHN0cnVj -dCBuZXQNCj4gPiA+ICpuZXQpDQo+ID4gPiAgCXN0cnVjdCBuZnNfbmV0ICpubiA9IG5ldF9nZW5l -cmljKG5ldCwgbmZzX25ldF9pZCk7DQo+ID4gPiAgDQo+ID4gPiAgCWlkcl9kZXN0cm95KCZubi0+ -Y2JfaWRlbnRfaWRyKTsNCj4gPiA+ICsJV0FSTighbGlzdF9lbXB0eSgmbm4tPm5mc19jbGllbnRf -bGlzdCksDQo+ID4gPiArCSAgICAgIm5ldCAlcCBleGl0OiBuZnNfY2xpZW50X2xpc3QgaXMgbm90 -IGVtcHR5XG4iLA0KPiA+ID4gbmV0KTsNCj4gPiA+ICsJV0FSTighbGlzdF9lbXB0eSgmbm4tPm5m -c192b2x1bWVfbGlzdCksDQo+ID4gPiArCSAgICAgIm5ldCAlcCBleGl0OiBuZnNfdm9sdW1lX2xp -c3QgaXMgbm90IGVtcHR5XG4iLA0KPiA+ID4gbmV0KTsNCj4gPiA+ICB9DQo+ID4gPiAgDQo+ID4g -DQo+ID4gV2h5IGRvIHdlIG5lZWQgdGhlc2U/IElzIHRoZXJlIGEgc3BlY2lmaWMgYnVnIHRoYXQg -eW91IGFyZSB0cnlpbmcNCj4gPiB0bw0KPiA+IHRyYWNrIGRvd24/DQo+IA0KPiBJIGhvcGUgc3Vj -aCBjaGVja3MgYWxsb3dzIHRvIGRldGVjdCBsZWFrZWQgcGVyLW5ldG5zIG9iamVjdHMuDQo+IEFs -c28gSSBob3BlIHRoYXQgYWxsIG5ldyBwZXJuZXRfb3BlcmF0aW9ucyB3aWxsIGluaGVyaXQgc3Vj -aCBjaGVja3MNCj4gdG9vLg0KPiANCj4gSSBhc3N1bWUgdGhhdCBlbGVtZW50cyBhZGRlZCBpbnRv -IHBlci1uZXQgbGlzdHMgc2hvdWxkIG5vdCBsaXZlDQo+IGxvbmdlciB0aGFuIG5ldCBuYW1lc3Bh -Y2UsDQo+IGFuZCBzaG91bGQgYmUgZGVsZXRlZCBmcm9tIHRoZSBsaXN0LiBJIHRoaW5rIGV4aXRf -bmV0IGhvb2sgaXMgZ29vZA0KPiBwbGFjZSBmb3Igc3VjaCBjaGVjay4NCj4gDQo+IFJlY2VudGx5 -IEkndmUgZm91bmQgbG9zdCBsaXN0X2VudHJ5IGFuZCBlbmFibGVkIHRpbWVyIG9uIHN0b3Agb2Yg -bmV0DQo+IG5hbWVzcGFjZS4NCj4gVGhlbiBJJ3ZlIHJldmlld2VkIGFsbCBleGlzdGluZyBwZXJu -ZXRfb3BlcmF0aW9ucyBhbmQgZm91bmQgdGhhdCBtYW55DQo+IGRyaXZlcnMNCj4gaGF2ZSBzdWNo -IGNoZWNrcyBhbHJlYWR5LiBTbyBJIGRlY2lkZWQgdG8gY29tcGxldGUgdGhpcyB0YXNrIGFuZCBh -ZGQNCj4gc3VjaCBjaGVja3MNCj4gaW50byBhbGwgYWZmZWN0ZWQgc3Vic3lzdGVtcy4NCj4gDQoN -ClVubGVzcyB0aGVyZSBpcyBhIGtub3duIHByb2JsZW0gdGhhdCBoYXMgc3BlY2lmaWMgZGVidWdn -aW5nIG5lZWRzLCB0aGlzDQpraW5kIG9mIGFzc2VydCBzaG91bGQgdGFrZSB0aGUgZm9ybSBvZiBh -IFdBUk5fT05DRSgpIHNvIHRoYXQgaXQgZG9lc24ndA0KZmlsbCB1c2VyIHN5c2xvZ3Mgd2l0aCBy -ZWR1bmRhbnQgd2FybmluZ3MgaWYgdHJpZ2dlcmVkLg0KDQotLSANClRyb25kIE15a2xlYnVzdA0K -TGludXggTkZTIGNsaWVudCBtYWludGFpbmVyLCBQcmltYXJ5RGF0YQ0KdHJvbmQubXlrbGVidXN0 -QHByaW1hcnlkYXRhLmNvbQ0K +On Sun, 2017-11-05 at 19:48 +0300, Vasily Averin wrote: +> On 2017-11-05 19:02, Trond Myklebust wrote: +> > On Sun, 2017-11-05 at 13:00 +0300, Vasily Averin wrote: +> > > Be sure that nfs_client_list and nfs_volume_list lists +> > > initialized +> > > in net_init hook were return to initial state in net_exit hook. +> > > +> > > Signed-off-by: Vasily Averin <vvs@virtuozzo.com> +> > > --- +> > > fs/nfs/client.c | 4 ++++ +> > > 1 file changed, 4 insertions(+) +> > > +> > > diff --git a/fs/nfs/client.c b/fs/nfs/client.c +> > > index 22880ef..7c0691c 100644 +> > > --- a/fs/nfs/client.c +> > > +++ b/fs/nfs/client.c +> > > @@ -204,6 +204,10 @@ void nfs_cleanup_cb_ident_idr(struct net +> > > *net) +> > > struct nfs_net *nn = net_generic(net, nfs_net_id); +> > > +> > > idr_destroy(&nn->cb_ident_idr); +> > > + WARN(!list_empty(&nn->nfs_client_list), +> > > + "net %p exit: nfs_client_list is not empty\n", +> > > net); +> > > + WARN(!list_empty(&nn->nfs_volume_list), +> > > + "net %p exit: nfs_volume_list is not empty\n", +> > > net); +> > > } +> > > +> > +> > Why do we need these? Is there a specific bug that you are trying +> > to +> > track down? +> +> I hope such checks allows to detect leaked per-netns objects. +> Also I hope that all new pernet_operations will inherit such checks +> too. +> +> I assume that elements added into per-net lists should not live +> longer than net namespace, +> and should be deleted from the list. I think exit_net hook is good +> place for such check. +> +> Recently I've found lost list_entry and enabled timer on stop of net +> namespace. +> Then I've reviewed all existing pernet_operations and found that many +> drivers +> have such checks already. So I decided to complete this task and add +> such checks +> into all affected subsystems. +> + +Unless there is a known problem that has specific debugging needs, this +kind of assert should take the form of a WARN_ONCE() so that it doesn't +fill user syslogs with redundant warnings if triggered. + +-- +Trond Myklebust +Linux NFS client maintainer, PrimaryData +trond.myklebust@primarydata.com +N§²æìr¸yúèØb²X¬¶Ç§vØ^)Þº{.nÇ+·¥{±û"Ø^nr¡ö¦zË\x1aëh¨èÚ&¢îý»\x05ËÛÔØï¦v¬Îf\x1dp)¹¹br ê+Ê+zf£¢·h§~Ûiÿûàz¹\x1e®w¥¢¸?¨èÚ&¢)ߢ^[f diff --git a/a/content_digest b/N1/content_digest index 0eb625a..a13648e 100644 --- a/a/content_digest +++ b/N1/content_digest @@ -1,52 +1,76 @@ "ref\05cbecaf0-dbb6-4140-43ed-ae94fc161941@virtuozzo.com\0" "ref\01509897719.5851.2.camel@primarydata.com\0" "ref\0297fee4f-3cef-9bd4-d683-a14559939b65@virtuozzo.com\0" - "From\0Trond Myklebust <trondmy@primarydata.com>\0" + "ref\0297fee4f-3cef-9bd4-d683-a14559939b65-5HdwGun5lf+gSpxsJD1C4w@public.gmane.org\0" + "From\0Trond Myklebust <trondmy-7I+n7zu2hftEKMMhf/gKZA@public.gmane.org>\0" "Subject\0Re: [PATCH 06/21] nfs client: exit_net cleanup check added\0" "Date\0Sun, 5 Nov 2017 18:55:42 +0000\0" - "To\0netdev@vger.kernel.org <netdev@vger.kernel.org>" - " vvs@virtuozzo.com <vvs@virtuozzo.com>\0" - "Cc\0anna.schumaker@netapp.com <anna.schumaker@netapp.com>" - " linux-nfs@vger.kernel.org <linux-nfs@vger.kernel.org>\0" + "To\0netdev-u79uwXL29TY76Z2rM5mHXA@public.gmane.org <netdev-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>" + " vvs-5HdwGun5lf+gSpxsJD1C4w@public.gmane.org <vvs-5HdwGun5lf+gSpxsJD1C4w@public.gmane.org>\0" + "Cc\0anna.schumaker-HgOvQuBEEgTQT0dZR+AlfA@public.gmane.org <anna.schumaker-HgOvQuBEEgTQT0dZR+AlfA@public.gmane.org>" + " linux-nfs-u79uwXL29TY76Z2rM5mHXA@public.gmane.org <linux-nfs-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>\0" "\00:1\0" "b\0" - "T24gU3VuLCAyMDE3LTExLTA1IGF0IDE5OjQ4ICswMzAwLCBWYXNpbHkgQXZlcmluIHdyb3RlOg0K\n" - "PiBPbiAyMDE3LTExLTA1IDE5OjAyLCBUcm9uZCBNeWtsZWJ1c3Qgd3JvdGU6DQo+ID4gT24gU3Vu\n" - "LCAyMDE3LTExLTA1IGF0IDEzOjAwICswMzAwLCBWYXNpbHkgQXZlcmluIHdyb3RlOg0KPiA+ID4g\n" - "QmUgc3VyZSB0aGF0IG5mc19jbGllbnRfbGlzdCBhbmQgbmZzX3ZvbHVtZV9saXN0IGxpc3RzDQo+\n" - "ID4gPiBpbml0aWFsaXplZA0KPiA+ID4gaW4gbmV0X2luaXQgaG9vayB3ZXJlIHJldHVybiB0byBp\n" - "bml0aWFsIHN0YXRlIGluIG5ldF9leGl0IGhvb2suDQo+ID4gPiANCj4gPiA+IFNpZ25lZC1vZmYt\n" - "Ynk6IFZhc2lseSBBdmVyaW4gPHZ2c0B2aXJ0dW96em8uY29tPg0KPiA+ID4gLS0tDQo+ID4gPiAg\n" - "ZnMvbmZzL2NsaWVudC5jIHwgNCArKysrDQo+ID4gPiAgMSBmaWxlIGNoYW5nZWQsIDQgaW5zZXJ0\n" - "aW9ucygrKQ0KPiA+ID4gDQo+ID4gPiBkaWZmIC0tZ2l0IGEvZnMvbmZzL2NsaWVudC5jIGIvZnMv\n" - "bmZzL2NsaWVudC5jDQo+ID4gPiBpbmRleCAyMjg4MGVmLi43YzA2OTFjIDEwMDY0NA0KPiA+ID4g\n" - "LS0tIGEvZnMvbmZzL2NsaWVudC5jDQo+ID4gPiArKysgYi9mcy9uZnMvY2xpZW50LmMNCj4gPiA+\n" - "IEBAIC0yMDQsNiArMjA0LDEwIEBAIHZvaWQgbmZzX2NsZWFudXBfY2JfaWRlbnRfaWRyKHN0cnVj\n" - "dCBuZXQNCj4gPiA+ICpuZXQpDQo+ID4gPiAgCXN0cnVjdCBuZnNfbmV0ICpubiA9IG5ldF9nZW5l\n" - "cmljKG5ldCwgbmZzX25ldF9pZCk7DQo+ID4gPiAgDQo+ID4gPiAgCWlkcl9kZXN0cm95KCZubi0+\n" - "Y2JfaWRlbnRfaWRyKTsNCj4gPiA+ICsJV0FSTighbGlzdF9lbXB0eSgmbm4tPm5mc19jbGllbnRf\n" - "bGlzdCksDQo+ID4gPiArCSAgICAgIm5ldCAlcCBleGl0OiBuZnNfY2xpZW50X2xpc3QgaXMgbm90\n" - "IGVtcHR5XG4iLA0KPiA+ID4gbmV0KTsNCj4gPiA+ICsJV0FSTighbGlzdF9lbXB0eSgmbm4tPm5m\n" - "c192b2x1bWVfbGlzdCksDQo+ID4gPiArCSAgICAgIm5ldCAlcCBleGl0OiBuZnNfdm9sdW1lX2xp\n" - "c3QgaXMgbm90IGVtcHR5XG4iLA0KPiA+ID4gbmV0KTsNCj4gPiA+ICB9DQo+ID4gPiAgDQo+ID4g\n" - "DQo+ID4gV2h5IGRvIHdlIG5lZWQgdGhlc2U/IElzIHRoZXJlIGEgc3BlY2lmaWMgYnVnIHRoYXQg\n" - "eW91IGFyZSB0cnlpbmcNCj4gPiB0bw0KPiA+IHRyYWNrIGRvd24/DQo+IA0KPiBJIGhvcGUgc3Vj\n" - "aCBjaGVja3MgYWxsb3dzIHRvIGRldGVjdCBsZWFrZWQgcGVyLW5ldG5zIG9iamVjdHMuDQo+IEFs\n" - "c28gSSBob3BlIHRoYXQgYWxsIG5ldyBwZXJuZXRfb3BlcmF0aW9ucyB3aWxsIGluaGVyaXQgc3Vj\n" - "aCBjaGVja3MNCj4gdG9vLg0KPiANCj4gSSBhc3N1bWUgdGhhdCBlbGVtZW50cyBhZGRlZCBpbnRv\n" - "IHBlci1uZXQgbGlzdHMgc2hvdWxkIG5vdCBsaXZlDQo+IGxvbmdlciB0aGFuIG5ldCBuYW1lc3Bh\n" - "Y2UsDQo+IGFuZCBzaG91bGQgYmUgZGVsZXRlZCBmcm9tIHRoZSBsaXN0LiBJIHRoaW5rIGV4aXRf\n" - "bmV0IGhvb2sgaXMgZ29vZA0KPiBwbGFjZSBmb3Igc3VjaCBjaGVjay4NCj4gDQo+IFJlY2VudGx5\n" - "IEkndmUgZm91bmQgbG9zdCBsaXN0X2VudHJ5IGFuZCBlbmFibGVkIHRpbWVyIG9uIHN0b3Agb2Yg\n" - "bmV0DQo+IG5hbWVzcGFjZS4NCj4gVGhlbiBJJ3ZlIHJldmlld2VkIGFsbCBleGlzdGluZyBwZXJu\n" - "ZXRfb3BlcmF0aW9ucyBhbmQgZm91bmQgdGhhdCBtYW55DQo+IGRyaXZlcnMNCj4gaGF2ZSBzdWNo\n" - "IGNoZWNrcyBhbHJlYWR5LiBTbyBJIGRlY2lkZWQgdG8gY29tcGxldGUgdGhpcyB0YXNrIGFuZCBh\n" - "ZGQNCj4gc3VjaCBjaGVja3MNCj4gaW50byBhbGwgYWZmZWN0ZWQgc3Vic3lzdGVtcy4NCj4gDQoN\n" - "ClVubGVzcyB0aGVyZSBpcyBhIGtub3duIHByb2JsZW0gdGhhdCBoYXMgc3BlY2lmaWMgZGVidWdn\n" - "aW5nIG5lZWRzLCB0aGlzDQpraW5kIG9mIGFzc2VydCBzaG91bGQgdGFrZSB0aGUgZm9ybSBvZiBh\n" - "IFdBUk5fT05DRSgpIHNvIHRoYXQgaXQgZG9lc24ndA0KZmlsbCB1c2VyIHN5c2xvZ3Mgd2l0aCBy\n" - "ZWR1bmRhbnQgd2FybmluZ3MgaWYgdHJpZ2dlcmVkLg0KDQotLSANClRyb25kIE15a2xlYnVzdA0K\n" - "TGludXggTkZTIGNsaWVudCBtYWludGFpbmVyLCBQcmltYXJ5RGF0YQ0KdHJvbmQubXlrbGVidXN0\n" - QHByaW1hcnlkYXRhLmNvbQ0K + "On Sun, 2017-11-05 at 19:48 +0300, Vasily Averin wrote:\n" + "> On 2017-11-05 19:02, Trond Myklebust wrote:\n" + "> > On Sun, 2017-11-05 at 13:00 +0300, Vasily Averin wrote:\n" + "> > > Be sure that nfs_client_list and nfs_volume_list lists\n" + "> > > initialized\n" + "> > > in net_init hook were return to initial state in net_exit hook.\n" + "> > > \n" + "> > > Signed-off-by: Vasily Averin <vvs@virtuozzo.com>\n" + "> > > ---\n" + "> > > fs/nfs/client.c | 4 ++++\n" + "> > > 1 file changed, 4 insertions(+)\n" + "> > > \n" + "> > > diff --git a/fs/nfs/client.c b/fs/nfs/client.c\n" + "> > > index 22880ef..7c0691c 100644\n" + "> > > --- a/fs/nfs/client.c\n" + "> > > +++ b/fs/nfs/client.c\n" + "> > > @@ -204,6 +204,10 @@ void nfs_cleanup_cb_ident_idr(struct net\n" + "> > > *net)\n" + "> > > \tstruct nfs_net *nn = net_generic(net, nfs_net_id);\n" + "> > > \n" + "> > > \tidr_destroy(&nn->cb_ident_idr);\n" + "> > > +\tWARN(!list_empty(&nn->nfs_client_list),\n" + "> > > +\t \"net %p exit: nfs_client_list is not empty\\n\",\n" + "> > > net);\n" + "> > > +\tWARN(!list_empty(&nn->nfs_volume_list),\n" + "> > > +\t \"net %p exit: nfs_volume_list is not empty\\n\",\n" + "> > > net);\n" + "> > > }\n" + "> > > \n" + "> > \n" + "> > Why do we need these? Is there a specific bug that you are trying\n" + "> > to\n" + "> > track down?\n" + "> \n" + "> I hope such checks allows to detect leaked per-netns objects.\n" + "> Also I hope that all new pernet_operations will inherit such checks\n" + "> too.\n" + "> \n" + "> I assume that elements added into per-net lists should not live\n" + "> longer than net namespace,\n" + "> and should be deleted from the list. I think exit_net hook is good\n" + "> place for such check.\n" + "> \n" + "> Recently I've found lost list_entry and enabled timer on stop of net\n" + "> namespace.\n" + "> Then I've reviewed all existing pernet_operations and found that many\n" + "> drivers\n" + "> have such checks already. So I decided to complete this task and add\n" + "> such checks\n" + "> into all affected subsystems.\n" + "> \n" + "\n" + "Unless there is a known problem that has specific debugging needs, this\n" + "kind of assert should take the form of a WARN_ONCE() so that it doesn't\n" + "fill user syslogs with redundant warnings if triggered.\n" + "\n" + "-- \n" + "Trond Myklebust\n" + "Linux NFS client maintainer, PrimaryData\n" + "trond.myklebust@primarydata.com\n" + "N\302\213\302\247\302\262\303\246\303\254r\302\270\302\233y\303\272\303\250\302\232\303\230b\302\262X\302\254\302\266\303\207\302\247v\303\230^\302\226)\303\236\302\272{.n\303\207+\302\211\302\267\302\245\302\212{\302\261\302\235\303\273\"\302\236\303\230^n\302\207r\302\241\303\266\302\246z\303\213\032\302\201\303\253h\302\231\302\250\303\250\302\255\303\232&\302\242\303\256\303\275\302\273\005\303\213\303\233\303\224\303\230\303\257\302\246v\302\254\303\216f\035p)\302\271\302\271br\t\302\232\302\235\303\252+\302\200\303\212+zf\302\243\302\242\302\267h\302\232\302\210\302\247~\302\206\302\255\302\206\303\233i\303\277\303\273\303\240z\302\271\036\302\256w\302\245\302\242\302\270?\302\231\302\250\303\250\302\255\303\232&\302\242)\303\237\302\242\033f" -061e421065b25f9b4e0edd81e856208f6c177511b3846783a06f4a4401d7157a +408a82cdc81c50aa6ab55d17e9e966dbfdc836a1c450accabd0d4f488c248f26
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.