From mboxrd@z Thu Jan 1 00:00:00 1970 From: Juan Perez-Sanchez Subject: [PATCH] Fix to exec syscall Date: Thu, 22 Jan 2015 18:32:28 -0600 Message-ID: Mime-Version: 1.0 Content-Type: multipart/mixed; boundary=f46d04428074735c8d050d46ec27 Return-path: DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:date:message-id:subject:from:to:content-type; bh=W3XamAyOgN/E+B06Em3bbWO5dAirxJpAOoGY0axDFK4=; b=DhEcL2ME08pLuAtr80xh/4FKFqmaKncYtyLq0CZCzlVPDq/H7TxgkJ/Nxt1E32U4n8 FTS5cL/POEpNG3+OmLcTIPoIBN8iWwIsjA2E6P6rZDgG7qGgaHUuptlmNf7zyABdi6FX vSC2RGdzcR7wMFP9pPVQc0gofUaPDTP1wQJJTchIY4HLPkvv7XlmgCF4G5UewckZehsd oiydqIRttFaR8vtAhItaJuTQ7z5KH7AT9X2CgrZLV+I88En91YpYx32/B1ziBM8ZqT2E kgCPVV3QvxDpsn86I21sEpaA0662y+jebDbYSWwxk/LEHif06LEx8FGllJE+8+cZ7iWV u9eQ== Sender: linux-8086-owner@vger.kernel.org List-ID: To: linux-8086 --f46d04428074735c8d050d46ec27 Content-Type: text/plain; charset=UTF-8 Hi, In function sys_execve() in file fs/exec.c, if after opening an executable file an error was found, closed the file and returned an error code, but the corresponding inode structure was not released. Now, the inode is released on errors. In file fs/buffer.c, function find_buffer() now looks for the requested block in the direction most likely to find it faster. Moved prototype for function get_unused_fd() from include/arch/system.h to the more reasonable place in include/linuxmt/fs.h. Code size was reduced by 16 bytes. Greetings, Juan --f46d04428074735c8d050d46ec27 Content-Type: text/x-patch; charset=US-ASCII; name="elks-2k.patch" Content-Disposition: attachment; filename="elks-2k.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_i58tzyxt0 ZGlmZiAtTnVyIGVsa3Mub3JpZy9hcmNoL2k4Ni9kcml2ZXJzL2NoYXIvcHR5LmMgZWxrcy9hcmNo L2k4Ni9kcml2ZXJzL2NoYXIvcHR5LmMKLS0tIGVsa3Mub3JpZy9hcmNoL2k4Ni9kcml2ZXJzL2No YXIvcHR5LmMJMjAxNC0xMi0wOCAwNzoyNDo0MS4wMDAwMDAwMDAgLTA2MDAKKysrIGVsa3MvYXJj aC9pODYvZHJpdmVycy9jaGFyL3B0eS5jCTIwMTUtMDEtMjIgMTY6NDY6NTEuMDAwMDAwMDAwIC0w NjAwCkBAIC05MSw3ICs5MSw3IEBACiB7CiAgICAgcmVnaXN0ZXIgc3RydWN0IHR0eSAqdHR5ID0g ZGV0ZXJtaW5lX3R0eShpbm9kZS0+aV9yZGV2KTsKICAgICByZWdpc3RlciBjaGFyICpwaTsKLSAg ICBpbnQgaiwgbDsKKyAgICBpbnQgbDsKICAgICB1bnNpZ25lZCBjaGFyIGNoOwogCiAgICAgZGVi dWcoIlBUWTogcmVhZCAiKTsKQEAgLTEwMiw4ICsxMDIsNyBAQAogICAgIGwgPSAoZmlsZS0+Zl9m bGFncyAmIE9fTk9OQkxPQ0spID8gMCA6IDE7CiAgICAgcGkgPSAwOwogICAgIHdoaWxlICgoKGlu dClwaSkgPCBsZW4pIHsKLQlqID0gY2hxX2dldGNoKCZ0dHktPm91dHEsICZjaCwgbCk7Ci0JaWYg KGogPT0gLTEpCisJaWYoY2hxX2dldGNoKCZ0dHktPm91dHEsICZjaCwgbCkgPT0gLTEpCiAJICAg IGlmIChsKSB7CiAJCWRlYnVnKCJmYWlsZWQ6IElOVFJcbiIpOwogCQlyZXR1cm4gLUVJTlRSOwpk aWZmIC1OdXIgZWxrcy5vcmlnL2ZzL2J1ZmZlci5jIGVsa3MvZnMvYnVmZmVyLmMKLS0tIGVsa3Mu b3JpZy9mcy9idWZmZXIuYwkyMDE0LTEyLTA4IDA3OjI0OjQxLjAwMDAwMDAwMCAtMDYwMAorKysg ZWxrcy9mcy9idWZmZXIuYwkyMDE1LTAxLTIxIDE1OjMzOjE0LjAwMDAwMDAwMCAtMDYwMApAQCAt NzQsOSArNzQsOCBAQAogCS8qCiAJICogICAgICBVbmhvb2sKIAkgKi8KLQlpZiAoKGJobiA9IGJo LT5iX25leHRfbHJ1KSkKLQkgICAgYmhuLT5iX3ByZXZfbHJ1ID0gYmgtPmJfcHJldl9scnU7Ci0J aWYgKGJoLT5iX3ByZXZfbHJ1KQorCWJobiA9IGJoLT5iX25leHRfbHJ1OworCWlmKChiaG4tPmJf cHJldl9scnUgPSBiaC0+Yl9wcmV2X2xydSkpCiAJICAgIGJoLT5iX3ByZXZfbHJ1LT5iX25leHRf bHJ1ID0gYmhuOwogCS8qCiAJICogICAgICBBbHRlciBoZWFkCkBAIC0xNjcsMTEgKzE2NiwxMiBA QAogCiBzdGF0aWMgc3RydWN0IGJ1ZmZlcl9oZWFkICpmaW5kX2J1ZmZlcihrZGV2X3QgZGV2LCBi bG9ja190IGJsb2NrKQogewotICAgIHJlZ2lzdGVyIHN0cnVjdCBidWZmZXJfaGVhZCAqYmg7Cisg ICAgcmVnaXN0ZXIgc3RydWN0IGJ1ZmZlcl9oZWFkICpiaCA9IGJoX2xscnU7CiAKLSAgICBmb3Ig KGJoID0gYmhfY2hhaW47IGJoICE9IE5VTEw7IGJoID0gYmgtPmJfbmV4dCkKKyAgICBkbyB7CiAJ aWYgKGJoLT5iX2Jsb2NrbnIgPT0gYmxvY2sgJiYgYmgtPmJfZGV2ID09IGRldikKIAkgICAgYnJl YWs7CisgICAgfSB3aGlsZSgoYmggPSBiaC0+Yl9wcmV2X2xydSkgIT0gTlVMTCk7CiAgICAgcmV0 dXJuIGJoOwogfQogCmRpZmYgLU51ciBlbGtzLm9yaWcvZnMvZXhlYy5jIGVsa3MvZnMvZXhlYy5j Ci0tLSBlbGtzLm9yaWcvZnMvZXhlYy5jCTIwMTQtMTItMDggMDc6MjQ6NDEuMDAwMDAwMDAwIC0w NjAwCisrKyBlbGtzL2ZzL2V4ZWMuYwkyMDE1LTAxLTIxIDE4OjI2OjMwLjAwMDAwMDAwMCAtMDYw MApAQCAtNjAsNyArNjAsNyBAQAogICAgIF9fcmVnaXN0ZXJzICp0cmVnczsKICAgICB1bnNpZ25l ZCBpbnQgc3VpZGZpbGUsIHNnaWRmaWxlOwogICAgIGludCByZXR2YWw7Ci0gICAgX191MTYgZHMg PSBjdXJyZW50LT50X3JlZ3MuZHM7CisgICAgX191MTYgZHM7CiAgICAgc2VnX3QgY3NlZywgZHNl Zywgc3RhY2tfdG9wID0gMDsKICAgICB1aWRfdCBlZmZ1aWQ7CiAgICAgZ2lkX3QgZWZmZ2lkOwpA QCAtODgsNyArODgsNyBAQAogICAgIGZpbHAgPSBnZXRfZW1wdHlfZmlscChPX1JET05MWSk7CiAg ICAgaWYoIWZpbHApIHsKIAlkZWJ1ZygiXG5ObyBmaWxwc1xuIik7Ci0JZ290byBlcnJvcl9leGVj MTsKKwlnb3RvIGVycm9yX2V4ZWMyOwogICAgIH0KICAgICBmaWxwLT5mX2lub2RlID0gaW5vZGU7 CiAKQEAgLTEwMSw3ICsxMDEsNyBAQAogICAgIGlmICgoIWZpbHAtPmZfb3ApCiAJfHwgKChmaWxw LT5mX29wLT5vcGVuKSAmJiAoZmlscC0+Zl9vcC0+b3Blbihpbm9kZSwgZmlscCkpKQogCXx8ICgh ZmlscC0+Zl9vcC0+cmVhZCkpCi0JZ290byBlcnJvcl9leGVjMjsKKwlnb3RvIG5vcm1hbF9vdXQ7 CiAKICAgICBkZWJ1ZzEoIkVYRUM6IElub2RlIGRldiA9IDB4JXggb3BlbmVkIE9LLlxuIiwgaW5v ZGUtPmlfZGV2KTsKIApAQCAtMTA5LDcgKzEwOSw3IEBACiAgICAgICogICAgICBSZWFkIHRoZSBo ZWFkZXIuCiAgICAgICovCiAgICAgdHJlZ3MgPSAmY3VycmVudC0+dF9yZWdzOwotICAgIHRyZWdz LT5kcyA9IGdldF9kcygpOworICAgIGRzID0gdHJlZ3MtPmRzOwogCiAgICAgLyoKICAgICAgKiAg ICAgIGNhbiBJIHRydXN0IHRoZSBmb2xsb3dpbmcgZmllbGRzPwpAQCAtMTIyLDkgKzEyMiwxMCBA QAogCWVmZnVpZCA9IHBpbm9kZS0+aV91aWQ7CiAJZWZmZ2lkID0gcGlub2RlLT5pX2dpZDsKIAor CXRyZWdzLT5kcyA9IGdldF9kcygpOwogCXJlc3VsdCA9IGZpbHAtPmZfb3AtPnJlYWQocGlub2Rl LCBmaWxwLCAmbWgsIHNpemVvZihtaCkpOworCS8qdHJlZ3MtPmRzID0gZHM7Ki8KICAgICB9Ci0g ICAgdHJlZ3MtPmRzID0gZHM7CiAKICAgICAvKgogICAgICAqICAgICAgU2FuaXR5IGNoZWNrIGl0 LgpAQCAtMTMzLDI4ICsxMzQsMjggQEAKICAgICBpZiAocmVzdWx0ICE9IHNpemVvZihtaCkgfHwK IAkobWgudHlwZSAhPSBNSU5JWF9TUExJVElEKSB8fCBtaC5jaG1lbSA8IDEwMjQgfHwgbWgudHNl ZyA9PSAwKSB7CiAJZGVidWcxKCJFWEVDOiBiYWQgaGVhZGVyLCByZXN1bHQgJXVcbiIsIHJlc3Vs dCk7Ci0JZ290byBlcnJvcl9leGVjMjsKKwlnb3RvIGVycm9yX2V4ZWMzOwogICAgIH0KIAogI2lm ZGVmIENPTkZJR19FWEVDX0VMS1MKICAgICBpZiAoKHVuc2lnbmVkIGludCkgbWguaGxlbiA9PSAw eDMwKSB7CiAJLyogQklHIEhFQURFUiAqLwotCXRyZWdzLT5kcyA9IGdldF9kcygpOworCS8qdHJl Z3MtPmRzID0gZ2V0X2RzKCk7Ki8KIAlyZXN1bHQgPSBmaWxwLT5mX29wLT5yZWFkKGlub2RlLCBm aWxwLCAmbXN1cGgsIHNpemVvZihtc3VwaCkpOwotCXRyZWdzLT5kcyA9IGRzOworCS8qdHJlZ3Mt PmRzID0gZHM7Ki8KIAlpZiAocmVzdWx0ICE9IHNpemVvZihtc3VwaCkpIHsKIAkgICAgZGVidWcx KCJFWEVDOiBCYWQgc2Vjb25kYXJ5IGhlYWRlciwgcmVzdWx0ICV1XG4iLCByZXN1bHQpOwotCSAg ICBnb3RvIGVycm9yX2V4ZWMyOworCSAgICBnb3RvIGVycm9yX2V4ZWMzOwogCX0KIAlzdGFja190 b3AgPSBtc3VwaC5tc2hfZGJhc2U7CiAJaWYoc3RhY2tfdG9wICYgMHhmKXsKLQkgICAgIGdvdG8g ZXJyb3JfZXhlYzI7CisJICAgICBnb3RvIGVycm9yX2V4ZWMzOwogCX0KIAlkZWJ1ZzEoIkVYRUM6 IE5ldyB0eXBlIGV4ZWN1dGFibGUgc3RhY2sgPSAleFxuIiwgc3RhY2tfdG9wKTsKICAgICB9CiAj ZWxzZQogICAgIGlmKCh1bnNpZ25lZCBpbnQpIG1oLmhsZW4gIT0gMHgyMCl7Ci0gICAgICAgIGdv dG8gZXJyb3JfZXhlYzI7CisgICAgICAgIGdvdG8gZXJyb3JfZXhlYzM7CiAgICAgfQogI2VuZGlm CiAKQEAgLTE4MCwxNiArMTgxLDE2IEBACiAgICAgaWYgKCFjc2VnKSB7CiAgICAgICAgIGNzZWcg PSBtbV9hbGxvYygoc2VnZXh0X3QpICgobWgudHNlZyArIDE1KSA+PiA0KSk7CiAgICAgICAgIGlm ICghY3NlZykgewotICAgICAgICAgICAgZ290byBlcnJvcl9leGVjMjsKKyAgICAgICAgICAgIGdv dG8gZXJyb3JfZXhlYzM7CiAgICAgICAgIH0KICAgICAgICAgdHJlZ3MtPmRzID0gY3NlZzsKICAg ICAgICAgcmVzdWx0ID0gZmlscC0+Zl9vcC0+cmVhZChpbm9kZSwgZmlscCwgMCwgbWgudHNlZyk7 Ci0gICAgICAgIHRyZWdzLT5kcyA9IGRzOworICAgICAgICAvKnRyZWdzLT5kcyA9IGRzOyovCiAg ICAgICAgIGlmIChyZXN1bHQgIT0gbWgudHNlZykgewogICAgICAgICAgICAgZGVidWcyKCJFWEVD KHRzZWcgcmVhZCk6IGJhZCByZXN1bHQgJXUsIGV4cGVjdGVkICV1XG4iLAogCSAgICAgICByZXN1 bHQsIG1oLnRzZWcpOwogCSAgICByZXR2YWwgPSAtRU5PRVhFQzsKLQkgICAgZ290byBlcnJvcl9l eGVjMzsKKwkgICAgZ290byBlcnJvcl9leGVjNDsKICAgICAgICAgfQogICAgIH0KICAgICBlbHNl IHsKQEAgLTIwNywxNCArMjA4LDE0IEBACiAgICAgfQogICAgIGxlbiA9IChsZW4gKyAxNSkgJiB+ MTVMOwogICAgIGlmIChsZW4gPiAobHNpemVfdCkgMHgxMDAwMEwpIHsKLQlnb3RvIGVycm9yX2V4 ZWMzOworCWdvdG8gZXJyb3JfZXhlYzQ7CiAgICAgfQogCiAgICAgZGVidWcxKCJFWEVDOiBBbGxv Y2F0aW5nICVsZCBieXRlcyBmb3IgZGF0YSBzZWdtZW50XG4iLCBsZW4pOwogCiAgICAgZHNlZyA9 IG1tX2FsbG9jKChzZWdleHRfdCkgKGxlbiA+PiA0KSk7CiAgICAgaWYgKCFkc2VnKSB7Ci0JZ290 byBlcnJvcl9leGVjMzsKKwlnb3RvIGVycm9yX2V4ZWM0OwogICAgIH0KIAogICAgIGRlYnVnMigi RVhFQzogTWFsbG9jIHN1Y2NlZWRlZCAtIGNzPSV4IGRzPSV4XG4iLCBjc2VnLCBkc2VnKTsKQEAg LTIyNiw3ICsyMjcsNyBAQAogICAgIGlmIChyZXN1bHQgIT0gbWguZHNlZykgewogCWRlYnVnMigi RVhFQyhkc2VnIHJlYWQpOiBiYWQgcmVzdWx0ICVkLCBleHBlY3RlZCAlZFxuIiwKIAkgICAgICAg cmVzdWx0LCBtaC5kc2VnKTsKLQlnb3RvIGVycm9yX2V4ZWM0OworCWdvdG8gZXJyb3JfZXhlYzU7 CiAgICAgfQogCiAgICAgLyoKQEAgLTMzOCwxOCArMzM5LDIyIEBACiAgICAgcmV0dmFsID0gMDsK ICAgICBnb3RvIG5vcm1hbF9vdXQ7CiAKLSAgZXJyb3JfZXhlYzQ6CisgIGVycm9yX2V4ZWM1Ogog ICAgIG1tX2ZyZWUoZHNlZyk7CiAKLSAgZXJyb3JfZXhlYzM6CisgIGVycm9yX2V4ZWM0OgogICAg IG1tX2ZyZWUoY3NlZyk7CiAKKyAgZXJyb3JfZXhlYzM6CisgICAgdHJlZ3MtPmRzID0gZHM7CiAg IG5vcm1hbF9vdXQ6Ci0gIGVycm9yX2V4ZWMyOgogICAgIGlmKGZpbHAtPmZfb3AtPnJlbGVhc2Up CiAJZmlscC0+Zl9vcC0+cmVsZWFzZShpbm9kZSwgZmlscCk7CiAgICAgZmlscC0+Zl9jb3VudC0t OwogCisgIGVycm9yX2V4ZWMyOgorICAgIGlmKHJldHZhbCkKKwlpcHV0KGlub2RlKTsKICAgZXJy b3JfZXhlYzE6CiAgICAgZGVidWcxKCJFWEVDOiBSZXR1cm5pbmcgJWRcbiIsIHJldHZhbCk7CiAg ICAgcmV0dXJuIHJldHZhbDsKZGlmZiAtTnVyIGVsa3Mub3JpZy9mcy9pbm9kZS5jIGVsa3MvZnMv aW5vZGUuYwotLS0gZWxrcy5vcmlnL2ZzL2lub2RlLmMJMjAxNC0xMi0wOCAwNzoyNDo0MS4wMDAw MDAwMDAgLTA2MDAKKysrIGVsa3MvZnMvaW5vZGUuYwkyMDE1LTAxLTIxIDE3OjA1OjI5LjAwMDAw MDAwMCAtMDYwMApAQCAtNDQxLDcgKzQ0MSw2IEBACiAJICAgIGlwdXQoaW5vZGUpOwogCSAgICBy ZXR1cm4gTlVMTDsKIAl9Ci0JKGlub2RlLT5pX2NvdW50KSsrOwkvKiBzdW0gb2YgcmVhZGVycy93 cml0ZXJzICovCiAJaW5vZGUtPmlfcGlwZSA9IDE7CiAJUElQRV9TVEFSVCgqaW5vZGUpID0gUElQ RV9MRU4oKmlub2RlKSA9IDA7CiAJUElQRV9SRF9PUEVORVJTKCppbm9kZSkgPSBQSVBFX1dSX09Q RU5FUlMoKmlub2RlKSA9IDA7CmRpZmYgLU51ciBlbGtzLm9yaWcvZnMvcGlwZS5jIGVsa3MvZnMv cGlwZS5jCi0tLSBlbGtzLm9yaWcvZnMvcGlwZS5jCTIwMTQtMTItMDggMDc6MjQ6NDEuMDAwMDAw MDAwIC0wNjAwCisrKyBlbGtzL2ZzL3BpcGUuYwkyMDE1LTAxLTIxIDE3OjI4OjI2LjAwMDAwMDAw MCAtMDYwMApAQCAtMzA3LDEwICszMDcsMTAgQEAKICAgICBzdHJ1Y3QgaW5vZGUgKmlub2RlOwog ICAgIHJlZ2lzdGVyIHN0cnVjdCBmaWxlICpmMTsKICAgICByZWdpc3RlciBzdHJ1Y3QgZmlsZSAq ZjI7Ci0gICAgaW50IGVycm9yOworICAgIGludCBlcnJvciA9IC1FTk9NRU07CiAgICAgaW50IGk7 CiAKLSAgICBpbm9kZSA9IGdldF9waXBlX2lub2RlKCk7CisgICAgaW5vZGUgPSBnZXRfcGlwZV9p bm9kZSgpOwkvKiBDcmVhdGUgaW5vZGUgKi8KICAgICBpZiAoIWlub2RlKQogCWdvdG8gbm9faW5v ZGVzOwogCkBAIC0zMzAsNiArMzMwLDcgQEAKICAgICBmZFswXSA9IGVycm9yOwogICAgIGkgPSBl cnJvcjsKIAorICAgIChpbm9kZS0+aV9jb3VudCkrKzsJCS8qIEluY3JlYXNlIGlub2RlIHVzYWdl IGNvdW50ICovCiAgICAgLyogd3JpdGUgZmlsZSAqLwogICAgIGVycm9yID0gLUVORklMRTsKICAg ICBmMiA9IGdldF9lbXB0eV9maWxwKE9fV1JPTkxZKTsKQEAgLTM1MiwxMiArMzUzLDEyIEBACiAK ICAgY2xvc2VfZjFfaToKICAgICBjdXJyZW50LT5maWxlcy5mZFtpXSA9IE5VTEw7CisgICAgaW5v ZGUtPmlfY291bnQtLTsKIAogICBjbG9zZV9mMToKICAgICBmMS0+Zl9jb3VudC0tOwogCiAgIG5v X2ZpbGVzOgotICAgIGlub2RlLT5pX2NvdW50LS07CiAgICAgaXB1dChpbm9kZSk7CiAKICAgbm9f aW5vZGVzOgpkaWZmIC1OdXIgZWxrcy5vcmlnL2luY2x1ZGUvYXJjaC9zeXN0ZW0uaCBlbGtzL2lu Y2x1ZGUvYXJjaC9zeXN0ZW0uaAotLS0gZWxrcy5vcmlnL2luY2x1ZGUvYXJjaC9zeXN0ZW0uaAky MDE0LTEyLTA4IDA3OjI0OjQxLjAwMDAwMDAwMCAtMDYwMAorKysgZWxrcy9pbmNsdWRlL2FyY2gv c3lzdGVtLmgJMjAxNS0wMS0yMSAxNjo0MzowNC4wMDAwMDAwMDAgLTA2MDAKQEAgLTksNiArOSw1 IEBACiBleHRlcm4gdm9pZCBzZXR1cF9hcmNoKHNlZ190ICosc2VnX3QgKik7CiAKIGV4dGVybiBp bnQgaW5fZ3JvdXBfcChnaWRfdCk7Ci1leHRlcm4gaW50IGdldF91bnVzZWRfZmQodm9pZCk7CiAK ICNlbmRpZgpkaWZmIC1OdXIgZWxrcy5vcmlnL2luY2x1ZGUvbGludXhtdC9mcy5oIGVsa3MvaW5j bHVkZS9saW51eG10L2ZzLmgKLS0tIGVsa3Mub3JpZy9pbmNsdWRlL2xpbnV4bXQvZnMuaAkyMDE0 LTEyLTA4IDA3OjI0OjQxLjAwMDAwMDAwMCAtMDYwMAorKysgZWxrcy9pbmNsdWRlL2xpbnV4bXQv ZnMuaAkyMDE1LTAxLTIxIDE2OjQyOjUyLjAwMDAwMDAwMCAtMDYwMApAQCAtNTA5LDYgKzUwOSw3 IEBACiAKIGV4dGVybiBzdHJ1Y3QgYnVmZmVyX2hlYWQgKmJyZWFkKGRldl90LGJsb2NrX3QpOwog CitleHRlcm4gaW50IGdldF91bnVzZWRfZmQodm9pZCk7CiBleHRlcm4gY2hhciAqZ2V0X3BpcGVf bWVtKHZvaWQpOwogZXh0ZXJuIHZvaWQgZnJlZV9waXBlX21lbShjaGFyICpidWYpOwogCg== --f46d04428074735c8d050d46ec27--