From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S261469AbVG1Psw (ORCPT ); Thu, 28 Jul 2005 11:48:52 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S261566AbVG1Pse (ORCPT ); Thu, 28 Jul 2005 11:48:34 -0400 Received: from ecfrec.frec.bull.fr ([129.183.4.8]:51948 "EHLO ecfrec.frec.bull.fr") by vger.kernel.org with ESMTP id S261580AbVG1Pru (ORCPT ); Thu, 28 Jul 2005 11:47:50 -0400 Subject: [PATCH 5/5] Add support for AIO cancelation against a file descriptor From: =?ISO-8859-1?Q?S=E9bastien_Dugu=E9?= To: "linux-aio kvack.org" , "linux-kernel@vger.kernel.org" Date: Thu, 28 Jul 2005 17:46:40 +0200 Message-Id: <1122565600.2019.85.camel@frecb000686> Mime-Version: 1.0 X-Mailer: Evolution 2.0.3 X-MIMETrack: Itemize by SMTP Server on ECN002/FR/BULL(Release 5.0.12 |February 13, 2003) at 28/07/2005 17:59:55, Serialize by Router on ECN002/FR/BULL(Release 5.0.12 |February 13, 2003) at 28/07/2005 17:59:56 Content-Type: multipart/mixed; boundary="=-qCZqObi3dJI/Iijzfj34" Sender: linux-kernel-owner@vger.kernel.org X-Mailing-List: linux-kernel@vger.kernel.org --=-qCZqObi3dJI/Iijzfj34 Content-Transfer-Encoding: 7bit Content-Type: text/plain --=-qCZqObi3dJI/Iijzfj34 Content-Disposition: attachment; filename=cancelfd Content-Type: application/octet-stream; name=cancelfd Content-Transfer-Encoding: base64 Y2FuY2VsZmQ6CgpUaGlzIHBhdGNoIGFkZHMgc3VwcG9ydCBmb3IgUE9TSVggQUlPIGNhbmNlbGF0 aW9uIGFnYWluc3QgYSBmaWxlIGRlc2NyaXB0b3IuCgoKIE1ha2VmaWxlICAgICAgICAgICAgICAg IHwgICAgMgogZnMvYWlvLmMgICAgICAgICAgICAgICAgfCAgMTQxICsrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLQogaW5jbHVkZS9saW51eC9haW9fYWJpLmgg fCAgICA2ICsrCiAzIGZpbGVzIGNoYW5nZWQsIDExOCBpbnNlcnRpb25zKCspLCAzMSBkZWxldGlv bnMoLSkKClNpZ25lZC1vZmYtYnk6IFPpYmFzdGllbiBEdWd16SA8c2ViYXN0aWVuLmR1Z3VlQGJ1 bGwubmV0PgoKSW5kZXg6IGxpbnV4LTIuNi4xMi9mcy9haW8uYwo9PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBsaW51 eC0yLjYuMTIub3JpZy9mcy9haW8uYwkyMDA1LTA3LTIxIDExOjQzOjI2LjAwMDAwMDAwMCArMDIw MAorKysgbGludXgtMi42LjEyL2ZzL2Fpby5jCTIwMDUtMDctMjEgMTE6NDM6MjcuMDAwMDAwMDAw ICswMjAwCkBAIC0yNjMsNiArMjYzLDI4IEBACiAJcmV0dXJuIGN0eDsKIH0KIAorc3RhdGljIGlu dCBfX2Fpb19jYW5jZWwoc3RydWN0IGtpb2NiICpraW9jYiwgc3RydWN0IGlvX2V2ZW50ICpyZXN1 bHQpCit7CisJaW50ICgqY2FuY2VsKShzdHJ1Y3Qga2lvY2IgKmlvY2IsIHN0cnVjdCBpb19ldmVu dCAqcmVzKTsKKworCWlmIChraW9jYiA9PSBOVUxMKQorCQlyZXR1cm4gLUVGQVVMVDsKKworCWNh bmNlbCA9IGtpb2NiLT5raV9jYW5jZWw7CisJaWYgKE5VTEwgPT0gY2FuY2VsKSB7CisJCXByaW50 ayhLRVJOX0RFQlVHICJpb2NiIGhhcyBubyBjYW5jZWwgb3BlcmF0aW9uXG4iKTsKKwkJcmV0dXJu IC1FRkFVTFQ7CisJfQorCisJa2lvY2ItPmtpX3VzZXJzICsrOworCisJbWVtc2V0KHJlc3VsdCwg MCwgc2l6ZW9mKCpyZXN1bHQpKTsKKwlyZXN1bHQtPm9iaiA9ICh1NjQpKHVuc2lnbmVkIGxvbmcp a2lvY2ItPmtpX29iai51c2VyOworCXJlc3VsdC0+ZGF0YSA9IGtpb2NiLT5raV91c2VyX2RhdGE7 CisKKwlyZXR1cm4gY2FuY2VsKGtpb2NiLCByZXN1bHQpOworfQorCiAvKiBhaW9fY2FuY2VsX2Fs bAogICoJQ2FuY2VscyBhbGwgb3V0c3RhbmRpbmcgYWlvIHJlcXVlc3RzIG9uIGFuIGFpbyBjb250 ZXh0LiAgVXNlZCAKICAqCXdoZW4gdGhlIHByb2Nlc3NlcyBvd25pbmcgYSBjb250ZXh0IGhhdmUg YWxsIGV4aXRlZCB0byBlbmNvdXJhZ2UgCkBAIC0yNzAsNyArMjkyLDYgQEAKICAqLwogc3RhdGlj IHZvaWQgYWlvX2NhbmNlbF9hbGwoc3RydWN0IGtpb2N0eCAqY3R4KQogewotCWludCAoKmNhbmNl bCkoc3RydWN0IGtpb2NiICosIHN0cnVjdCBpb19ldmVudCAqKTsKIAlzdHJ1Y3QgaW9fZXZlbnQg cmVzOwogCXNwaW5fbG9ja19pcnEoJmN0eC0+Y3R4X2xvY2spOwogCWN0eC0+ZGVhZCA9IDE7CkBA IC0yNzgsMTQgKzI5OSwxMCBAQAogCQlzdHJ1Y3QgbGlzdF9oZWFkICpwb3MgPSBjdHgtPmFjdGl2 ZV9yZXFzLm5leHQ7CiAJCXN0cnVjdCBraW9jYiAqaW9jYiA9IGxpc3Rfa2lvY2IocG9zKTsKIAkJ bGlzdF9kZWxfaW5pdCgmaW9jYi0+a2lfbGlzdCk7Ci0JCWNhbmNlbCA9IGlvY2ItPmtpX2NhbmNl bDsKIAkJa2lvY2JTZXRDYW5jZWxsZWQoaW9jYik7Ci0JCWlmIChjYW5jZWwpIHsKLQkJCWlvY2It PmtpX3VzZXJzKys7Ci0JCQlzcGluX3VubG9ja19pcnEoJmN0eC0+Y3R4X2xvY2spOwotCQkJY2Fu Y2VsKGlvY2IsICZyZXMpOwotCQkJc3Bpbl9sb2NrX2lycSgmY3R4LT5jdHhfbG9jayk7Ci0JCX0K KwkJc3Bpbl91bmxvY2tfaXJxKCZjdHgtPmN0eF9sb2NrKTsKKwkJX19haW9fY2FuY2VsKGlvY2Is ICZyZXMpOworCQlzcGluX2xvY2tfaXJxKCZjdHgtPmN0eF9sb2NrKTsKIAl9CiAJc3Bpbl91bmxv Y2tfaXJxKCZjdHgtPmN0eF9sb2NrKTsKIH0KQEAgLTIwMjgsNiArMjA0NSw2NyBAQAogCXJldHVy biBOVUxMOwogfQogCitzdGF0aWMgaW50IGFpb19jYW5jZWxfZmQoYWlvX2NvbnRleHRfdCBjdHhf aWQsIGludCBmaWxkZXMpCit7CisJc3RydWN0IGtpb2N0eCAqY3R4OworCXN0cnVjdCBraW9jYiAq a2lvY2I7CisJaW50IHJldDsKKwlzdHJ1Y3QgZmlsZSAqZmlsZTsKKwlzdHJ1Y3QgbGlzdF9oZWFk ICpwb3M7CisJaW50IGFsbF9kb25lOworCWludCBub3RfY2FuY2VsZWQ7CisJc3RydWN0IGlvX2V2 ZW50IHJlc3VsdF9ldmVudDsKKworCS8qIGNhbmNlbCBhbGwgSS9PIGJlbG9uZ2luZyB0byBmaWxl ZGVzICovCisKKwlmaWxlID0gZmdldChmaWxkZXMpOworCWlmICh1bmxpa2VseSghZmlsZSkpCisJ CXJldHVybiAtRUJBREY7CisKKwkvKiB3ZSBtdXN0IGV4aXQgb24gRUJBREYgYmVmb3JlIEVJTlZB TCAqLworCisJY3R4ID0gbG9va3VwX2lvY3R4KGN0eF9pZCk7CisJaWYgKHVubGlrZWx5KCFjdHgp KSB7CisJCXJldHVybiAtRUlOVkFMOworCX0KKworCS8qIGdldCBhbGwgb3BlcmF0aW9uIGZvciB0 aGlzIGZpbGUgZGVzY3JpcHRvciAqLworCisJYWxsX2RvbmUgPSAxOworCW5vdF9jYW5jZWxlZCA9 IDA7CisJc3Bpbl9sb2NrX2lycSgmY3R4LT5jdHhfbG9jayk7CisKKwlsaXN0X2Zvcl9lYWNoKHBv cywgJmN0eC0+YWN0aXZlX3JlcXMpIHsKKworCQlraW9jYiA9IGxpc3Rfa2lvY2IocG9zKTsKKwor CQlpZiAoa2lvY2ItPmtpX2ZpbHAgPT0gZmlsZSkgeworCisJCQlhbGxfZG9uZSA9IDA7CisKKwkJ CXNwaW5fdW5sb2NrX2lycSgmY3R4LT5jdHhfbG9jayk7CisJCQlyZXQgPSBfX2Fpb19jYW5jZWwo a2lvY2IsICZyZXN1bHRfZXZlbnQpOworCQkJc3Bpbl9sb2NrX2lycSgmY3R4LT5jdHhfbG9jayk7 CisJCQlpZiAocmV0KQorCQkJCW5vdF9jYW5jZWxlZCsrOworCQkJZWxzZQorCQkJCV9fYWlvX3dy aXRlX2V2dChraW9jYi0+a2lfY3R4LCAmcmVzdWx0X2V2ZW50KTsKKwkJfQorCX0KKworCXNwaW5f dW5sb2NrX2lycSgmY3R4LT5jdHhfbG9jayk7CisKKwlwdXRfaW9jdHgoY3R4KTsKKworCWlmIChh bGxfZG9uZSkKKwkJcmV0dXJuIEFJT19BTExET05FOworCisJaWYgKG5vdF9jYW5jZWxlZCkKKwkJ cmV0dXJuIEFJT19OT1RDQU5DRUxFRDsKKworCXJldHVybiBBSU9fQ0FOQ0VMRUQ7Cit9CisKIC8q IHN5c19pb19jYW5jZWw6CiAgKglBdHRlbXB0cyB0byBjYW5jZWwgYW4gaW9jYiBwcmV2aW91c2x5 IHBhc3NlZCB0byBpb19zdWJtaXQuICBJZgogICoJdGhlIG9wZXJhdGlvbiBpcyBzdWNjZXNzZnVs bHkgY2FuY2VsbGVkLCB0aGUgcmVzdWx0aW5nIGV2ZW50IGlzCkBAIC0yMDQxLDkgKzIxMTksOSBA QAogYXNtbGlua2FnZSBsb25nIHN5c19pb19jYW5jZWwoYWlvX2NvbnRleHRfdCBjdHhfaWQsIHN0 cnVjdCBpb2NiIF9fdXNlciAqaW9jYiwKIAkJCSAgICAgIHN0cnVjdCBpb19ldmVudCBfX3VzZXIg KnJlc3VsdCkKIHsKLQlpbnQgKCpjYW5jZWwpKHN0cnVjdCBraW9jYiAqaW9jYiwgc3RydWN0IGlv X2V2ZW50ICpyZXMpOwogCXN0cnVjdCBraW9jdHggKmN0eDsKIAlzdHJ1Y3Qga2lvY2IgKmtpb2Ni OworCXN0cnVjdCBpb19ldmVudCB0bXA7CiAJdTMyIGtleTsKIAlpbnQgcmV0OwogCkBAIC0yMDUx LDM3ICsyMTI5LDQwIEBACiAJaWYgKHVubGlrZWx5KHJldCkpCiAJCXJldHVybiAtRUZBVUxUOwog CisJaWYgKCAoa2V5ID09IDApICYmICAocmVzdWx0ID09IE5VTEwpICkgeworCQkvKiBjYW5jZWwg YWxsIElPQ0JzIGJlbG9uZ2luZyB0byBpb2NiLT5haW9fZmlsZGVzICovCisKKwkJcmV0ID0gYWlv X2NhbmNlbF9mZChjdHhfaWQsIGlvY2ItPmFpb19maWxkZXMpOworCisJCXJldHVybiByZXQ7CisJ fQorCiAJY3R4ID0gbG9va3VwX2lvY3R4KGN0eF9pZCk7CiAJaWYgKHVubGlrZWx5KCFjdHgpKQog CQlyZXR1cm4gLUVJTlZBTDsKIAogCXNwaW5fbG9ja19pcnEoJmN0eC0+Y3R4X2xvY2spOwotCXJl dCA9IC1FQUdBSU47CiAJa2lvY2IgPSBsb29rdXBfa2lvY2IoY3R4LCBpb2NiLCBrZXkpOwotCWlm IChraW9jYiAmJiBraW9jYi0+a2lfY2FuY2VsKSB7Ci0JCWNhbmNlbCA9IGtpb2NiLT5raV9jYW5j ZWw7Ci0JCWtpb2NiLT5raV91c2VycyArKzsKLQkJa2lvY2JTZXRDYW5jZWxsZWQoa2lvY2IpOwot CX0gZWxzZQotCQljYW5jZWwgPSBOVUxMOwogCXNwaW5fdW5sb2NrX2lycSgmY3R4LT5jdHhfbG9j ayk7CiAKLQlpZiAoTlVMTCAhPSBjYW5jZWwpIHsKLQkJc3RydWN0IGlvX2V2ZW50IHRtcDsKLQkJ cHJfZGVidWcoImNhbGxpbmcgY2FuY2VsXG4iKTsKLQkJbWVtc2V0KCZ0bXAsIDAsIHNpemVvZih0 bXApKTsKLQkJdG1wLm9iaiA9ICh1NjQpKHVuc2lnbmVkIGxvbmcpa2lvY2ItPmtpX29iai51c2Vy OwotCQl0bXAuZGF0YSA9IGtpb2NiLT5raV91c2VyX2RhdGE7Ci0JCXJldCA9IGNhbmNlbChraW9j YiwgJnRtcCk7Ci0JCWlmICghcmV0KSB7Ci0JCQkvKiBDYW5jZWxsYXRpb24gc3VjY2VlZGVkIC0t IGNvcHkgdGhlIHJlc3VsdAotCQkJICogaW50byB0aGUgdXNlcidzIGJ1ZmZlci4KLQkJCSAqLwor CWlmIChraW9jYiA9PSBOVUxMKSB7CisJCXB1dF9pb2N0eChjdHgpOworCQlyZXR1cm4gLUVJTlZB TDsKKwl9CisgCisJcmV0ID0gX19haW9fY2FuY2VsKGtpb2NiLCAmdG1wKTsKKwlpZiAoIXJldCkg eworCQkvKiBDYW5jZWxsYXRpb24gc3VjY2VlZGVkIC0tIGNvcHkgdGhlIHJlc3VsdAorCQkgKiBp bnRvIHRoZSB1c2VyJ3MgYnVmZmVyLgorCQkgKi8KKwkJaWYgKHJlc3VsdCA9PSBOVUxMKSB7CisJ CQlzcGluX2xvY2tfaXJxKCZjdHgtPmN0eF9sb2NrKTsKKwkJCV9fYWlvX3dyaXRlX2V2dChraW9j Yi0+a2lfY3R4LCAmdG1wKTsKKwkJCXNwaW5fdW5sb2NrX2lycSgmY3R4LT5jdHhfbG9jayk7CisJ CX0gZWxzZQogCQkJaWYgKGNvcHlfdG9fdXNlcihyZXN1bHQsICZ0bXAsIHNpemVvZih0bXApKSkK IAkJCQlyZXQgPSAtRUZBVUxUOwotCQl9Ci0JfSBlbHNlCi0JCXByaW50ayhLRVJOX0RFQlVHICJp b2NiIGhhcyBubyBjYW5jZWwgb3BlcmF0aW9uXG4iKTsKKwl9CiAKIAlwdXRfaW9jdHgoY3R4KTsK IApJbmRleDogbGludXgtMi42LjEyL2luY2x1ZGUvbGludXgvYWlvX2FiaS5oCj09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K LS0tIGxpbnV4LTIuNi4xMi5vcmlnL2luY2x1ZGUvbGludXgvYWlvX2FiaS5oCTIwMDUtMDctMjEg MTE6NDM6MjYuMDAwMDAwMDAwICswMjAwCisrKyBsaW51eC0yLjYuMTIvaW5jbHVkZS9saW51eC9h aW9fYWJpLmgJMjAwNS0wNy0yMSAxMTo0MzoyNy4wMDAwMDAwMDAgKzAyMDAKQEAgLTQ1LDYgKzQ1 LDEyIEBACiAJSU9DQl9DTURfQ0hFQ0tQT0lOVCA9IDgsCiB9OwogCitlbnVtIHsKKwlBSU9fQ0FO Q0VMRUQgPSAwLAorCUFJT19OT1RDQU5DRUxFRCA9IDEsCisJQUlPX0FMTERPTkUgPSAyLAorfTsK KwogLyogcmVhZCgpIGZyb20gL2Rldi9haW8gcmV0dXJucyB0aGVzZSBzdHJ1Y3R1cmVzLiAqLwog c3RydWN0IGlvX2V2ZW50IHsKIAlfX3U2NAkJZGF0YTsJCS8qIHRoZSBkYXRhIGZpZWxkIGZyb20g dGhlIGlvY2IgKi8KSW5kZXg6IGxpbnV4LTIuNi4xMi9NYWtlZmlsZQo9PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBs aW51eC0yLjYuMTIub3JpZy9NYWtlZmlsZQkyMDA1LTA3LTIxIDExOjQzOjI2LjAwMDAwMDAwMCAr MDIwMAorKysgbGludXgtMi42LjEyL01ha2VmaWxlCTIwMDUtMDctMjEgMTE6NDM6MjcuMDAwMDAw MDAwICswMjAwCkBAIC0xLDcgKzEsNyBAQAogVkVSU0lPTiA9IDIKIFBBVENITEVWRUwgPSA2CiBT VUJMRVZFTCA9IDEyCi1FWFRSQVZFUlNJT04gPSAuUEFJTy1saW93YWl0CitFWFRSQVZFUlNJT04g PSAuUEFJTwogTkFNRT1Xb296eSBOdW1iYXQKIAogIyAqRE9DVU1FTlRBVElPTioK --=-qCZqObi3dJI/Iijzfj34--