[fixpatch] pagecache-2.3.8-B4

Ingo Molnar (mingo@chiara.csoma.elte.hu)
Wed, 23 Jun 1999 17:23:39 +0200 (CEST)


This message is in MIME format. The first part should be readable text,
while the remaining parts are likely unreadable without MIME-aware tools.
Send mail to mime@docserver.cac.washington.edu for more info.

---1247997369-767737054-930151419=:1011
Content-Type: TEXT/PLAIN; charset=US-ASCII

the attached patch fixes the reported 2.3.8 'access beyond end of device
...' and metadata corruption problems, and the 'BUG in buffer.c ...'
crash.

there were two distinct problems. The first one is my fault, ll_rw_block()
was still not SMP-safe: mark_buffer_clean() in particular. The rest of
ll_rw_blk.c seems to be safe and apart from raid1.c and raid5.c [i'll fix
those] all other kernel files seem to be safe. This bug caused the bad
metadata corruptions reported - one such common corruption was a botched
indirect block, the subsequent bread() got a bad block address. The fix
itself is not pretty, i hope it can be removed once buffer.c is threaded.

the other problem was swapping related - brw_page() WRITEs with the
async_io handler, after but the bh also got into the dirty queue, which
later on eventually got revisited by bdflush, causing an incorrect
PageUnlock() - which set off the alarm. I'm not completely sure how this
could have happened - how can buffers beloning to anonymously swapped
pages become ever dirty? My fix is neither complete nor correct, i'll try
to fix it in a better way later today - but this quick fix seems to have
done the trick, no more crashes when handling big files.

Ingo

---1247997369-767737054-930151419=:1011
Content-Type: TEXT/PLAIN; charset=US-ASCII; name="pagecache-2.3.8-B4"
Content-Transfer-Encoding: BASE64
Content-ID: <Pine.LNX.3.96.990623172339.1011G@chiara.csoma.elte.hu>
Content-Description:

