--000e0cd4cd76eebe3104618d9565 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit This patch makes KLockFile handle pre-existing .lock files better. Now, when existing lock file is detected, even if NoBlockFlag is specified, LockStale or LockOK (depending on ForceFlag) is returned, instead of LockFile. This is done now in only one while(true) cycle iteration, so it works with NoBlockFlag. Ok to commit? --000e0cd4cd76eebe3104618d9565 Content-Type: application/octet-stream; name="klockfile.patch" Content-Disposition: attachment; filename="klockfile.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_fqi7svnj0 SW5kZXg6IGtsb2NrZmlsZV91bml4LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBrbG9ja2ZpbGVfdW5peC5j cHAJKHJldmlzaW9uIDkxNzQ3NykKKysrIGtsb2NrZmlsZV91bml4LmNwcAkod29ya2luZyBjb3B5 KQpAQCAtMjcwLDU0ICsyNzAsMTMgQEAKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAg ICAgfQotICAgICBlbHNlIC8vIEtMb2NrRmlsZTo6RmFpbAorICAgICBlbHNlIC8vIEtMb2NrRmls ZTo6RmFpbCAtLSB0aGVyZSBpcyBhbHJlYWR5IHN1Y2ggYSBmaWxlIHByZXNlbnQgKGUuZy4gbGVm dCBieSBhIGNyYXNoZWQgYXBwKQogICAgICB7CiAgICAgICAgIGlmICghZC0+c3RhbGVUaW1lci5p c051bGwoKSAmJiBkLT5zdGF0QnVmICE9IHN0X2J1ZikKICAgICAgICAgICAgZC0+c3RhbGVUaW1l ciA9IFFUaW1lKCk7CiAKLSAgICAgICAgaWYgKCFkLT5zdGFsZVRpbWVyLmlzTnVsbCgpKQorICAg ICAgICBpZiAoZC0+c3RhbGVUaW1lci5pc051bGwoKSkKICAgICAgICAgewotICAgICAgICAgICBi b29sIGlzU3RhbGUgPSBmYWxzZTsKLSAgICAgICAgICAgaWYgKChkLT5waWQgPiAwKSAmJiAhZC0+ aG9zdG5hbWUuaXNFbXB0eSgpKQotICAgICAgICAgICB7Ci0gICAgICAgICAgICAgIC8vIENoZWNr IGlmIGhvc3RuYW1lIGlzIHVzCi0gICAgICAgICAgICAgIGNoYXIgaG9zdG5hbWVbMjU2XTsKLSAg ICAgICAgICAgICAgaG9zdG5hbWVbMF0gPSAwOwotICAgICAgICAgICAgICBnZXRob3N0bmFtZSho b3N0bmFtZSwgMjU1KTsKLSAgICAgICAgICAgICAgaG9zdG5hbWVbMjU1XSA9IDA7Ci0KLSAgICAg ICAgICAgICAgaWYgKGQtPmhvc3RuYW1lID09IFFMYXRpbjFTdHJpbmcoaG9zdG5hbWUpKQotICAg ICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgIC8vIENoZWNrIGlmIHBpZCBzdGlsbCBleGlz dHMKLSAgICAgICAgICAgICAgICAgaW50IHJlcyA9IDo6a2lsbChkLT5waWQsIDApOwotICAgICAg ICAgICAgICAgICBpZiAoKHJlcyA9PSAtMSkgJiYgKGVycm5vID09IEVTUkNIKSkKLSAgICAgICAg ICAgICAgICAgICAgaXNTdGFsZSA9IHRydWU7Ci0gICAgICAgICAgICAgIH0KLSAgICAgICAgICAg fQotICAgICAgICAgICBpZiAoZC0+c3RhbGVUaW1lci5lbGFwc2VkKCkgPiAoZC0+c3RhbGVUaW1l KjEwMDApKQotICAgICAgICAgICAgICBpc1N0YWxlID0gdHJ1ZTsKLQotICAgICAgICAgICBpZiAo aXNTdGFsZSkKLSAgICAgICAgICAgewotICAgICAgICAgICAgICBpZiAoKG9wdGlvbnMgJiBGb3Jj ZUZsYWcpID09IDApCi0gICAgICAgICAgICAgICAgIHJldHVybiBLTG9ja0ZpbGU6OkxvY2tTdGFs ZTsKLQotICAgICAgICAgICAgICByZXN1bHQgPSBkZWxldGVTdGFsZUxvY2soZC0+ZmlsZSwgZC0+ c3RhdEJ1ZiwgZC0+bGlua0NvdW50U3VwcG9ydCwgZC0+Y29tcG9uZW50RGF0YSk7Ci0KLSAgICAg ICAgICAgICAgaWYgKHJlc3VsdCA9PSBLTG9ja0ZpbGU6OkxvY2tPSykKLSAgICAgICAgICAgICAg ewotICAgICAgICAgICAgICAgICAvLyBMb2NrIGRlbGV0aW9uIHN1Y2Nlc3NmdWwKLSAgICAgICAg ICAgICAgICAgZC0+c3RhbGVUaW1lciA9IFFUaW1lKCk7Ci0gICAgICAgICAgICAgICAgIGNvbnRp bnVlOyAvLyBOb3cgdHJ5IHRvIGdldCB0aGUgbmV3IGxvY2sKLSAgICAgICAgICAgICAgfQotICAg ICAgICAgICAgICBlbHNlIGlmIChyZXN1bHQgIT0gS0xvY2tGaWxlOjpMb2NrRmFpbCkKLSAgICAg ICAgICAgICAgewotICAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OwotICAgICAgICAgICAg ICB9Ci0gICAgICAgICAgIH0KLSAgICAgICAgfQotICAgICAgICBlbHNlCi0gICAgICAgIHsKICAg ICAgICAgICAgbWVtY3B5KCYoZC0+c3RhdEJ1ZiksICZzdF9idWYsIHNpemVvZihLREVfc3RydWN0 X3N0YXQpKTsKICAgICAgICAgICAgZC0+c3RhbGVUaW1lci5zdGFydCgpOwogCkBAIC0zMzcsOSAr Mjk2LDQ4IEBACiAgICAgICAgICAgICAgICAgIGQtPmhvc3RuYW1lID0gdHMucmVhZExpbmUoKTsK ICAgICAgICAgICAgfQogICAgICAgICB9CisKKyAgICAgICAgYm9vbCBpc1N0YWxlID0gZmFsc2U7 CisgICAgICAgIGlmICgoZC0+cGlkID4gMCkgJiYgIWQtPmhvc3RuYW1lLmlzRW1wdHkoKSkKKyAg ICAgICAgeworICAgICAgICAgICAvLyBDaGVjayBpZiBob3N0bmFtZSBpcyB1cworICAgICAgICAg ICBjaGFyIGhvc3RuYW1lWzI1Nl07CisgICAgICAgICAgIGhvc3RuYW1lWzBdID0gMDsKKyAgICAg ICAgICAgZ2V0aG9zdG5hbWUoaG9zdG5hbWUsIDI1NSk7CisgICAgICAgICAgIGhvc3RuYW1lWzI1 NV0gPSAwOworCisgICAgICAgICAgIGlmIChkLT5ob3N0bmFtZSA9PSBRTGF0aW4xU3RyaW5nKGhv c3RuYW1lKSkKKyAgICAgICAgICAgeworICAgICAgICAgICAgICAvLyBDaGVjayBpZiBwaWQgc3Rp bGwgZXhpc3RzCisgICAgICAgICAgICAgIGludCByZXMgPSA6OmtpbGwoZC0+cGlkLCAwKTsKKyAg ICAgICAgICAgICAgaWYgKChyZXMgPT0gLTEpICYmIChlcnJubyA9PSBFU1JDSCkpCisgICAgICAg ICAgICAgICAgIGlzU3RhbGUgPSB0cnVlOworICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAg ICAgaWYgKGQtPnN0YWxlVGltZXIuZWxhcHNlZCgpID4gKGQtPnN0YWxlVGltZSoxMDAwKSkKKyAg ICAgICAgICAgaXNTdGFsZSA9IHRydWU7CisKKyAgICAgICAgaWYgKGlzU3RhbGUpCisgICAgICAg IHsKKyAgICAgICAgICAgaWYgKChvcHRpb25zICYgRm9yY2VGbGFnKSA9PSAwKQorICAgICAgICAg ICAgICByZXR1cm4gS0xvY2tGaWxlOjpMb2NrU3RhbGU7CisKKyAgICAgICAgICAgcmVzdWx0ID0g ZGVsZXRlU3RhbGVMb2NrKGQtPmZpbGUsIGQtPnN0YXRCdWYsIGQtPmxpbmtDb3VudFN1cHBvcnQs IGQtPmNvbXBvbmVudERhdGEpOworCisgICAgICAgICAgIGlmIChyZXN1bHQgPT0gS0xvY2tGaWxl OjpMb2NrT0spCisgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgLy8gTG9jayBkZWxldGlvbiBz dWNjZXNzZnVsCisgICAgICAgICAgICAgIGQtPnN0YWxlVGltZXIgPSBRVGltZSgpOworICAgICAg ICAgICAgICBjb250aW51ZTsgLy8gTm93IHRyeSB0byBnZXQgdGhlIG5ldyBsb2NrCisgICAgICAg ICAgIH0KKyAgICAgICAgICAgZWxzZSBpZiAocmVzdWx0ICE9IEtMb2NrRmlsZTo6TG9ja0ZhaWwp CisgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICAgICAg fQorICAgICAgICB9CiAgICAgIH0KIAotICAgICBpZiAoKG9wdGlvbnMgJiBOb0Jsb2NrRmxhZykg IT0gMCkKKyAgICAgaWYgKG9wdGlvbnMgJiBOb0Jsb2NrRmxhZykKICAgICAgICAgYnJlYWs7CiAK ICAgICAgc3RydWN0IHRpbWV2YWwgdHY7CkluZGV4OiBrbG9ja2ZpbGUuaAo9PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t LSBrbG9ja2ZpbGUuaAkocmV2aXNpb24gOTE3NDc3KQorKysga2xvY2tmaWxlLmgJKHdvcmtpbmcg Y29weSkKQEAgLTc4LDcgKzc4LDggQEAKIAogICAgICAvKioKICAgICAgICogQXV0b21hdGljYWxs eSByZW1vdmUgYSBsb2NrIHdoZW4gYSBsb2NrIGlzIGRldGVjdGVkIHRoYXQgaXMgc3RhbGUKLSAg ICAgICogZm9yIG1vcmUgdGhhbiBzdGFsZVRpbWUoKSBzZWNvbmRzLgorICAgICAgKiBmb3IgbW9y ZSB0aGFuIHN0YWxlVGltZSgpIHNlY29uZHMsIG9yIGlmIHRoZSBwcm9jZXNzIHRoYXQgY3JlYXRl ZCBpdAorICAgICAgKiBpcyBub3QgcnVubmluZyBhbnltb3JlLgogICAgICAgKi8KICAgICAgRm9y Y2VGbGFnID0gMgogICAgfTsK --000e0cd4cd76eebe3104618d9565--