[PATCH] some memory leaks for intermezzo module (2.4 kernel)

Renaud Duhaut <[email protected]> 06 Aug 2003 15:27:58 +0200
Newsgroups gmane.comp.file-systems.intermezzo.devel
Message-ID <1060176477.2539.46.camel@p137>
--=-XpbcYsXWOqodjThaJ5XA
Content-Type: multipart/mixed; boundary="=-rQvlWMitMXVPJZ2TpbkG"


--=-rQvlWMitMXVPJZ2TpbkG
Content-Type: text/plain
Content-Transfer-Encoding: quoted-printable

Hello,

+this patch essentially resolve a slab allocator problem, which prevent
unloading of the intermezzo.o module.

While digging in intermezzo source, I saw that some dentries have
presto_dentry_data allocated , but d_op  not redirected to
presto_d_release.
By the way these data are never freed to the slab allocator.
As a result, intermezzo module can't be reloaded, because of
kmem_cache_destroy unable to destroy the presto_cache.

To fix this , I moved the d_op redirection closest to allocation of the
d_data, in the presto_set_dd function. IMHO, this is a far better place

To be precise, the defective dentry was :
/mountpoint_of_my_intermezzo_fs/.intermezzo/config
used by Intersync.
In fact, all files created just under .intermezzo (and not in
subdirectories) are affected.

+ fix some memory leaks and presto_kmemory false counts.
+ backport of Domen Puncer and Chen Yang replicator.c correction



--=20
Renaud Duhaut <[email protected]>

--=-rQvlWMitMXVPJZ2TpbkG
Content-Disposition: attachment; filename=patch-intermezzo-slab
Content-Type: text/x-patch; name=patch-intermezzo-slab; charset=ISO-8859-15
Content-Transfer-Encoding: base64

