From mboxrd@z Thu Jan 1 00:00:00 1970 From: Shirish Pargaonkar Subject: Re: [linux-cifs-client][patch] utilize lookup intents to open in lookup Date: Wed, 1 Apr 2009 14:33:23 -0500 Message-ID: <4a4634330904011233q5423fb2bydafd445134fc0717@mail.gmail.com> References: <4a4634330903310957j25bbefcibb28e09a3eaf0c10@mail.gmail.com> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary=0016e645b76887de000466836302 Cc: Steve French , Trond Myklebust , viro@zeniv.linux.org.uk To: "linux-cifs-client@lists.samba.org" , linux-fsdevel Return-path: Received: from yw-out-2324.google.com ([74.125.46.31]:18713 "EHLO yw-out-2324.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1755756AbZDATdZ (ORCPT ); Wed, 1 Apr 2009 15:33:25 -0400 Received: by yw-out-2324.google.com with SMTP id 5so186441ywb.1 for ; Wed, 01 Apr 2009 12:33:23 -0700 (PDT) In-Reply-To: <4a4634330903310957j25bbefcibb28e09a3eaf0c10@mail.gmail.com> Sender: linux-fsdevel-owner@vger.kernel.org List-ID: --0016e645b76887de000466836302 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit On Tue, Mar 31, 2009 at 11:57 AM, Shirish Pargaonkar wrote: > Hi, > > Patch to expolint lookup intents in cifs lookup during open, thus > reducing network traffick and speedier opens > Have also converted a semphore to mutex as per Jeff Layton's comments. > > Trong, Al, your feedback is really appreciated. > > Regards, > > Shirish > Forgot to take out two debug lines. Did test this patch while creating regular files, directories, symbolic links, exclusive create against older and newer version of samba and so far it works. Regards, Shirish --0016e645b76887de000466836302 Content-Type: application/octet-stream; name="li.5.patch" Content-Disposition: attachment; filename="li.5.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_ft0f0h5k1 ZGlmZiAtLWdpdCBhL2ZzL2NpZnMvY2lmc2dsb2IuaCBiL2ZzL2NpZnMvY2lmc2dsb2IuaAppbmRl eCA5ZmJmNGRmLi45YTgzNjhmIDEwMDY0NAotLS0gYS9mcy9jaWZzL2NpZnNnbG9iLmgKKysrIGIv ZnMvY2lmcy9jaWZzZ2xvYi5oCkBAIC0zNTAsNyArMzUwLDcgQEAgc3RydWN0IGNpZnNGaWxlSW5m byB7CiAJYm9vbCBpbnZhbGlkSGFuZGxlOjE7CS8qIGZpbGUgY2xvc2VkIHZpYSBzZXNzaW9uIGFi ZW5kICovCiAJYm9vbCBtZXNzYWdlTW9kZToxOwkvKiBmb3IgcGlwZXM6IG1lc3NhZ2UgdnMgYnl0 ZSBtb2RlICovCiAJYXRvbWljX3Qgd3J0UGVuZGluZzsgICAvKiBoYW5kbGUgaW4gdXNlIC0gZGVm ZXIgY2xvc2UgKi8KLQlzdHJ1Y3Qgc2VtYXBob3JlIGZoX3NlbTsgLyogcHJldmVudHMgcmVvcGVu IHJhY2UgYWZ0ZXIgZGVhZCBzZXMqLworCXN0cnVjdCBtdXRleCBmaF9tdXRleDsgLyogcHJldmVu dHMgcmVvcGVuIHJhY2UgYWZ0ZXIgZGVhZCBzZXMqLwogCXN0cnVjdCBjaWZzX3NlYXJjaF9pbmZv IHNyY2hfaW5mOwogfTsKIApkaWZmIC0tZ2l0IGEvZnMvY2lmcy9kaXIuYyBiL2ZzL2NpZnMvZGly LmMKaW5kZXggZjliNmY2OC4uZjQ3M2M3MyAxMDA2NDQKLS0tIGEvZnMvY2lmcy9kaXIuYworKysg Yi9mcy9jaWZzL2Rpci5jCkBAIC0xMjksMTIgKzEyOSw2NCBAQCBjaWZzX2JwX3JlbmFtZV9yZXRy eToKIAlyZXR1cm4gZnVsbF9wYXRoOwogfQogCitzdGF0aWMgdm9pZAorY2lmc19maWxsX2ZpbGVp bmZvKHN0cnVjdCBpbm9kZSAqbmV3aW5vZGUsIF9fdTE2IGZpbGVIYW5kbGUsCisJCQlzdHJ1Y3Qg Y2lmc1Rjb25JbmZvICp0Y29uLCBib29sIHdyaXRlX29ubHkpCit7CisJaW50IG9wbG9jayA9IDA7 CisJc3RydWN0IGNpZnNGaWxlSW5mbyAqcENpZnNGaWxlOworCXN0cnVjdCBjaWZzSW5vZGVJbmZv ICpwQ2lmc0lub2RlOworCisJcENpZnNGaWxlID0ga3phbGxvYyhzaXplb2Yoc3RydWN0IGNpZnNG aWxlSW5mbyksIEdGUF9LRVJORUwpOworCisJaWYgKHBDaWZzRmlsZSA9PSBOVUxMKQorCQlyZXR1 cm47CisKKwlpZiAob3Bsb2NrRW5hYmxlZCkKKwkJb3Bsb2NrID0gUkVRX09QTE9DSzsKKworCXBD aWZzRmlsZS0+bmV0ZmlkID0gZmlsZUhhbmRsZTsKKwlwQ2lmc0ZpbGUtPnBpZCA9IGN1cnJlbnQt PnRnaWQ7CisJcENpZnNGaWxlLT5wSW5vZGUgPSBuZXdpbm9kZTsKKwlwQ2lmc0ZpbGUtPmludmFs aWRIYW5kbGUgPSBmYWxzZTsKKwlwQ2lmc0ZpbGUtPmNsb3NlUGVuZCAgICAgPSBmYWxzZTsKKwlt dXRleF9pbml0KCZwQ2lmc0ZpbGUtPmZoX211dGV4KTsKKwltdXRleF9pbml0KCZwQ2lmc0ZpbGUt PmxvY2tfbXV0ZXgpOworCUlOSVRfTElTVF9IRUFEKCZwQ2lmc0ZpbGUtPmxsaXN0KTsKKwlhdG9t aWNfc2V0KCZwQ2lmc0ZpbGUtPndydFBlbmRpbmcsIDApOworCisJLyogc2V0IHRoZSBmb2xsb3dp bmcgaW4gb3BlbiBub3cKKwkJCXBDaWZzRmlsZS0+cGZpbGUgPSBmaWxlOyAqLworCXdyaXRlX2xv Y2soJkdsb2JhbFNNQlNlc2xvY2spOworCWxpc3RfYWRkKCZwQ2lmc0ZpbGUtPnRsaXN0LCAmdGNv bi0+b3BlbkZpbGVMaXN0KTsKKwlwQ2lmc0lub2RlID0gQ0lGU19JKG5ld2lub2RlKTsKKwlpZiAo cENpZnNJbm9kZSkgeworCQkvKiBpZiByZWFkYWJsZSBmaWxlIGluc3RhbmNlIHB1dCBmaXJzdCBp biBsaXN0Ki8KKwkJaWYgKHdyaXRlX29ubHkpIHsKKwkJCWxpc3RfYWRkX3RhaWwoJnBDaWZzRmls ZS0+Zmxpc3QsCisJCQkJICAgICAgJnBDaWZzSW5vZGUtPm9wZW5GaWxlTGlzdCk7CisJCX0gZWxz ZSB7CisJCQlsaXN0X2FkZCgmcENpZnNGaWxlLT5mbGlzdCwKKwkJCQkgJnBDaWZzSW5vZGUtPm9w ZW5GaWxlTGlzdCk7CisJCX0KKwkJaWYgKChvcGxvY2sgJiAweEYpID09IE9QTE9DS19FWENMVVNJ VkUpIHsKKwkJCXBDaWZzSW5vZGUtPmNsaWVudENhbkNhY2hlQWxsID0gdHJ1ZTsKKwkJCXBDaWZz SW5vZGUtPmNsaWVudENhbkNhY2hlUmVhZCA9IHRydWU7CisJCQljRllJKDEsICgiRXhjbHVzaXZl IE9wbG9jayBpbm9kZSAlcCIsCisJCQkJbmV3aW5vZGUpKTsKKwkJfSBlbHNlIGlmICgob3Bsb2Nr ICYgMHhGKSA9PSBPUExPQ0tfUkVBRCkKKwkJCXBDaWZzSW5vZGUtPmNsaWVudENhbkNhY2hlUmVh ZCA9IHRydWU7CisJfQorCXdyaXRlX3VubG9jaygmR2xvYmFsU01CU2VzbG9jayk7Cit9CisKIGlu dCBjaWZzX3Bvc2l4X29wZW4oY2hhciAqZnVsbF9wYXRoLCBzdHJ1Y3QgaW5vZGUgKipwaW5vZGUs CiAJCSAgICBzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiLCBpbnQgbW9kZSwgaW50IG9mbGFncywKIAkJ ICAgIGludCAqcG9wbG9jaywgX191MTYgKnBuZXRmaWQsIGludCB4aWQpCiB7CiAJaW50IHJjOwog CV9fdTMyIG9wbG9jazsKKwlib29sIHdyaXRlX29ubHkgPSBmYWxzZTsKIAlGSUxFX1VOSVhfQkFT SUNfSU5GTyAqcHJlc3BfZGF0YTsKIAlfX3UzMiBwb3NpeF9mbGFncyA9IDA7CiAJc3RydWN0IGNp ZnNfc2JfaW5mbyAqY2lmc19zYiA9IENJRlNfU0Ioc2IpOwpAQCAtMTcyLDYgKzIyNCw4IEBAIGlu dCBjaWZzX3Bvc2l4X29wZW4oY2hhciAqZnVsbF9wYXRoLCBzdHJ1Y3QgaW5vZGUgKipwaW5vZGUs CiAJaWYgKG9mbGFncyAmIE9fRElSRUNUKQogCQlwb3NpeF9mbGFncyB8PSBTTUJfT19ESVJFQ1Q7 CiAKKwlpZiAoIShvZmxhZ3MgJiBGTU9ERV9SRUFEKSkKKwkJd3JpdGVfb25seSA9IHRydWU7CiAK IAlyYyA9IENJRlNQT1NJWENyZWF0ZSh4aWQsIGNpZnNfc2ItPnRjb24sIHBvc2l4X2ZsYWdzLCBt b2RlLAogCQkJcG5ldGZpZCwgcHJlc3BfZGF0YSwgJm9wbG9jaywgZnVsbF9wYXRoLApAQCAtMTk4 LDYgKzI1Miw4IEBAIGludCBjaWZzX3Bvc2l4X29wZW4oY2hhciAqZnVsbF9wYXRoLCBzdHJ1Y3Qg aW5vZGUgKipwaW5vZGUsCiAKIAlwb3NpeF9maWxsX2luX2lub2RlKCpwaW5vZGUsIHByZXNwX2Rh dGEsIDEpOwogCisJY2lmc19maWxsX2ZpbGVpbmZvKCpwaW5vZGUsICpwbmV0ZmlkLCBjaWZzX3Ni LT50Y29uLCB3cml0ZV9vbmx5KTsKKwogcG9zaXhfb3Blbl9yZXQ6CiAJa2ZyZWUocHJlc3BfZGF0 YSk7CiAJcmV0dXJuIHJjOwpAQCAtMjM5LDcgKzI5NSw2IEBAIGNpZnNfY3JlYXRlKHN0cnVjdCBp bm9kZSAqaW5vZGUsIHN0cnVjdCBkZW50cnkgKmRpcmVudHJ5LCBpbnQgbW9kZSwKIAljaGFyICpm dWxsX3BhdGggPSBOVUxMOwogCUZJTEVfQUxMX0lORk8gKmJ1ZiA9IE5VTEw7CiAJc3RydWN0IGlu b2RlICpuZXdpbm9kZSA9IE5VTEw7Ci0Jc3RydWN0IGNpZnNJbm9kZUluZm8gKnBDaWZzSW5vZGU7 CiAJaW50IGRpc3Bvc2l0aW9uID0gRklMRV9PVkVSV1JJVEVfSUY7CiAJYm9vbCB3cml0ZV9vbmx5 ID0gZmFsc2U7CiAKQEAgLTQxMCw0NCArNDY1LDggQEAgY2lmc19jcmVhdGVfc2V0X2RlbnRyeToK IAkJLyogbWtub2QgY2FzZSAtIGRvIG5vdCBsZWF2ZSBmaWxlIG9wZW4gKi8KIAkJQ0lGU1NNQkNs b3NlKHhpZCwgdGNvbiwgZmlsZUhhbmRsZSk7CiAJfSBlbHNlIGlmIChuZXdpbm9kZSkgewotCQlz dHJ1Y3QgY2lmc0ZpbGVJbmZvICpwQ2lmc0ZpbGUgPQotCQkJa3phbGxvYyhzaXplb2Yoc3RydWN0 IGNpZnNGaWxlSW5mbyksIEdGUF9LRVJORUwpOwotCi0JCWlmIChwQ2lmc0ZpbGUgPT0gTlVMTCkK LQkJCWdvdG8gY2lmc19jcmVhdGVfb3V0OwotCQlwQ2lmc0ZpbGUtPm5ldGZpZCA9IGZpbGVIYW5k bGU7Ci0JCXBDaWZzRmlsZS0+cGlkID0gY3VycmVudC0+dGdpZDsKLQkJcENpZnNGaWxlLT5wSW5v ZGUgPSBuZXdpbm9kZTsKLQkJcENpZnNGaWxlLT5pbnZhbGlkSGFuZGxlID0gZmFsc2U7Ci0JCXBD aWZzRmlsZS0+Y2xvc2VQZW5kICAgICA9IGZhbHNlOwotCQlpbml0X01VVEVYKCZwQ2lmc0ZpbGUt PmZoX3NlbSk7Ci0JCW11dGV4X2luaXQoJnBDaWZzRmlsZS0+bG9ja19tdXRleCk7Ci0JCUlOSVRf TElTVF9IRUFEKCZwQ2lmc0ZpbGUtPmxsaXN0KTsKLQkJYXRvbWljX3NldCgmcENpZnNGaWxlLT53 cnRQZW5kaW5nLCAwKTsKLQotCQkvKiBzZXQgdGhlIGZvbGxvd2luZyBpbiBvcGVuIG5vdwotCQkJ CXBDaWZzRmlsZS0+cGZpbGUgPSBmaWxlOyAqLwotCQl3cml0ZV9sb2NrKCZHbG9iYWxTTUJTZXNs b2NrKTsKLQkJbGlzdF9hZGQoJnBDaWZzRmlsZS0+dGxpc3QsICZ0Y29uLT5vcGVuRmlsZUxpc3Qp OwotCQlwQ2lmc0lub2RlID0gQ0lGU19JKG5ld2lub2RlKTsKLQkJaWYgKHBDaWZzSW5vZGUpIHsK LQkJCS8qIGlmIHJlYWRhYmxlIGZpbGUgaW5zdGFuY2UgcHV0IGZpcnN0IGluIGxpc3QqLwotCQkJ aWYgKHdyaXRlX29ubHkpIHsKLQkJCQlsaXN0X2FkZF90YWlsKCZwQ2lmc0ZpbGUtPmZsaXN0LAot CQkJCQkgICAgICAmcENpZnNJbm9kZS0+b3BlbkZpbGVMaXN0KTsKLQkJCX0gZWxzZSB7Ci0JCQkJ bGlzdF9hZGQoJnBDaWZzRmlsZS0+Zmxpc3QsCi0JCQkJCSAmcENpZnNJbm9kZS0+b3BlbkZpbGVM aXN0KTsKLQkJCX0KLQkJCWlmICgob3Bsb2NrICYgMHhGKSA9PSBPUExPQ0tfRVhDTFVTSVZFKSB7 Ci0JCQkJcENpZnNJbm9kZS0+Y2xpZW50Q2FuQ2FjaGVBbGwgPSB0cnVlOwotCQkJCXBDaWZzSW5v ZGUtPmNsaWVudENhbkNhY2hlUmVhZCA9IHRydWU7Ci0JCQkJY0ZZSSgxLCAoIkV4Y2x1c2l2ZSBP cGxvY2sgaW5vZGUgJXAiLAotCQkJCQluZXdpbm9kZSkpOwotCQkJfSBlbHNlIGlmICgob3Bsb2Nr ICYgMHhGKSA9PSBPUExPQ0tfUkVBRCkKLQkJCQlwQ2lmc0lub2RlLT5jbGllbnRDYW5DYWNoZVJl YWQgPSB0cnVlOwotCQl9Ci0JCXdyaXRlX3VubG9jaygmR2xvYmFsU01CU2VzbG9jayk7CisJCQlj aWZzX2ZpbGxfZmlsZWluZm8obmV3aW5vZGUsIGZpbGVIYW5kbGUsCisJCQkJCWNpZnNfc2ItPnRj b24sIHdyaXRlX29ubHkpOwogCX0KIGNpZnNfY3JlYXRlX291dDoKIAlrZnJlZShidWYpOwpAQCAt NTgwLDE3ICs1OTksMjEgQEAgaW50IGNpZnNfbWtub2Qoc3RydWN0IGlub2RlICppbm9kZSwgc3Ry dWN0IGRlbnRyeSAqZGlyZW50cnksIGludCBtb2RlLAogCXJldHVybiByYzsKIH0KIAotCiBzdHJ1 Y3QgZGVudHJ5ICoKIGNpZnNfbG9va3VwKHN0cnVjdCBpbm9kZSAqcGFyZW50X2Rpcl9pbm9kZSwg c3RydWN0IGRlbnRyeSAqZGlyZW50cnksCiAJICAgIHN0cnVjdCBuYW1laWRhdGEgKm5kKQogewog CWludCB4aWQ7CiAJaW50IHJjID0gMDsgLyogdG8gZ2V0IGFyb3VuZCBzcHVyaW91cyBnY2Mgd2Fy bmluZywgc2V0IHRvIHplcm8gaGVyZSAqLworCWludCBvcGxvY2sgPSAwOworCWludCBtb2RlOwor CV9fdTE2IGZpbGVIYW5kbGUgPSAwOworCWJvb2wgcG9zaXhfb3BlbiA9IGZhbHNlOwogCXN0cnVj dCBjaWZzX3NiX2luZm8gKmNpZnNfc2I7CiAJc3RydWN0IGNpZnNUY29uSW5mbyAqcFRjb247CiAJ c3RydWN0IGlub2RlICpuZXdJbm9kZSA9IE5VTEw7CiAJY2hhciAqZnVsbF9wYXRoID0gTlVMTDsK KwlzdHJ1Y3QgZmlsZSAqZmlscDsKIAogCXhpZCA9IEdldFhpZCgpOwogCkBAIC02MzIsMTIgKzY1 NSwyNyBAQCBjaWZzX2xvb2t1cChzdHJ1Y3QgaW5vZGUgKnBhcmVudF9kaXJfaW5vZGUsIHN0cnVj dCBkZW50cnkgKmRpcmVudHJ5LAogCX0KIAljRllJKDEsICgiRnVsbCBwYXRoOiAlcyBpbm9kZSA9 IDB4JXAiLCBmdWxsX3BhdGgsIGRpcmVudHJ5LT5kX2lub2RlKSk7CiAKLQlpZiAocFRjb24tPnVu aXhfZXh0KQotCQlyYyA9IGNpZnNfZ2V0X2lub2RlX2luZm9fdW5peCgmbmV3SW5vZGUsIGZ1bGxf cGF0aCwKLQkJCQkJICAgICAgcGFyZW50X2Rpcl9pbm9kZS0+aV9zYiwgeGlkKTsKLQllbHNlCisJ aWYgKHBUY29uLT51bml4X2V4dCkgeworCQlpZiAoIShuZC0+ZmxhZ3MgJiAoTE9PS1VQX1BBUkVO VCB8IExPT0tVUF9ESVJFQ1RPUlkpKSAmJgorCQkJCShuZC0+ZmxhZ3MgJiBMT09LVVBfT1BFTikp IHsKKwkJCWlmICghKChuZC0+aW50ZW50Lm9wZW4uZmxhZ3MgJiBPX0NSRUFUKSAmJgorCQkJCQko bmQtPmludGVudC5vcGVuLmZsYWdzICYgT19FWENMKSkpIHsKKwkJCQltb2RlID0gbmQtPmludGVu dC5vcGVuLmNyZWF0ZV9tb2RlICYKKwkJCQkJCX5jdXJyZW50LT5mcy0+dW1hc2s7CisJCQkJcmMg PSBjaWZzX3Bvc2l4X29wZW4oZnVsbF9wYXRoLCAmbmV3SW5vZGUsCisJCQkJCXBhcmVudF9kaXJf aW5vZGUtPmlfc2IsIG1vZGUsCisJCQkJCW5kLT5pbnRlbnQub3Blbi5mbGFncywgJm9wbG9jaywK KwkJCQkJJmZpbGVIYW5kbGUsIHhpZCk7CisJCQkJaWYgKChyYyAhPSAtRUlOVkFMKSAmJiAocmMg IT0gLUVPUE5PVFNVUFApKQorCQkJCQlwb3NpeF9vcGVuID0gdHJ1ZTsKKwkJCX0KKwkJfQorCQlp ZiAoIXBvc2l4X29wZW4pCisJCQlyYyA9IGNpZnNfZ2V0X2lub2RlX2luZm9fdW5peCgmbmV3SW5v ZGUsIGZ1bGxfcGF0aCwKKwkJCQkJCXBhcmVudF9kaXJfaW5vZGUtPmlfc2IsIHhpZCk7CisJfSBl bHNlCiAJCXJjID0gY2lmc19nZXRfaW5vZGVfaW5mbygmbmV3SW5vZGUsIGZ1bGxfcGF0aCwgTlVM TCwKLQkJCQkJIHBhcmVudF9kaXJfaW5vZGUtPmlfc2IsIHhpZCwgTlVMTCk7CisJCQkJcGFyZW50 X2Rpcl9pbm9kZS0+aV9zYiwgeGlkLCBOVUxMKTsKIAogCWlmICgocmMgPT0gMCkgJiYgKG5ld0lu b2RlICE9IE5VTEwpKSB7CiAJCWlmIChwVGNvbi0+bm9jYXNlKQpAQCAtNjQ1LDcgKzY4Myw4IEBA IGNpZnNfbG9va3VwKHN0cnVjdCBpbm9kZSAqcGFyZW50X2Rpcl9pbm9kZSwgc3RydWN0IGRlbnRy eSAqZGlyZW50cnksCiAJCWVsc2UKIAkJCWRpcmVudHJ5LT5kX29wID0gJmNpZnNfZGVudHJ5X29w czsKIAkJZF9hZGQoZGlyZW50cnksIG5ld0lub2RlKTsKLQorCQlpZiAocG9zaXhfb3BlbikKKwkJ CWZpbHAgPSBsb29rdXBfaW5zdGFudGlhdGVfZmlscChuZCwgZGlyZW50cnksIE5VTEwpOwogCQkv KiBzaW5jZSBwYXRocyBhcmUgbm90IGxvb2tlZCB1cCBieSBjb21wb25lbnQgLSB0aGUgcGFyZW50 CiAJCSAgIGRpcmVjdG9yaWVzIGFyZSBwcmVzdW1lZCB0byBiZSBnb29kIGhlcmUgKi8KIAkJcmVu ZXdfcGFyZW50YWxfdGltZXN0YW1wcyhkaXJlbnRyeSk7CmRpZmYgLS1naXQgYS9mcy9jaWZzL2Zp bGUuYyBiL2ZzL2NpZnMvZmlsZS5jCmluZGV4IDgxNzQ3YWMuLmMzZjUxZGUgMTAwNjQ0Ci0tLSBh L2ZzL2NpZnMvZmlsZS5jCisrKyBiL2ZzL2NpZnMvZmlsZS5jCkBAIC00Niw3ICs0Niw3IEBAIHN0 YXRpYyBpbmxpbmUgc3RydWN0IGNpZnNGaWxlSW5mbyAqY2lmc19pbml0X3ByaXZhdGUoCiAJbWVt c2V0KHByaXZhdGVfZGF0YSwgMCwgc2l6ZW9mKHN0cnVjdCBjaWZzRmlsZUluZm8pKTsKIAlwcml2 YXRlX2RhdGEtPm5ldGZpZCA9IG5ldGZpZDsKIAlwcml2YXRlX2RhdGEtPnBpZCA9IGN1cnJlbnQt PnRnaWQ7Ci0JaW5pdF9NVVRFWCgmcHJpdmF0ZV9kYXRhLT5maF9zZW0pOworCW11dGV4X2luaXQo JnByaXZhdGVfZGF0YS0+ZmhfbXV0ZXgpOwogCW11dGV4X2luaXQoJnByaXZhdGVfZGF0YS0+bG9j a19tdXRleCk7CiAJSU5JVF9MSVNUX0hFQUQoJnByaXZhdGVfZGF0YS0+bGxpc3QpOwogCXByaXZh dGVfZGF0YS0+cGZpbGUgPSBmaWxlOyAvKiBuZWVkZWQgZm9yIHdyaXRlcGFnZSAqLwpAQCAtMjg0 LDM1ICsyODQsMzQgQEAgaW50IGNpZnNfb3BlbihzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3Qg ZmlsZSAqZmlsZSkKIAljaWZzX3NiID0gQ0lGU19TQihpbm9kZS0+aV9zYik7CiAJdGNvbiA9IGNp ZnNfc2ItPnRjb247CiAKLQlpZiAoZmlsZS0+Zl9mbGFncyAmIE9fQ1JFQVQpIHsKLQkJLyogc2Vh cmNoIGlub2RlIGZvciB0aGlzIGZpbGUgYW5kIGZpbGwgaW4gZmlsZS0+cHJpdmF0ZV9kYXRhICov Ci0JCXBDaWZzSW5vZGUgPSBDSUZTX0koZmlsZS0+Zl9wYXRoLmRlbnRyeS0+ZF9pbm9kZSk7Ci0J CXJlYWRfbG9jaygmR2xvYmFsU01CU2VzbG9jayk7Ci0JCWxpc3RfZm9yX2VhY2godG1wLCAmcENp ZnNJbm9kZS0+b3BlbkZpbGVMaXN0KSB7Ci0JCQlwQ2lmc0ZpbGUgPSBsaXN0X2VudHJ5KHRtcCwg c3RydWN0IGNpZnNGaWxlSW5mbywKLQkJCQkJICAgICAgIGZsaXN0KTsKLQkJCWlmICgocENpZnNG aWxlLT5wZmlsZSA9PSBOVUxMKSAmJgotCQkJICAgIChwQ2lmc0ZpbGUtPnBpZCA9PSBjdXJyZW50 LT50Z2lkKSkgewotCQkJCS8qIG1vZGUgc2V0IGluIGNpZnNfY3JlYXRlICovCi0KLQkJCQkvKiBu ZWVkZWQgZm9yIHdyaXRlcGFnZSAqLwotCQkJCXBDaWZzRmlsZS0+cGZpbGUgPSBmaWxlOwotCi0J CQkJZmlsZS0+cHJpdmF0ZV9kYXRhID0gcENpZnNGaWxlOwotCQkJCWJyZWFrOwotCQkJfQotCQl9 Ci0JCXJlYWRfdW5sb2NrKCZHbG9iYWxTTUJTZXNsb2NrKTsKLQkJaWYgKGZpbGUtPnByaXZhdGVf ZGF0YSAhPSBOVUxMKSB7Ci0JCQlyYyA9IDA7Ci0JCQlGcmVlWGlkKHhpZCk7Ci0JCQlyZXR1cm4g cmM7Ci0JCX0gZWxzZSB7Ci0JCQlpZiAoZmlsZS0+Zl9mbGFncyAmIE9fRVhDTCkKLQkJCQljRVJS T1IoMSwgKCJjb3VsZCBub3QgZmluZCBmaWxlIGluc3RhbmNlIGZvciAiCi0JCQkJCSAgICJuZXcg ZmlsZSAlcCIsIGZpbGUpKTsKKwkvKiBzZWFyY2ggaW5vZGUgZm9yIHRoaXMgZmlsZSBhbmQgZmls bCBpbiBmaWxlLT5wcml2YXRlX2RhdGEgKi8KKwlwQ2lmc0lub2RlID0gQ0lGU19JKGZpbGUtPmZf cGF0aC5kZW50cnktPmRfaW5vZGUpOworCXJlYWRfbG9jaygmR2xvYmFsU01CU2VzbG9jayk7CisJ bGlzdF9mb3JfZWFjaCh0bXAsICZwQ2lmc0lub2RlLT5vcGVuRmlsZUxpc3QpIHsKKwkJcENpZnNG aWxlID0gbGlzdF9lbnRyeSh0bXAsIHN0cnVjdCBjaWZzRmlsZUluZm8sCisJCQkJICAgICAgIGZs aXN0KTsKKwkJaWYgKChwQ2lmc0ZpbGUtPnBmaWxlID09IE5VTEwpICYmCisJCSAgICAocENpZnNG aWxlLT5waWQgPT0gY3VycmVudC0+dGdpZCkpIHsKKwkJCS8qIG1vZGUgc2V0IGluIGNpZnNfY3Jl YXRlICovCisKKwkJCS8qIG5lZWRlZCBmb3Igd3JpdGVwYWdlICovCisJCQlwQ2lmc0ZpbGUtPnBm aWxlID0gZmlsZTsKKworCQkJZmlsZS0+cHJpdmF0ZV9kYXRhID0gcENpZnNGaWxlOworCQkJYnJl YWs7CiAJCX0KIAl9CisJcmVhZF91bmxvY2soJkdsb2JhbFNNQlNlc2xvY2spOworCisJaWYgKGZp bGUtPnByaXZhdGVfZGF0YSAhPSBOVUxMKSB7CisJCXJjID0gMDsKKwkJRnJlZVhpZCh4aWQpOwor CQlyZXR1cm4gcmM7CisJfSBlbHNlIHsKKwkJaWYgKChmaWxlLT5mX2ZsYWdzICYgT19DUkVBVCkg JiYgKGZpbGUtPmZfZmxhZ3MgJiBPX0VYQ0wpKQorCQkJY0VSUk9SKDEsICgiY291bGQgbm90IGZp bmQgZmlsZSBpbnN0YW5jZSBmb3IgIgorCQkJCSAgICJuZXcgZmlsZSAlcCIsIGZpbGUpKTsKKwl9 CiAKIAlmdWxsX3BhdGggPSBidWlsZF9wYXRoX2Zyb21fZGVudHJ5KGZpbGUtPmZfcGF0aC5kZW50 cnkpOwogCWlmIChmdWxsX3BhdGggPT0gTlVMTCkgewpAQCAtNTAwLDkgKzQ5OSw5IEBAIHN0YXRp YyBpbnQgY2lmc19yZW9wZW5fZmlsZShzdHJ1Y3QgZmlsZSAqZmlsZSwgYm9vbCBjYW5fZmx1c2gp CiAJCXJldHVybiAtRUJBREY7CiAKIAl4aWQgPSBHZXRYaWQoKTsKLQlkb3duKCZwQ2lmc0ZpbGUt PmZoX3NlbSk7CisJbXV0ZXhfdW5sb2NrKCZwQ2lmc0ZpbGUtPmZoX211dGV4KTsKIAlpZiAoIXBD aWZzRmlsZS0+aW52YWxpZEhhbmRsZSkgewotCQl1cCgmcENpZnNGaWxlLT5maF9zZW0pOworCQlt dXRleF9sb2NrKCZwQ2lmc0ZpbGUtPmZoX211dGV4KTsKIAkJRnJlZVhpZCh4aWQpOwogCQlyZXR1 cm4gMDsKIAl9CkBAIC01MzMsNyArNTMyLDcgQEAgc3RhdGljIGludCBjaWZzX3Jlb3Blbl9maWxl KHN0cnVjdCBmaWxlICpmaWxlLCBib29sIGNhbl9mbHVzaCkKIAlpZiAoZnVsbF9wYXRoID09IE5V TEwpIHsKIAkJcmMgPSAtRU5PTUVNOwogcmVvcGVuX2Vycm9yX2V4aXQ6Ci0JCXVwKCZwQ2lmc0Zp bGUtPmZoX3NlbSk7CisJCW11dGV4X2xvY2soJnBDaWZzRmlsZS0+ZmhfbXV0ZXgpOwogCQlGcmVl WGlkKHhpZCk7CiAJCXJldHVybiByYzsKIAl9CkBAIC01NzUsMTQgKzU3NCwxNCBAQCByZW9wZW5f ZXJyb3JfZXhpdDoKIAkJCSBjaWZzX3NiLT5sb2NhbF9ubHMsIGNpZnNfc2ItPm1udF9jaWZzX2Zs YWdzICYKIAkJCQlDSUZTX01PVU5UX01BUF9TUEVDSUFMX0NIUik7CiAJaWYgKHJjKSB7Ci0JCXVw KCZwQ2lmc0ZpbGUtPmZoX3NlbSk7CisJCW11dGV4X2xvY2soJnBDaWZzRmlsZS0+ZmhfbXV0ZXgp OwogCQljRllJKDEsICgiY2lmc19vcGVuIHJldHVybmVkIDB4JXgiLCByYykpOwogCQljRllJKDEs ICgib3Bsb2NrOiAlZCIsIG9wbG9jaykpOwogCX0gZWxzZSB7CiByZW9wZW5fc3VjY2VzczoKIAkJ cENpZnNGaWxlLT5uZXRmaWQgPSBuZXRmaWQ7CiAJCXBDaWZzRmlsZS0+aW52YWxpZEhhbmRsZSA9 IGZhbHNlOwotCQl1cCgmcENpZnNGaWxlLT5maF9zZW0pOworCQltdXRleF9sb2NrKCZwQ2lmc0Zp bGUtPmZoX211dGV4KTsKIAkJcENpZnNJbm9kZSA9IENJRlNfSShpbm9kZSk7CiAJCWlmIChwQ2lm c0lub2RlKSB7CiAJCQlpZiAoY2FuX2ZsdXNoKSB7Cg== --0016e645b76887de000466836302--