NFS: put net in case of idr allocation failure
Subsystems (2)
PATCH 1/1 NFS: put net in case of idr allocation failure
Put net reference we got in nfs_alloc_client() on error path.
--- fs/nfs/nfs4client.c | 1 + 1 files changed, 1 insertions(+), 0 deletions(-)
fs/nfs/nfs4client.c +1 -0
@@ -74,6 +74,7 @@ struct nfs_client *nfs4_alloc_client(const struct nfs_client_initdata *cl_init)return clp; error: +put_net (clp->cl_net);kfree (clp);return ERR_PTR (err); }
T24gTW9uLCAyMDEyLTA4LTIwIGF0IDE3OjQzICswNDAwLCBTdGFuaXNsYXYgS2luc2J1cnNreSB3 cm90ZToNCj4gUHV0IG5ldCByZWZlcmVuY2Ugd2UgZ290IGluIG5mc19hbGxvY19jbGllbnQoKSBv biBlcnJvciBwYXRoLg0KPiANCj4gU2lnbmVkLW9mZi1ieTogU3RhbmlzbGF2IEtpbnNidXJza3kg PHNraW5zYnVyc2t5QHBhcmFsbGVscy5jb20+DQo+IC0tLQ0KPiAgZnMvbmZzL25mczRjbGllbnQu YyB8ICAgIDEgKw0KPiAgMSBmaWxlcyBjaGFuZ2VkLCAxIGluc2VydGlvbnMoKyksIDAgZGVsZXRp b25zKC0pDQo+IA0KPiBkaWZmIC0tZ2l0IGEvZnMvbmZzL25mczRjbGllbnQuYyBiL2ZzL25mcy9u ZnM0Y2xpZW50LmMNCj4gaW5kZXggY2JjZGZhZi4uYjg5NTYyOSAxMDA2NDQNCj4gLS0tIGEvZnMv bmZzL25mczRjbGllbnQuYw0KPiArKysgYi9mcy9uZnMvbmZzNGNsaWVudC5jDQo+IEBAIC03NCw2 ICs3NCw3IEBAIHN0cnVjdCBuZnNfY2xpZW50ICpuZnM0X2FsbG9jX2NsaWVudChjb25zdCBzdHJ1 Y3QgbmZzX2NsaWVudF9pbml0ZGF0YSAqY2xfaW5pdCkNCj4gIAlyZXR1cm4gY2xwOw0KPiAgDQo+ ICBlcnJvcjoNCj4gKwlwdXRfbmV0KGNscC0+Y2xfbmV0KTsNCj4gIAlrZnJlZShjbHApOw0KPiAg CXJldHVybiBFUlJfUFRSKGVycik7DQo+ICB9DQoNCg0KTm8sIHRoYXQgaXNuJ3QgYW55d2hlcmUg bmVhciBzdWZmaWNpZW50Lg0KDQpUaGUgY29ycmVjdCB0aGluZyB0byBkbyBoZXJlIGlzIHRvIHJl cGxhY2UgdGhlIGtmcmVlIHdpdGggYSBjYWxsIHRvDQpuZnNfZnJlZV9jbGllbnQoKSwgd2hpY2gg d2lsbCBhbHNvIGNsZWFuIHVwIHRoZSBhbGxvY2F0aW9uIG9mDQpjbF9ob3N0bmFtZSwgcHV0IHRo ZSBtb2R1bGUsIGV0Yy4NCg0KLS0gDQpUcm9uZCBNeWtsZWJ1c3QNCkxpbnV4IE5GUyBjbGllbnQg bWFpbnRhaW5lcg0KDQpOZXRBcHANClRyb25kLk15a2xlYnVzdEBuZXRhcHAuY29tDQp3d3cubmV0 YXBwLmNvbQ0KDQo=
20.08.2012 20:11, Myklebust, Trond пишет:
Quoted 24 lines · Stanislav Kinsbursky
Quoted 12 lines
Put net reference we got in
nfs_alloc_client()on error path.Signed-off-by Stanislav Kinsbursky <[email protected]>--- fs/nfs/nfs4client.c | 1 + 1 files changed, 1 insertions(+), 0 deletions(-)fs/nfs/nfs4client.c +0
-0fs/nfs/nfs4client.c struct nfs_client *nfs4_alloc_client(const struct nfs_client_initdata *cl_init) · line 80
Quoted 7 lines
fs/nfs/nfs4client.c +1
-0@@ -74,6 +74,7 @@ struct nfs_client *nfs4_alloc_client(const struct nfs_client_initdata *cl_init)return clp; error: +put_net (clp->cl_net);kfree (clp);return ERR_PTR (err); }No, that isn't anywhere near sufficient.
Quoted 4 lines
The correct thing to do here is to replace the kfree with a call to
nfs_free_client(), which will also clean up the allocation ofcl_hostname, put the module, etc.
Sure, you are right.
Signature · 2 lines
Best regards, Stanislav Kinsbursky