allocation failures when cache eats all memory -- the updatedb issue

Craig Christophel (merlin@transgeek.com)
Mon, 10 Dec 2001 23:24:25 -0500


--------------Boundary-00=_P8W50EK1P8HPVLS451YJ
Content-Type: text/plain;
charset="iso-8859-1"
Content-Transfer-Encoding: 8bit

The attached patch fixes all of these problems for me. More than likley this
is just covering the real issue, but the difference should allow someone with
more VM talent than myself to fix.

Craig.

--------------Boundary-00=_P8W50EK1P8HPVLS451YJ
Content-Type: text/x-diff;
charset="iso-8859-1";
name="vmscan-alloc-fix.diff"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="vmscan-alloc-fix.diff"

LS0tIGxpbnV4L21tL3Ztc2Nhbi5jCVNhdCBOb3YgMTcgMjI6MTg6MTcgMjAwMQorKysgbGludXgu
bXQvbW0vdm1zY2FuLmMJTW9uIERlYyAxMCAxOTo1NToyMyAyMDAxCkBAIC01MzEsMTMgKzUzMSwx
NCBAQAogICogV2UgbW92ZSB0aGVtIHRoZSBvdGhlciB3YXkgd2hlbiB3ZSBzZWUgdGhlCiAgKiBy
ZWZlcmVuY2UgYml0IG9uIHRoZSBwYWdlLgogICovCi1zdGF0aWMgdm9pZCByZWZpbGxfaW5hY3Rp
dmUoaW50IG5yX3BhZ2VzKQorc3RhdGljIGludCByZWZpbGxfaW5hY3RpdmUoaW50IG5yX3BhZ2Vz
KQogewogCXN0cnVjdCBsaXN0X2hlYWQgKiBlbnRyeTsKKwlpbnQgY291bnQgPSAwOwogCiAJc3Bp
bl9sb2NrKCZwYWdlbWFwX2xydV9sb2NrKTsKIAllbnRyeSA9IGFjdGl2ZV9saXN0LnByZXY7Ci0J
d2hpbGUgKG5yX3BhZ2VzLS0gJiYgZW50cnkgIT0gJmFjdGl2ZV9saXN0KSB7CisJd2hpbGUgKG5y
X3BhZ2VzICYmIGVudHJ5ICE9ICZhY3RpdmVfbGlzdCkgewogCQlzdHJ1Y3QgcGFnZSAqIHBhZ2U7
CiAKIAkJcGFnZSA9IGxpc3RfZW50cnkoZW50cnksIHN0cnVjdCBwYWdlLCBscnUpOwpAQCAtNTQ1
LDE0ICs1NDYsMTYgQEAKIAkJaWYgKFBhZ2VUZXN0YW5kQ2xlYXJSZWZlcmVuY2VkKHBhZ2UpKSB7
CiAJCQlsaXN0X2RlbCgmcGFnZS0+bHJ1KTsKIAkJCWxpc3RfYWRkKCZwYWdlLT5scnUsICZhY3Rp
dmVfbGlzdCk7Ci0JCQljb250aW51ZTsKKwkJfSBlbHNlIHsKKwkJCWRlbF9wYWdlX2Zyb21fYWN0
aXZlX2xpc3QocGFnZSk7CisJCQlhZGRfcGFnZV90b19pbmFjdGl2ZV9saXN0KHBhZ2UpOworCQkJ
U2V0UGFnZVJlZmVyZW5jZWQocGFnZSk7CisJCQlucl9wYWdlcy0tOworCQkJY291bnQrKzsKIAkJ
fQotCi0JCWRlbF9wYWdlX2Zyb21fYWN0aXZlX2xpc3QocGFnZSk7Ci0JCWFkZF9wYWdlX3RvX2lu
YWN0aXZlX2xpc3QocGFnZSk7Ci0JCVNldFBhZ2VSZWZlcmVuY2VkKHBhZ2UpOwogCX0KIAlzcGlu
X3VubG9jaygmcGFnZW1hcF9scnVfbG9jayk7CisJcmV0dXJuIGNvdW50OwogfQogCiBzdGF0aWMg
aW50IEZBU1RDQUxMKHNocmlua19jYWNoZXMoem9uZV90ICogY2xhc3N6b25lLCBpbnQgcHJpb3Jp
dHksIHVuc2lnbmVkIGludCBnZnBfbWFzaywgaW50IG5yX3BhZ2VzKSk7CkBAIC01NjQsMjIgKzU2
NywyNCBAQAogCW5yX3BhZ2VzIC09IGttZW1fY2FjaGVfcmVhcChnZnBfbWFzayk7CiAJaWYgKG5y
X3BhZ2VzIDw9IDApCiAJCXJldHVybiAwOworCXNocmlua19kY2FjaGVfbWVtb3J5KHByaW9yaXR5
LCBnZnBfbWFzayk7CisJc2hyaW5rX2ljYWNoZV9tZW1vcnkocHJpb3JpdHksIGdmcF9tYXNrKTsK
KyNpZmRlZiBDT05GSUdfUVVPVEEKKwlzaHJpbmtfZHFjYWNoZV9tZW1vcnkoREVGX1BSSU9SSVRZ
LCBnZnBfbWFzayk7CisjZW5kaWYKIAogCW5yX3BhZ2VzID0gY2h1bmtfc2l6ZTsKIAkvKiB0cnkg
dG8ga2VlcCB0aGUgYWN0aXZlIGxpc3QgMi8zIG9mIHRoZSBzaXplIG9mIHRoZSBjYWNoZSAqLwog
CXJhdGlvID0gKHVuc2lnbmVkIGxvbmcpIG5yX3BhZ2VzICogbnJfYWN0aXZlX3BhZ2VzIC8gKChu
cl9pbmFjdGl2ZV9wYWdlcyArIDEpICogMik7CisJaWYoIXJhdGlvKQorCQlyYXRpbyA9IG5yX3Bh
Z2VzOworCiAJcmVmaWxsX2luYWN0aXZlKHJhdGlvKTsKIAogCW5yX3BhZ2VzID0gc2hyaW5rX2Nh
Y2hlKG5yX3BhZ2VzLCBjbGFzc3pvbmUsIGdmcF9tYXNrLCBwcmlvcml0eSk7CisKIAlpZiAobnJf
cGFnZXMgPD0gMCkKIAkJcmV0dXJuIDA7Ci0KLQlzaHJpbmtfZGNhY2hlX21lbW9yeShwcmlvcml0
eSwgZ2ZwX21hc2spOwotCXNocmlua19pY2FjaGVfbWVtb3J5KHByaW9yaXR5LCBnZnBfbWFzayk7
Ci0jaWZkZWYgQ09ORklHX1FVT1RBCi0Jc2hyaW5rX2RxY2FjaGVfbWVtb3J5KERFRl9QUklPUklU
WSwgZ2ZwX21hc2spOwotI2VuZGlmCi0KIAlyZXR1cm4gbnJfcGFnZXM7CiB9CiAK

--------------Boundary-00=_P8W50EK1P8HPVLS451YJ--
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/