LS0tIGxpbnV4L2ZzL2J1ZmZlci5jLm9yaWcJVHVlIEp1biAyMiAyMzo0NToz
NiAxOTk5DQorKysgbGludXgvZnMvYnVmZmVyLmMJV2VkIEp1biAyMyAxNTo1
NjowOCAxOTk5DQpAQCAtNjc0LDYgKzY3NCw4IEBADQogdm9pZCBpbml0X2J1
ZmZlcihzdHJ1Y3QgYnVmZmVyX2hlYWQgKmJoLCBrZGV2X3QgZGV2LCBpbnQg
YmxvY2ssDQogCQkgYmhfZW5kX2lvX3QgKmhhbmRsZXIsIHZvaWQgKmRldl9p
ZCkNCiB7DQorCWlmIChiaC0+Yl9jb3VudCkNCisJCUJIX0JVRyhiaCk7DQog
CWJoLT5iX2xpc3QgPSBCVUZfQ0xFQU47DQogCWJoLT5iX2ZsdXNodGltZSA9
IDA7DQogCWJoLT5iX2RldiA9IGRldjsNCkBAIC0xMjE3LDYgKzEyMTksNyBA
QA0KIAlpZiAocGFnZS0+b3duZXIgIT0gLTEpDQogCQlQQUdFX0JVRyhwYWdl
KTsNCiAJcGFnZS0+b3duZXIgPSAoaW50KWN1cnJlbnQ7DQorCWJoLT5iX2Vu
ZF9pbyA9IGVuZF9idWZmZXJfaW9fc3luYzsNCiAJVW5sb2NrUGFnZShwYWdl
KTsNCiANCiAJcmV0dXJuOw0KLS0tIGxpbnV4L2luY2x1ZGUvbGludXgvZnMu
aC5vcmlnCVR1ZSBKdW4gMjIgMjM6MzI6NDQgMTk5OQ0KKysrIGxpbnV4L2lu
Y2x1ZGUvbGludXgvZnMuaAlXZWQgSnVuIDIzIDE1OjU2OjA5IDE5OTkNCkBA
IC03NTAsMTAgKzc1MCwxNyBAQA0KIA0KIHZvaWQgbWFya19idWZmZXJfdXB0
b2RhdGUoc3RydWN0IGJ1ZmZlcl9oZWFkICosIGludCk7DQogDQorI2RlZmlu
ZSBhdG9taWNfc2V0X2J1ZmZlcl9jbGVhbihiaCkgdGVzdF9hbmRfY2xlYXJf
Yml0KEJIX0RpcnR5LCAmKGJoKS0+Yl9zdGF0ZSkNCisNCitleHRlcm4gaW5s
aW5lIHZvaWQgX19tYXJrX2J1ZmZlcl9jbGVhbihzdHJ1Y3QgYnVmZmVyX2hl
YWQgKmJoKQ0KK3sNCisJcmVmaWxlX2J1ZmZlcihiaCk7DQorfQ0KKw0KIGV4
dGVybiBpbmxpbmUgdm9pZCBtYXJrX2J1ZmZlcl9jbGVhbihzdHJ1Y3QgYnVm
ZmVyX2hlYWQgKiBiaCkNCiB7DQotCWlmICh0ZXN0X2FuZF9jbGVhcl9iaXQo
QkhfRGlydHksICZiaC0+Yl9zdGF0ZSkpDQotCQlyZWZpbGVfYnVmZmVyKGJo
KTsNCisJaWYgKCFhdG9taWNfc2V0X2J1ZmZlcl9jbGVhbihiaCkpDQorCQlf
X21hcmtfYnVmZmVyX2NsZWFuKGJoKTsNCiB9DQogDQogZXh0ZXJuIHZvaWQg
RkFTVENBTEwoX19tYXJrX2J1ZmZlcl9kaXJ0eShzdHJ1Y3QgYnVmZmVyX2hl
YWQgKmJoLCBpbnQgZmxhZykpOw0KLS0tIGxpbnV4L2RyaXZlcnMvYmxvY2sv
bGxfcndfYmxrLmMub3JpZwlUdWUgSnVuIDIyIDIzOjMyOjIxIDE5OTkNCisr
KyBsaW51eC9kcml2ZXJzL2Jsb2NrL2xsX3J3X2Jsay5jCVdlZCBKdW4gMjMg
MTU6NTY6MDkgMTk5OQ0KQEAgLTE3LDYgKzE3LDcgQEANCiAjaW5jbHVkZSA8
bGludXgvbG9ja3MuaD4NCiAjaW5jbHVkZSA8bGludXgvbW0uaD4NCiAjaW5j
bHVkZSA8bGludXgvaW5pdC5oPg0KKyNpbmNsdWRlIDxsaW51eC9zbXBfbG9j
ay5oPg0KIA0KICNpbmNsdWRlIDxhc20vc3lzdGVtLmg+DQogI2luY2x1ZGUg
PGFzbS9pby5oPg0KQEAgLTMxNywxMyArMzE4LDE4IEBADQogCXJlcS0+bmV4
dCA9IE5VTEw7DQogDQogCS8qDQorCSAqIHdlIGNhbm5vdCByZWZpbGUgdGhl
IGJ1ZmZlciB3aXRoaW4gdGhlIGlvX3JlcXVlc3RfbG9jayB3aXRob3V0DQor
CSAqIGRlYWRsb2NraW5nLiBNYXJraW5nIGEgYnVmZmVyIGNsZWFuIF9lYXJs
aWVyXyBpcyBhbHdheXMgZmluZS4NCisJICovDQorCWxvY2tfa2VybmVsKCk7
DQorCW1hcmtfYnVmZmVyX2NsZWFuKHJlcS0+YmgpOw0KKwl1bmxvY2tfa2Vy
bmVsKCk7DQorCS8qDQogCSAqIFdlIHVzZSB0aGUgZ290byB0byByZWR1Y2Ug
bG9ja2luZyBjb21wbGV4aXR5DQogCSAqLw0KIAlzcGluX2xvY2tfaXJxc2F2
ZSgmaW9fcmVxdWVzdF9sb2NrLGZsYWdzKTsNCiAJY3VycmVudF9yZXF1ZXN0
ID0gZ2V0X3F1ZXVlKHJlcS0+cnFfZGV2KTsNCiANCi0JaWYgKHJlcS0+Ymgp
DQotCQltYXJrX2J1ZmZlcl9jbGVhbihyZXEtPmJoKTsNCiAJaWYgKCEodG1w
ID0gKmN1cnJlbnRfcmVxdWVzdCkpIHsNCiAJCSpjdXJyZW50X3JlcXVlc3Qg
PSByZXE7DQogCQlpZiAoZGV2LT5jdXJyZW50X3JlcXVlc3QgIT0gJmRldi0+
cGx1ZykNCkBAIC01MjcsMTAgKzUzMywyMSBAQA0KIAkJCSAgICAJcmVxLT5u
cl9zZWN0b3JzICs9IGNvdW50Ow0KIAkJCX0gZWxzZQ0KIAkJCQljb250aW51
ZTsNCi0NCi0JCQltYXJrX2J1ZmZlcl9jbGVhbihiaCk7DQotCQkJc3Bpbl91
bmxvY2tfaXJxcmVzdG9yZSgmaW9fcmVxdWVzdF9sb2NrLGZsYWdzKTsNCi0J
CSAgICAJcmV0dXJuOw0KKwkJCXsNCisJCQkJaW50IHdhc19kaXJ0eTsNCisJ
CQkJc3RydWN0IGJ1ZmZlcl9oZWFkICpiaDsNCisNCisJCQkJYmggPSByZXEt
PmJoOw0KKwkJCQl3YXNfZGlydHkgPSBhdG9taWNfc2V0X2J1ZmZlcl9jbGVh
bihiaCk7DQorCQkJCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmlvX3JlcXVl
c3RfbG9jayxmbGFncyk7DQorDQorCQkJCWlmICh3YXNfZGlydHkpIHsNCisJ
CQkJCWxvY2tfa2VybmVsKCk7DQorCQkJCQlfX21hcmtfYnVmZmVyX2NsZWFu
KGJoKTsNCisJCQkJCXVubG9ja19rZXJuZWwoKTsNCisJCQkJfQ0KKwkJICAg
IAkJcmV0dXJuOw0KKwkJCX0NCiANCiAJCX0gd2hpbGUgKChyZXEgPSByZXEt
Pm5leHQpICE9IE5VTEwpOw0KIAl9DQo=
---1247997369-767737054-930151419=:1011--

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/