ZGlmZiAtdXIgaW50ZXJtZXp6by1DVlMvZnMyNC9jYWNoZS5jIGludGVybWV6em8tcG9zdC9mczI0
L2NhY2hlLmMNCi0tLSBpbnRlcm1lenpvLUNWUy9mczI0L2NhY2hlLmMJMjAwMi0wNC0wNCAwNjo1
NDozNy4wMDAwMDAwMDAgKzAyMDANCisrKyBpbnRlcm1lenpvLXBvc3QvZnMyNC9jYWNoZS5jCTIw
MDMtMDgtMDYgMTQ6MjU6MzQuMDAwMDAwMDAwICswMjAwDQpAQCAtMTU1LDYgKzE1NSw5IEBADQog
ICAgICAgICAgICAgICAgIGNhY2hlLT5jYWNoZV9zYi0+c19yb290LT5kX2ZzZGF0YSA9IE5VTEw7
DQogICAgICAgICB9DQogDQorCQlpZiAoY2FjaGUtPmNhY2hlX3R5cGUpDQorCQkJCVBSRVNUT19G
UkVFKGNhY2hlLT5jYWNoZV90eXBlLCBzdHJsZW4oY2FjaGUtPmNhY2hlX3R5cGUpICsgMSApOw0K
Kw0KICAgICAgICAgUFJFU1RPX0ZSRUUoY2FjaGUsIHNpemVvZihzdHJ1Y3QgcHJlc3RvX2NhY2hl
KSk7DQogfQ0KIA0KZGlmZiAtdXIgaW50ZXJtZXp6by1DVlMvZnMyNC9kY2FjaGUuYyBpbnRlcm1l
enpvLXBvc3QvZnMyNC9kY2FjaGUuYw0KLS0tIGludGVybWV6em8tQ1ZTL2ZzMjQvZGNhY2hlLmMJ
MjAwMi0xMC0yMyAxNDo0NDozNy4wMDAwMDAwMDAgKzAyMDANCisrKyBpbnRlcm1lenpvLXBvc3Qv
ZnMyNC9kY2FjaGUuYwkyMDAzLTA4LTA2IDE0OjI3OjM2LjAwMDAwMDAwMCArMDIwMA0KQEAgLTMy
NCw2ICszMjQsMTEgQEANCiAgICAgICAgICAgICAgICAgICAgICAgICBkZW50cnksIGRlbnRyeS0+
ZF9uYW1lLmxlbiwgZGVudHJ5LT5kX25hbWUubmFtZSwgDQogICAgICAgICAgICAgICAgICAgICAg
ICAgZGVudHJ5LT5kX2ZzZGF0YSk7DQogICAgICAgICB1bmxvY2tfa2VybmVsKCk7DQorDQorICAg
ICAgICBmaWx0ZXJfc2V0dXBfZGVudHJ5X29wcyhmc2V0LT5mc2V0X2NhY2hlLT5jYWNoZV9maWx0
ZXIsDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZW50cnktPmRfb3AsICZwcmVz
dG9fZGVudHJ5X29wcyk7DQorICAgICAgICBkZW50cnktPmRfb3AgPSBmaWx0ZXJfYzJ1ZG9wcyhm
c2V0LT5mc2V0X2NhY2hlLT5jYWNoZV9maWx0ZXIpOw0KKw0KICAgICAgICAgcmV0dXJuIGVycm9y
OyANCiB9DQogDQpkaWZmIC11ciBpbnRlcm1lenpvLUNWUy9mczI0L2Rpci5jIGludGVybWV6em8t
cG9zdC9mczI0L2Rpci5jDQotLS0gaW50ZXJtZXp6by1DVlMvZnMyNC9kaXIuYwkyMDAyLTA5LTI0
IDAwOjEwOjA2LjAwMDAwMDAwMCArMDIwMA0KKysrIGludGVybWV6em8tcG9zdC9mczI0L2Rpci5j
CTIwMDMtMDgtMDYgMTQ6MzE6MDUuMDAwMDAwMDAwICswMjAwDQpAQCAtMzAwLDEwICszMDAsNyBA
QA0KICAgICAgICAgLyogc29tZSBmaWxlIHN5c3RlbXMgaGF2ZSBubyByZWFkX2lub2RlOiBzZXQg
bWV0aG9kcyBoZXJlICovDQogICAgICAgICBpZiAoZGVudHJ5LT5kX2lub2RlKQ0KICAgICAgICAg
ICAgICAgICBwcmVzdG9fc2V0X29wcyhkZW50cnktPmRfaW5vZGUsIGNhY2hlLT5jYWNoZV9maWx0
ZXIpOw0KLQ0KLSAgICAgICAgZmlsdGVyX3NldHVwX2RlbnRyeV9vcHMoY2FjaGUtPmNhY2hlX2Zp
bHRlciwNCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlbnRyeS0+ZF9vcCwgJnBy
ZXN0b19kZW50cnlfb3BzKTsNCi0gICAgICAgIGRlbnRyeS0+ZF9vcCA9IGZpbHRlcl9jMnVkb3Bz
KGNhY2hlLT5jYWNoZV9maWx0ZXIpOw0KKwkJLyogZGVudHJ5LT5kX29wIGlzIG5vdyBob29rZWQg
aW4gZGNhY2hlLmM6cHJlc3RvX3NldF9kZCAqLw0KIA0KICAgICAgICAgLyogSW4gbG9va3VwIHdl
IHdpbGwgdG9sZXJhdGUgRVJPRlMgcmV0dXJuIGNvZGVzIGZyb20gcHJlc3RvX3NldF9kZA0KICAg
ICAgICAgICogdG8gcGxhY2F0ZSBORlMuIEVST0ZTIGluZGljYXRlcyB0aGF0IGEgZmlsZXNldCB3
YXMgbm90IGZvdW5kIGJ1dA0KZGlmZiAtdXIgaW50ZXJtZXp6by1DVlMvZnMyNC9maWxlc2V0LmMg
aW50ZXJtZXp6by1wb3N0L2ZzMjQvZmlsZXNldC5jDQotLS0gaW50ZXJtZXp6by1DVlMvZnMyNC9m
aWxlc2V0LmMJMjAwMi0xMC0wMyAwNTo1MDo0OS4wMDAwMDAwMDAgKzAyMDANCisrKyBpbnRlcm1l
enpvLXBvc3QvZnMyNC9maWxlc2V0LmMJMjAwMy0wOC0wNiAxNDoyOTozMy4wMDAwMDAwMDAgKzAy
MDANCkBAIC0xNTksNyArMTU5LDcgQEANCiAgICAgICAgICAgICAgICAgQ0RFQlVHKERfSU5PREUs
ICJFcnJvciAlZFxuIiwgZXJyb3IpOw0KICAgICAgICAgfQ0KIA0KLSAgICAgICAgUFJFU1RPX0ZS
RUUocGF0aCwgc3RybGVuKHBhdGgpKTsNCisgICAgICAgIFBSRVNUT19GUkVFKHBhdGgsIHN0cmxl
bihwYXRoKSsxKTsNCiANCiAgICAgICAgIEVYSVQ7DQogICAgICAgICByZXR1cm4gZjsNCkBAIC0y
NTksNiArMjU5LDcgQEANCiAgICAgICAgICAgICAgICAgZXJyb3IgPSAtRU5PTUVNOw0KICAgICAg
ICAgICAgICAgICBnb3RvIG91dF9mcmVlOw0KICAgICAgICAgfQ0KKwkJDQogICAgICAgICBwcmVz
dG9fZDJkKGRlbnRyeSktPmRkX2ZzZXQgPSBmc2V0Ow0KICAgICAgICAgbGlzdF9hZGQoJmZzZXQt
PmZzZXRfbGlzdCwgJmNhY2hlLT5jYWNoZV9mc2V0X2xpc3QpOw0KIA0KQEAgLTM0Myw2ICszNDQs
NyBAQA0KICAgICAgICAgZHB1dChmc2V0LT5mc2V0X2RlbnRyeSk7DQogICAgICAgICBtbnRwdXQo
ZnNldC0+ZnNldF9tbnQpOw0KIA0KKwkJaXpvX3JlcF9jYWNoZV9jbGVhbihmc2V0KTsNCiAgICAg
ICAgIFBSRVNUT19GUkVFKGZzZXQtPmZzZXRfbmFtZSwgc3RybGVuKGZzZXQtPmZzZXRfbmFtZSkg
KyAxKTsNCiAgICAgICAgIFBSRVNUT19GUkVFKGZzZXQtPmZzZXRfcmVpbnRfYnVmLCA2NCAqIDEw
MjQpOw0KICAgICAgICAgUFJFU1RPX0ZSRUUoZnNldCwgc2l6ZW9mKCpmc2V0KSk7DQpkaWZmIC11
ciBpbnRlcm1lenpvLUNWUy9mczI0L2xpbnV4L2ludGVybWV6em9fZnMuaCBpbnRlcm1lenpvLXBv
c3QvZnMyNC9saW51eC9pbnRlcm1lenpvX2ZzLmgNCi0tLSBpbnRlcm1lenpvLUNWUy9mczI0L2xp
bnV4L2ludGVybWV6em9fZnMuaAkyMDAyLTA0LTMwIDA0OjE3OjUwLjAwMDAwMDAwMCArMDIwMA0K
KysrIGludGVybWV6em8tcG9zdC9mczI0L2xpbnV4L2ludGVybWV6em9fZnMuaAkyMDAzLTA4LTA2
IDE0OjI5OjUyLjAwMDAwMDAwMCArMDIwMA0KQEAgLTY1Myw2ICs2NTMsNyBAQA0KIGludCBpem9f
cmVwc3RhdHVzKHN0cnVjdCBwcmVzdG9fZmlsZV9zZXQgKmZzZXQsIF9fdTY0IGNsaWVudF9rbWxz
aXplLCANCiAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgaXpvX3JjdmRfcmVjICpscl9jbGllbnQs
IHN0cnVjdCBpem9fcmN2ZF9yZWMgKmxyX3NlcnZlcik7DQogaW50IGl6b19yZXBfY2FjaGVfaW5p
dChzdHJ1Y3QgcHJlc3RvX2ZpbGVfc2V0ICopOw0KK3ZvaWQgaXpvX3JlcF9jYWNoZV9jbGVhbihz
dHJ1Y3QgcHJlc3RvX2ZpbGVfc2V0ICpmc2V0KTsNCiBsb2ZmX3QgaXpvX3JjdmRfZ2V0KHN0cnVj
dCBpem9fcmN2ZF9yZWMgKiwgc3RydWN0IHByZXN0b19maWxlX3NldCAqLCBjaGFyICp1dWlkKTsN
CiBsb2ZmX3QgaXpvX3JjdmRfd3JpdGUoc3RydWN0IHByZXN0b19maWxlX3NldCAqLCBzdHJ1Y3Qg
aXpvX3JjdmRfcmVjICopOw0KIGxvZmZfdCBpem9fcmN2ZF91cGRfcmVtb3RlKHN0cnVjdCBwcmVz
dG9fZmlsZV9zZXQgKmZzZXQsIGNoYXIgKiB1dWlkLCAgX191NjQgcmVtb3RlX3JlY25vLA0KQEAg
LTcwOCwxMCArNzA5LDE3IEBADQogc3RhdGljIGlubGluZSBjaGFyICpzdHJkdXAoY2hhciAqc3Ry
KQ0KIHsNCiAgICAgICAgIGNoYXIgKnRtcDsNCi0gICAgICAgIHRtcCA9IGttYWxsb2Moc3RybGVu
KHN0cikgKyAxLCBHRlBfS0VSTkVMKTsNCi0gICAgICAgIGlmICh0bXApDQotICAgICAgICAgICAg
ICAgIG1lbWNweSh0bXAsIHN0ciwgc3RybGVuKHN0cikgKyAxKTsNCi0gICAgICAgICAgICAgICAN
CisJCWxvbmcgaW50IHM7DQorDQorCQlzPXN0cmxlbihzdHIpICsgMTsNCisgICAgICAgIHRtcCA9
IGttYWxsb2MocywgR0ZQX0tFUk5FTCk7DQorICAgICAgICBpZiAodG1wKXsNCisJCQkJICBtZW1j
cHkodG1wLCBzdHIsIHMpOw0KKwkJCQkgIHByZXN0b19rbWVtX2luYyh0bXAsIHMpOw0KKwkJfQ0K
KyAgICAgICAgQ0RFQlVHKERfTUFMTE9DLCAia21hbGxvY2VkOiAlbGQgYXQgJXAgKHRvdCAlbGQp
LlxuIiwNCisgICAgICAgICAgICAgICBzLCB0bXAsIHByZXN0b19rbWVtb3J5KTsNCisJCQkJICAN
CiAgICAgICAgIHJldHVybiB0bXA7DQogfQ0KIA0KZGlmZiAtdXIgaW50ZXJtZXp6by1DVlMvZnMy
NC9yZXBsaWNhdG9yLmMgaW50ZXJtZXp6by1wb3N0L2ZzMjQvcmVwbGljYXRvci5jDQotLS0gaW50
ZXJtZXp6by1DVlMvZnMyNC9yZXBsaWNhdG9yLmMJMjAwMi0wNC0zMCAwNDoxNzo0OS4wMDAwMDAw
MDAgKzAyMDANCisrKyBpbnRlcm1lenpvLXBvc3QvZnMyNC9yZXBsaWNhdG9yLmMJMjAwMy0wOC0w
NiAxMzo1ODoyMC4wMDAwMDAwMDAgKzAyMDANCkBAIC03MCw3ICs3MCw3IEBADQogICAgICAgICBy
ZXR1cm4gJmNhY2hlWyhSQ0FDSEVfTUFTSyAmIHV1aWRbMV0pXTsNCiB9DQogDQotc3RhdGljIHZv
aWQNCit2b2lkDQogaXpvX3JlcF9jYWNoZV9jbGVhbihzdHJ1Y3QgcHJlc3RvX2ZpbGVfc2V0ICpm
c2V0KQ0KIHsNCiAJaW50IGk7DQpAQCAtODAsMTggKzgwLDE2IEBADQogICAgICAgICBpZiAoZnNl
dC0+ZnNldF9jbGllbnRzID09IE5VTEwpDQogCQlyZXR1cm47DQogICAgICAgICBmb3IgKGkgPSAw
OyBpIDwgUkNBQ0hFX1NJWkU7IGkrKykgew0KLQkJdG1wID0gYnVja2V0ID0gJmZzZXQtPmZzZXRf
Y2xpZW50c1tpXTsNCiANCi0JCXRtcCA9IHRtcC0+bmV4dDsNCi0gICAgICAgICAgICAgICAgd2hp
bGUgKHRtcCAhPSBidWNrZXQpIHsNCi0JCQlzdHJ1Y3QgaXpvX29mZnNldF9yZWMgKm9mZnJlYzsN
Ci0JCQl0bXAgPSB0bXAtPm5leHQ7DQotCQkJbGlzdF9kZWwodG1wKTsNCi0JCQlvZmZyZWMgPSBs
aXN0X2VudHJ5KHRtcCwgc3RydWN0IGl6b19vZmZzZXRfcmVjLA0KLQkJCQkJICAgIG9yX2xpc3Qp
Ow0KLQkJCVBSRVNUT19GUkVFKG9mZnJlYywgc2l6ZW9mKHN0cnVjdCBpem9fb2Zmc2V0X3JlYykp
Ow0KKwkJCQlsaXN0X2Zvcl9lYWNoX3NhZmUodG1wLGJ1Y2tldCwmZnNldC0+ZnNldF9jbGllbnRz
W2ldKQ0KKwkJCQl7DQorCQkJCQkJc3RydWN0IGl6b19vZmZzZXRfcmVjICpvZmZyZWM7DQorCQkJ
CQkJbGlzdF9kZWwodG1wKTsNCisJCQkJCQlvZmZyZWMgPSBsaXN0X2VudHJ5KHRtcCwgc3RydWN0
IGl6b19vZmZzZXRfcmVjLG9yX2xpc3QpOw0KKwkJCQkJCVBSRVNUT19GUkVFKG9mZnJlYywgc2l6
ZW9mKHN0cnVjdCBpem9fb2Zmc2V0X3JlYykpOyANCisJCQkJfQ0KIAkJfQ0KLQl9DQorCQlQUkVT
VE9fRlJFRShmc2V0LT5mc2V0X2NsaWVudHMsc2l6ZW9mKHN0cnVjdCBsaXN0X2hlYWQpICogUkNB
Q0hFX1NJWkUpOw0KIH0NCiANCiBzdHJ1Y3QgaXpvX29mZnNldF9yZWMgKg0KZGlmZiAtdXIgaW50
ZXJtZXp6by1DVlMvZnMyNC9zdXBlci5jIGludGVybWV6em8tcG9zdC9mczI0L3N1cGVyLmMNCi0t
LSBpbnRlcm1lenpvLUNWUy9mczI0L3N1cGVyLmMJMjAwMi0xMC0wMyAwNTo1MDo0OS4wMDAwMDAw
MDAgKzAyMDANCisrKyBpbnRlcm1lenpvLXBvc3QvZnMyNC9zdXBlci5jCTIwMDMtMDgtMDYgMTQ6
MzA6MTguMDAwMDAwMDAwICswMjAwDQpAQCAtMTcyLDYgKzE3Miw3IEBADQogICAgICAgICAgICAg
ICAgIG1pbm9yID0gaXpvX3BzZGV2X2dldF9mcmVlX2NoYW5uZWwoKTsNCiAgICAgICAgIH0gZWxz
ZSB7DQogICAgICAgICAgICAgICAgIG1pbm9yID0gc2ltcGxlX3N0cnRvdWwoY2hhbm5lbCwgTlVM
TCwgMCk7IA0KKwkJCQlQUkVTVE9fRlJFRShjaGFubmVsLCBzdHJsZW4oY2hhbm5lbCkgKyAxKTsN
CiAgICAgICAgIH0NCiAgICAgICAgIGlmIChtaW5vciA8IDAgfHwgbWlub3IgPj0gTUFYX0NIQU5O
RUwpIHsgDQogICAgICAgICAgICAgICAgIENFUlJPUigiYWxsIGNoYW5uZWxzIGluIHVzZSBvciBj
aGFubmVsIHRvbyBsYXJnZSAlZFxuIiwgDQpAQCAtMjg3LDYgKzI4OCw5IEBADQogICAgICAgICBw
cmVzdG9fY2FjaGVfYWRkKGNhY2hlLCBzYi0+c19kZXYpOw0KICAgICAgICAgZXJyID0gaXpvX3By
ZXBhcmVfZmlsZXNldChzYi0+c19yb290LCBmaWxlc2V0KTsgDQogDQorICAgICAgICBpZiAoZmls
ZXNldCkNCisgICAgICAgICAgICAgICAgUFJFU1RPX0ZSRUUoZmlsZXNldCwgc3RybGVuKGZpbGVz
ZXQpICsgMSk7DQorDQogICAgICAgICBmaWx0ZXJfc2V0dXBfam91cm5hbF9vcHMoY2FjaGUtPmNh
Y2hlX2ZpbHRlciwgY2FjaGUtPmNhY2hlX3R5cGUpOyANCiANCiAgICAgICAgIC8qIG1ha2Ugc3Vy
ZSB3ZSBoYXZlIG91ciBvd24gc3VwZXIgb3BlcmF0aW9uczogc2INCg==

--=-rQvlWMitMXVPJZ2TpbkG--

--=-XpbcYsXWOqodjThaJ5XA
Content-Type: application/pgp-signature; name=signature.asc
Content-Description: Ceci est une partie de message
	=?ISO-8859-1?Q?num=E9riquement?= =?ISO-8859-1?Q?_sign=E9e?=

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.2 (GNU/Linux)

iD8DBQA/MQJdjnVogoLaCSwRAkE3AKCNfFRKeZhA1SIhSnKVijINIlqvEgCdGPPC
LvdIM71jKZM6S5q8mrMaYJg=
=Gm3d
-----END PGP SIGNATURE-----

--=-XpbcYsXWOqodjThaJ5XA--



-------------------------------------------------------
This SF.Net email sponsored by: Free pre-built ASP.NET sites including
Data Reports, E-commerce, Portals, and Forums are available now.
Download today and enter to win an XBOX or Visual Studio .NET.
http://aspnet.click-url.com/go/psa00100003ave/direct;at.aspnet_072303_01/01