From: aq Subject: [PATCH] handling errors in blktaplib Date: Mon, 13 Jun 2005 17:11:59 +0900 Message-ID: <9cde8bff05061301113528cc1@mail.gmail.com> Reply-To: aq Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="----=_Part_3169_14998906.1118650319774" Return-path: List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xensource.com Errors-To: xen-devel-bounces@lists.xensource.com To: Xen Dev , Andrew Warfield List-Id: xen-devel@lists.xenproject.org ------=_Part_3169_14998906.1118650319774 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Content-Disposition: inline blktaplib doesnt handle errors properly in several places: it just printed out the error message and exit, which is a bad behaviour for a library. this patch (against ChangeSet@1.1712) fixes the problem and then handles the potential errors in blkdump. it also makes few cleanups. (Andrew, there is another fix for parallax, but it will be sent later, after my last patch on parallax get merged/rejected) Signed-off-by: Nguyen Anh Quynh $ diffstat blktap2.patch=20 blkdump.c | 18 +++++++++++++++--- blktaplib.c | 46 +++++++++++++++++++++++++++++++--------------- blktaplib.h | 12 +++++++++--- 3 files changed, 55 insertions(+), 21 deletions(-) ------=_Part_3169_14998906.1118650319774 Content-Type: text/x-patch; name="blktap2.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="blktap2.patch" PT09PT0gdG9vbHMvYmxrdGFwL2Jsa2R1bXAuYyAxLjMgdnMgZWRpdGVkID09PT09Ci0tLSAxLjMv dG9vbHMvYmxrdGFwL2Jsa2R1bXAuYwkyMDA1LTA1LTIwIDIzOjQ5OjMyICswOTowMAorKysgZWRp dGVkL3Rvb2xzL2Jsa3RhcC9ibGtkdW1wLmMJMjAwNS0wNi0xMyAxNjo1ODozMyArMDk6MDAKQEAg LTEyMiw5ICsxMjIsMjEgQEAKIAogaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKIHsK LSAgICBibGt0YXBfcmVnaXN0ZXJfY3RybF9ob29rKCJjb250cm9sX3ByaW50IiwgY29udHJvbF9w cmludCk7Ci0gICAgYmxrdGFwX3JlZ2lzdGVyX3JlcXVlc3RfaG9vaygicmVxdWVzdF9wcmludCIs IHJlcXVlc3RfcHJpbnQpOwotICAgIGJsa3RhcF9yZWdpc3Rlcl9yZXNwb25zZV9ob29rKCJyZXNw b25zZV9wcmludCIsIHJlc3BvbnNlX3ByaW50KTsKKyAgICBpZiAoYmxrdGFwX3JlZ2lzdGVyX2N0 cmxfaG9vaygiY29udHJvbF9wcmludCIsIGNvbnRyb2xfcHJpbnQpID09IC0xKQorICAgIHsKKyAg ICAgICAgcHJpbnRmKCJFcnJvciBvbiByZWdpc3RlcmluZyBjb250cm9sX3ByaW50IGhvb2suIEhh bHQhXG4iKTsKKyAgICAgICAgcmV0dXJuIC0xOworICAgIH0KKyAgICBpZiAoYmxrdGFwX3JlZ2lz dGVyX3JlcXVlc3RfaG9vaygicmVxdWVzdF9wcmludCIsIHJlcXVlc3RfcHJpbnQpID09IC0xKQor ICAgIHsKKyAgICAgICAgcHJpbnRmKCJFcnJvciBvbiByZWdpc3RlcmluZyByZXF1ZXN0X3ByaW50 IGhvb2suIEhhbHQhXG4iKTsKKyAgICAgICAgcmV0dXJuIC0xOworICAgIH0KKyAgICBpZiAoYmxr dGFwX3JlZ2lzdGVyX3Jlc3BvbnNlX2hvb2soInJlc3BvbnNlX3ByaW50IiwgcmVzcG9uc2VfcHJp bnQpID09IC0xKQorICAgIHsKKyAgICAgICAgcHJpbnRmKCJFcnJvciBvbiByZWdpc3RlcmluZyBy ZXNwb25zZV9wcmludCBob29rLiBIYWx0IVxuIik7CisgICAgICAgIHJldHVybiAtMTsKKyAgICB9 CiAgICAgYmxrdGFwX2xpc3RlbigpOwogICAgIAogICAgIHJldHVybiAwOwo9PT09PSB0b29scy9i bGt0YXAvYmxrdGFwbGliLmMgMS42IHZzIGVkaXRlZCA9PT09PQotLS0gMS42L3Rvb2xzL2Jsa3Rh cC9ibGt0YXBsaWIuYwkyMDA1LTA2LTA0IDIzOjAwOjIwICswOTowMAorKysgZWRpdGVkL3Rvb2xz L2Jsa3RhcC9ibGt0YXBsaWIuYwkyMDA1LTA2LTEzIDE2OjQ4OjMwICswOTowMApAQCAtMTEwLDEy ICsxMTAsMTcgQEAKIHN0YXRpYyByZXF1ZXN0X2hvb2tfdCAqcmVxdWVzdF9ob29rX2NoYWluID0g TlVMTDsKIHN0YXRpYyByZXNwb25zZV9ob29rX3QgKnJlc3BvbnNlX2hvb2tfY2hhaW4gPSBOVUxM OwogCi12b2lkIGJsa3RhcF9yZWdpc3Rlcl9jdHJsX2hvb2soY2hhciAqbmFtZSwgaW50ICgqY2gp KGNvbnRyb2xfbXNnX3QgKikpIAorLyogYmxrdGFwX3JlZ2lzdGVyX2N0cmxfaG9vayByZXR1cm5z IC0xIG9uIGVycm9yLCAwIG9uIHN1Y2Nlc3MgKi8gCitpbnQgYmxrdGFwX3JlZ2lzdGVyX2N0cmxf aG9vayhjaGFyICpuYW1lLCBpbnQgKCpjaCkoY29udHJvbF9tc2dfdCAqKSkgCiB7CiAgICAgY3Ry bF9ob29rX3QgKmNoX2VudCwgKipjOwogICAgIAogICAgIGNoX2VudCA9IChjdHJsX2hvb2tfdCAq KW1hbGxvYyhzaXplb2YoY3RybF9ob29rX3QpKTsKLSAgICBpZiAoIWNoX2VudCkgeyBwcmludGYo ImNvdWxkbid0IGFsbG9jYXRlIGEgbmV3IGhvb2tcbiIpOyBleGl0KC0xKTsgfQorICAgIGlmICgh Y2hfZW50KSAKKyAgICB7IAorICAgICAgICBEUFJJTlRGKCJibGt0YXBfcmVnaXN0ZXJfY3RybF9o b29rOiBjb3VsZG4ndCBhbGxvY2F0ZSBhIG5ldyBob29rXG4iKTsgCisgICAgICAgIHJldHVybiAt MTsKKyAgICB9CiAgICAgCiAgICAgY2hfZW50LT5mdW5jICA9IGNoOwogICAgIGNoX2VudC0+bmV4 dCA9IE5VTEw7CkBAIC0xMjcsMTQgKzEzMiwyMCBAQAogICAgICAgICBjID0gJigqYyktPm5leHQ7 CiAgICAgfQogICAgICpjID0gY2hfZW50OworICAgIHJldHVybiAwOwogfQogCi12b2lkIGJsa3Rh cF9yZWdpc3Rlcl9yZXF1ZXN0X2hvb2soY2hhciAqbmFtZSwgaW50ICgqcmgpKGJsa2lmX3JlcXVl c3RfdCAqKSkgCisvKiBibGt0YXBfcmVnaXN0ZXJfcmVxdWVzdF9ob29rIHJldHVybnMgLTEgb24g ZXJyb3IsIDAgb24gc3VjY2VzcyAqLyAKK2ludCBibGt0YXBfcmVnaXN0ZXJfcmVxdWVzdF9ob29r KGNoYXIgKm5hbWUsIGludCAoKnJoKShibGtpZl9yZXF1ZXN0X3QgKikpIAogewogICAgIHJlcXVl c3RfaG9va190ICpyaF9lbnQsICoqYzsKICAgICAKICAgICByaF9lbnQgPSAocmVxdWVzdF9ob29r X3QgKiltYWxsb2Moc2l6ZW9mKHJlcXVlc3RfaG9va190KSk7Ci0gICAgaWYgKCFyaF9lbnQpIHsg cHJpbnRmKCJjb3VsZG4ndCBhbGxvY2F0ZSBhIG5ldyBob29rXG4iKTsgZXhpdCgtMSk7IH0KKyAg ICBpZiAoIXJoX2VudCkgCisgICAgeyAKKyAgICAgICAgRFBSSU5URigiYmxrdGFwX3JlZ2lzdGVy X3JlcXVlc3RfaG9vazogY291bGRuJ3QgYWxsb2NhdGUgYSBuZXcgaG9va1xuIik7IAorICAgICAg ICByZXR1cm4gLTE7IAorICAgIH0KICAgICAKICAgICByaF9lbnQtPmZ1bmMgID0gcmg7CiAgICAg cmhfZW50LT5uZXh0ID0gTlVMTDsKQEAgLTE0NSwxNCArMTU2LDIwIEBACiAgICAgICAgIGMgPSAm KCpjKS0+bmV4dDsKICAgICB9CiAgICAgKmMgPSByaF9lbnQ7CisgICAgcmV0dXJuIDA7CiB9CiAK LXZvaWQgYmxrdGFwX3JlZ2lzdGVyX3Jlc3BvbnNlX2hvb2soY2hhciAqbmFtZSwgaW50ICgqcmgp KGJsa2lmX3Jlc3BvbnNlX3QgKikpIAorLyogYmxrdGFwX3JlZ2lzdGVyX3Jlc3BvbnNlX2hvb2sg cmV0dXJucyAtMSBvbiBlcnJvciwgMCBvbiBzdWNjZXNzICovIAoraW50IGJsa3RhcF9yZWdpc3Rl cl9yZXNwb25zZV9ob29rKGNoYXIgKm5hbWUsIGludCAoKnJoKShibGtpZl9yZXNwb25zZV90ICop KSAKIHsKICAgICByZXNwb25zZV9ob29rX3QgKnJoX2VudCwgKipjOwogICAgIAogICAgIHJoX2Vu dCA9IChyZXNwb25zZV9ob29rX3QgKiltYWxsb2Moc2l6ZW9mKHJlc3BvbnNlX2hvb2tfdCkpOwot ICAgIGlmICghcmhfZW50KSB7IHByaW50ZigiY291bGRuJ3QgYWxsb2NhdGUgYSBuZXcgaG9va1xu Iik7IGV4aXQoLTEpOyB9CisgICAgaWYgKCFyaF9lbnQpIAorICAgIHsgCisgICAgICAgIERQUklO VEYoImJsa3RhcF9yZWdpc3Rlcl9yZXNwb25zZV9ob29rOiBjb3VsZG4ndCBhbGxvY2F0ZSBhIG5l dyBob29rXG4iKTsgCisgICAgICAgIHJldHVybiAtMTsKKyAgICB9CiAgICAgCiAgICAgcmhfZW50 LT5mdW5jICA9IHJoOwogICAgIHJoX2VudC0+bmV4dCA9IE5VTEw7CkBAIC0xNjMsNiArMTgwLDcg QEAKICAgICAgICAgYyA9ICYoKmMpLT5uZXh0OwogICAgIH0KICAgICAqYyA9IHJoX2VudDsKKyAg ICByZXR1cm4gMDsKIH0KIAogdm9pZCBwcmludF9ob29rcyh2b2lkKQpAQCAtMTk4LDggKzIxNiw2 IEBACiAgICAgICAgIAogLyotLS0tLVsgRGF0YSB0by9mcm9tIEJhY2tlbmQgKHNlcnZlcikgVk0g XS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiAKLQotCiBpbmxpbmUgaW50IHdyaXRl X3JlcV90b19iZV9yaW5nKGJsa2lmX3JlcXVlc3RfdCAqcmVxKQogewogICAgIGJsa2lmX3JlcXVl c3RfdCAqcmVxX2Q7CkBAIC0yODksNyArMzA1LDcgQEAKICAgICBwb2xsaG9va190ICpwaDsKICAg ICAKICAgICBpZiAobnJfcG9sbGhvb2tzKCkgPT0gTUFYX1BPTExGRFMpIHsKLSAgICAgICAgcHJp bnRmKCJUb28gbWFueSBwb2xsaG9va3MhXG4iKTsKKyAgICAgICAgRFBSSU5URigiYmxrdGFwX2F0 dGFjaF9wb2xsOiB0aGUgbnVtYmVyIG9mIHBvbGxob29rIHJlYWNoZWQgdGhlIGxpbWl0IG9mICVk IVxuIiwgTUFYX1BPTExGRFMpOwogICAgICAgICByZXR1cm4gLTE7CiAgICAgfQogICAgIApAQCAt NDU0LDkgKzQ3MCw5IEBACiAgICAgICAgICAgICB9CiAgICAgICAgICAgICAvKiBVc2luZyB0aGlz IGFzIGEgdW5pZGlyZWN0aW9uYWwgcmluZy4gKi8KICAgICAgICAgICAgIGN0cmxfcmluZy5yZXFf Y29ucyA9IGN0cmxfcmluZy5yc3BfcHJvZF9wdnQgPSBpOwotcHRocmVhZF9tdXRleF9sb2NrKCZw dXNoX211dGV4KTsKKyAgICAgICAgICAgIHB0aHJlYWRfbXV0ZXhfbG9jaygmcHVzaF9tdXRleCk7 CiAgICAgICAgICAgICBSSU5HX1BVU0hfUkVTUE9OU0VTKCZjdHJsX3JpbmcpOwotcHRocmVhZF9t dXRleF91bmxvY2soJnB1c2hfbXV0ZXgpOworICAgICAgICAgICAgcHRocmVhZF9tdXRleF91bmxv Y2soJnB1c2hfbXV0ZXgpOwogICAgICAgICAgICAgCiAgICAgICAgICAgICAvKiBlbXB0eSB0aGUg ZmVfcmluZyAqLwogICAgICAgICAgICAgbm90aWZ5X2ZlID0gMDsKQEAgLTUyNCwxOCArNTQwLDE4 IEBACiAKICAgICAgICAgICAgIGlmIChub3RpZnlfYmUpIHsKICAgICAgICAgICAgICAgICBEUFJJ TlRGKCJub3RpZnlpbmcgYmVcbiIpOwotcHRocmVhZF9tdXRleF9sb2NrKCZwdXNoX211dGV4KTsK KyAgICAgICAgICAgICAgICBwdGhyZWFkX211dGV4X2xvY2soJnB1c2hfbXV0ZXgpOwogICAgICAg ICAgICAgICAgIFJJTkdfUFVTSF9SRVFVRVNUUygmYmVfcmluZyk7CiAgICAgICAgICAgICAgICAg aW9jdGwoZmQsIEJMS1RBUF9JT0NUTF9LSUNLX0JFKTsKLXB0aHJlYWRfbXV0ZXhfdW5sb2NrKCZw dXNoX211dGV4KTsKKyAgICAgICAgICAgICAgICBwdGhyZWFkX211dGV4X3VubG9jaygmcHVzaF9t dXRleCk7CiAgICAgICAgICAgICB9CiAKICAgICAgICAgICAgIGlmIChub3RpZnlfZmUpIHsKICAg ICAgICAgICAgICAgICBEUFJJTlRGKCJub3RpZnlpbmcgZmVcbiIpOwotcHRocmVhZF9tdXRleF9s b2NrKCZwdXNoX211dGV4KTsKKyAgICAgICAgICAgICAgICBwdGhyZWFkX211dGV4X2xvY2soJnB1 c2hfbXV0ZXgpOwogICAgICAgICAgICAgICAgIFJJTkdfUFVTSF9SRVNQT05TRVMoJmZlX3Jpbmcp OwogICAgICAgICAgICAgICAgIGlvY3RsKGZkLCBCTEtUQVBfSU9DVExfS0lDS19GRSk7Ci1wdGhy ZWFkX211dGV4X3VubG9jaygmcHVzaF9tdXRleCk7CisgICAgICAgICAgICAgICAgcHRocmVhZF9t dXRleF91bmxvY2soJnB1c2hfbXV0ZXgpOwogICAgICAgICAgICAgfQogICAgICAgICB9ICAgICAg ICAKICAgICB9Cj09PT09IHRvb2xzL2Jsa3RhcC9ibGt0YXBsaWIuaCAxLjUgdnMgZWRpdGVkID09 PT09Ci0tLSAxLjUvdG9vbHMvYmxrdGFwL2Jsa3RhcGxpYi5oCTIwMDUtMDYtMDkgMjI6Mzc6NTIg KzA5OjAwCisrKyBlZGl0ZWQvdG9vbHMvYmxrdGFwL2Jsa3RhcGxpYi5oCTIwMDUtMDYtMTMgMTY6 NDE6NDggKzA5OjAwCkBAIC02Nyw5ICs2NywxNSBAQAogaW5saW5lIHVuc2lnbmVkIGludCBJRF9U T19JRFgodW5zaWduZWQgbG9uZyBpZCk7CiBpbmxpbmUgZG9taWRfdCBJRF9UT19ET00odW5zaWdu ZWQgbG9uZyBpZCk7CiAKLXZvaWQgYmxrdGFwX3JlZ2lzdGVyX2N0cmxfaG9vayhjaGFyICpuYW1l LCBpbnQgKCpjaCkoY29udHJvbF9tc2dfdCAqKSk7Ci12b2lkIGJsa3RhcF9yZWdpc3Rlcl9yZXF1 ZXN0X2hvb2soY2hhciAqbmFtZSwgaW50ICgqcmgpKGJsa2lmX3JlcXVlc3RfdCAqKSk7Ci12b2lk IGJsa3RhcF9yZWdpc3Rlcl9yZXNwb25zZV9ob29rKGNoYXIgKm5hbWUsIGludCAoKnJoKShibGtp Zl9yZXNwb25zZV90ICopKTsKKy8qIGJsa3RhcF9yZWdpc3Rlcl9jdHJsX2hvb2sgcmV0dXJucyAt MSBvbiBlcnJvciwgMCBvbiBzdWNjZXNzICovIAoraW50IGJsa3RhcF9yZWdpc3Rlcl9jdHJsX2hv b2soY2hhciAqbmFtZSwgaW50ICgqY2gpKGNvbnRyb2xfbXNnX3QgKikpOworCisvKiBibGt0YXBf cmVnaXN0ZXJfcmVxdWVzdF9ob29rIHJldHVybnMgLTEgb24gZXJyb3IsIDAgb24gc3VjY2VzcyAq LyAKK2ludCBibGt0YXBfcmVnaXN0ZXJfcmVxdWVzdF9ob29rKGNoYXIgKm5hbWUsIGludCAoKnJo KShibGtpZl9yZXF1ZXN0X3QgKikpOworCisvKiBibGt0YXBfcmVnaXN0ZXJfcmVzcG9uc2VfaG9v ayByZXR1cm5zIC0xIG9uIGVycm9yLCAwIG9uIHN1Y2Nlc3MgKi8gCitpbnQgYmxrdGFwX3JlZ2lz dGVyX3Jlc3BvbnNlX2hvb2soY2hhciAqbmFtZSwgaW50ICgqcmgpKGJsa2lmX3Jlc3BvbnNlX3Qg KikpOworCiB2b2lkIGJsa3RhcF9pbmplY3RfcmVzcG9uc2UoYmxraWZfcmVzcG9uc2VfdCAqKTsK IGludCAgYmxrdGFwX2F0dGFjaF9wb2xsKGludCBmZCwgc2hvcnQgZXZlbnRzLCBpbnQgKCpmdW5j KShpbnQpKTsKIHZvaWQgYmxrdGFwX2RldGFjaF9wb2xsKGludCBmZCk7Cg== ------=_Part_3169_14998906.1118650319774 Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel ------=_Part_3169_14998906.1118650319774--