--=_courier-4099-1057615444-0001-2
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: quoted-printable
We hit this bug when we have the following scenario:
One process initializes an AIO context and then forks out many child
processes. When those child processes exit, many BUG checks
(effectively kernel oops) were triggered from put_ioctx(ctx) in function
exit_aio().
The issue was that the AIO context was incorrectly copied upon forking
and mislead all child processes to think they have an IO context and
trying to free it where they really don't own. The following patch fix
the issue.
- Ken
--=_courier-4099-1057615444-0001-2
Content-Type: application/octet-stream; name="aio.init.patch"
Content-Transfer-Encoding: base64
Content-Description: aio.init.patch
Content-Disposition: attachment;
filename="aio.init.patch"
LS0tIGxpbnV4LTIuNS43NC9rZXJuZWwvZm9yay5jCU1vbiBKdWwgIDcgMTQ6MzU6MDcgMjAwMw0K
KysrIGxpbnV4LTIuNS43NC5haW8va2VybmVsL2ZvcmsuYwlNb24gSnVsICA3IDE0OjM1OjA3IDIw
MDMNCkBAIC0zNzUsNiArMzc1LDcgQEANCiAJbW0tPmNvcmVfd2FpdGVycyA9IDA7DQogCW1tLT5w
YWdlX3RhYmxlX2xvY2sgPSBTUElOX0xPQ0tfVU5MT0NLRUQ7DQogCW1tLT5pb2N0eF9saXN0X2xv
Y2sgPSBSV19MT0NLX1VOTE9DS0VEOw0KKwltbS0+aW9jdHhfbGlzdCA9IE5VTEw7DQogCW1tLT5k
ZWZhdWx0X2tpb2N0eCA9IChzdHJ1Y3Qga2lvY3R4KUlOSVRfS0lPQ1RYKG1tLT5kZWZhdWx0X2tp
b2N0eCwgKm1tKTsNCiAJbW0tPmZyZWVfYXJlYV9jYWNoZSA9IFRBU0tfVU5NQVBQRURfQkFTRTsN
CiANCg==
--=_courier-4099-1057615444-0001-2--