Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932555AbVINTCA (ORCPT ); Wed, 14 Sep 2005 15:02:00 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S932568AbVINTB7 (ORCPT ); Wed, 14 Sep 2005 15:01:59 -0400 Received: from NS8.Sony.CO.JP ([137.153.0.33]:12712 "EHLO ns8.sony.co.jp") by vger.kernel.org with ESMTP id S932555AbVINTB6 (ORCPT ); Wed, 14 Sep 2005 15:01:58 -0400 Message-ID: <43287317.9080509@sm.sony.co.jp> Date: Thu, 15 Sep 2005 03:59:35 +0900 From: "Machida, Hiroyuki" User-Agent: Mozilla Thunderbird 1.0.6 (Windows/20050716) X-Accept-Language: ja, en-us, en MIME-Version: 1.0 To: OGAWA Hirofumi CC: linux-kernel@vger.kernel.org Subject: Re: [PATCH][FAT] FAT dirent scan with hin take #3 References: <4313CBEF.9020505@sm.sony.co.jp> <4313E578.8070100@sm.sony.co.jp> <874q979qdj.fsf@devron.myhome.or.jp> <43156963.8020203@sm.sony.co.jp> <87irxm83eq.fsf@devron.myhome.or.jp> <431696BB.8050104@sm.sony.co.jp> <87hdd47k70.fsf@devron.myhome.or.jp> In-Reply-To: <87hdd47k70.fsf@devron.myhome.or.jp> Content-Type: multipart/mixed; boundary="------------000607070706050405020104" Sender: linux-kernel-owner@vger.kernel.org X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 16820 Lines: 269 This is a multi-part message in MIME format. --------------000607070706050405020104 Content-Type: text/plain; charset=ISO-2022-JP Content-Transfer-Encoding: 7bit OGAWA Hirofumi wrote: : > > > The fat_lookup_hint is one per task. And fat_lookup_hint is tracking > the task's access. If access is sequential, it returns the hint, and > if not, it returns 0. I made the dirty patch just for explaining what > I said. Sorry late, at the last weekend I looked into the patch you post and run it. I got your idea, now. I would propose following changes on it and attached modified patch into this mail. 1. The original patch has system wide 16 entries access-tracking buffer. I modified system has one access-tracking buffer for each mounted FS instance. And it allocates the buffer on mounting as a part of FS dependent super block. 2. On looking up hints, the original patch try to find the entry which has same pid and dir. If matched entry is not found, it uses always zero. However we can expect locality beyond process, so I changes a little bit, behavior of fail to find the matched entry. try to find the entry which has same pid and dir. if matched entry is not found, try to find recent access to same dir. 3. With the original code, the access-tracking buffer can hold just one entry for one pid. I think it is better to have few entries for one pid. I modified patch to have up to 3 entires (less than 1/4 of total entries) for each pid. 4. Originally window size to determine locality seems wide due to using max len of LFN(MSDOS_SLOTS), like; WIN_BOTTOM = 5 * MSDOS_SLOTS * size of entry We can use the value based on statistic instead of MSDOS_SLOTS. I checked with my FC3 installed system, most files(over 99%) have less than or equal to 48 chars file name length. So use 9 instead of 21(MSDOS_SLOTS) 5. Adding short name entry support. And I have fixed a bug which makes infinite loop on lookup empty dir after all files were removed. > However, these lookup-hint approaches seems the hack after all.... > Hhmmm... I have another idea as following; On reading blocks ahead, try to build dentry caches for all FAT dir entries which reside in those blocks. And start dir-scan at some position close to bottom of the latest read-ahead block, instead of zero. However, I guess this tends to consume dentry caches and it may have affects on other area. As you said, I think "lookup-hint" is hack, but not so bad. Because it has no side effect to other area and memory consumption is predictable. -- Hiroyuki Machida --------------000607070706050405020104 Content-Type: text/plain; name="fat_lookup-hint_1.patch" Content-Transfer-Encoding: base64 Content-Disposition: inline; filename="fat_lookup-hint_1.patch" U2lnbmVkLW9mZi1ieTogSGlyb3l1a2kgTWFjaGlkYSA8bWFjaGlkYUBzbS5zb255LmNvLmpw PgpTaWduZWQtb2ZmLWJ5OiBPR0FXQSBIaXJvZnVtaSA8aGlyb2Z1bWlAbWFpbC5wYXJrbmV0 LmNvLmpwPgotLS0KCiBmcy9mYXQvZGlyLmMgICAgICAgICAgICAgfCAgMjMyICsrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tCiBmcy9mYXQvaW5vZGUu YyAgICAgICAgICAgfCAgICA3ICsKIGluY2x1ZGUvbGludXgvbXNkb3NfZnMuaCB8ICAgMTkg KysrCgoKCiAzIGZpbGVzIGNoYW5nZWQsIDI0NiBpbnNlcnRpb25zKCspLCAxMiBkZWxldGlv bnMoLSkKZGlmZiAtciAtdXAgbGludXgtMi42LjEzL2ZzL2ZhdC9kaXIuYyBsaW51eC0yLjYu MTMtc2NhbjIvZnMvZmF0L2Rpci5jCi0tLSBsaW51eC0yLjYuMTMvZnMvZmF0L2Rpci5jCTIw MDUtMDgtMjkgMDg6NDE6MDEuMDAwMDAwMDAwICswOTAwCisrKyBsaW51eC0yLjYuMTMtc2Nh bjIvZnMvZmF0L2Rpci5jCTIwMDUtMDktMTQgMTc6MjA6MzguMjIwNzY3NDQ5ICswOTAwCkBA IC0yMiw2ICsyMiwxODUgQEAKICNpbmNsdWRlIDxsaW51eC9idWZmZXJfaGVhZC5oPgogI2lu Y2x1ZGUgPGFzbS91YWNjZXNzLmg+CiAKK3ZvaWQgZmF0X2xrdXBfaGludF9pbml0X3NiKHN0 cnVjdCBzdXBlcl9ibG9jayAqc2IpCit7CisJc3RydWN0IG1zZG9zX3NiX2luZm8gKnNiaSA9 IE1TRE9TX1NCKHNiKTsKKworCXNiaS0+bGt1cF9oaW50X2xvY2sgPSBTUElOX0xPQ0tfVU5M T0NLRUQ7CisJSU5JVF9MSVNUX0hFQUQoJnNiaS0+bGt1cF9oaW50X2hlYWQpOworCXNiaS0+ bGt1cF9oaW50X2ZyZWVtYXAgPSAwOworCXNiaS0+bGt1cF9oaW50X2ZyZWVtYXAgPSB+c2Jp LT5sa3VwX2hpbnRfZnJlZW1hcDsKK30KKwordm9pZCBmYXRfbGt1cF9oaW50X2ludmFsKHN0 cnVjdCBpbm9kZSAqZGlyKQoreworCXN0cnVjdCBzdXBlcl9ibG9jayAqc2IgPSBkaXItPmlf c2I7CisJc3RydWN0IG1zZG9zX3NiX2luZm8gKnNiaSA9IE1TRE9TX1NCKHNiKTsKKwlzdHJ1 Y3QgZmF0X2xvb2t1cF9oaW50ICpoaW50LCAqbjsKKwlpbnQgaTsKKworCXNwaW5fbG9jaygm c2JpLT5sa3VwX2hpbnRfbG9jayk7CisJbGlzdF9mb3JfZWFjaF9lbnRyeV9zYWZlKGhpbnQs IG4sICZzYmktPmxrdXBfaGludF9oZWFkLCBscnVfbGlzdCkgeworCQlpZiAoaGludC0+ZGly ID09IGRpcikgeworCQkJbGlzdF9kZWxfaW5pdCgmaGludC0+bHJ1X2xpc3QpOworCQkJaSA9 IGhpbnQgLSAmKHNiaS0+bGt1cF9oaW50WzBdKTsKKwkJCXNiaS0+bGt1cF9oaW50X2ZyZWVt YXAgfD0gKDEgPDwgaSk7CisJCX0KKwl9CisJc3Bpbl91bmxvY2soJnNiaS0+bGt1cF9oaW50 X2xvY2spOworfQorCisvKiAKKyAqIEFWR19NU0RPU19TTE9UUyBpcyBzZWxlY3RlZCBzbyB0 aGF0IGl0IGNhbiBzdG9yZSA0OCBjaGFycyBmaWxlIG5hbWUgbGVuZ3RoLgorICoKKyAqIEFj Y29yZGluZyByYXVnaCBvYnNlcnZhdGlvbiwgbW9zdCBmaWxlcyBpbiBMaW51eCBpbnN0YWxs ZWQgc3lzdGVtIGhhdmUgCisgKiBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gNDggY2hhcnMgZmls ZSBuYW1lIGxlbmd0aC4gCisgKgorICogRm9sbG93aW5nIGlzIG9uZSBvZiBzdGF0aXN0aWMg aW5mb3JtYXRpb247CisgKgorICoJdG90YWwgIyBvZiBmaWxlcygqMSkgCQkJOTE5MworICoJ bWF4IGxlbmd0aCBvZiBmaWxlIG5hbWUJCQk1MiBjaGFycworICoKKyAqCSMgb2YgZmlsZXMg b3ZlciA0OCBjaGFycyBuYW1lIGxlbmd0aAkzNgorICoJICAlIGNvdmVyZWQgYnkgNDggY2hh cnMgbmFtZSBsZW5ndGgJIDk5LjYlCisgKgorICoJIyBvZiBmaWxlcyBvdmVyIDMyIGNoYXJz IG5hbWUgbGVuZ3RoCTUxNworICoJICAlIGNvdmVyZWQgYnkgMzIgY2hhcnMgbmFtZSBsZW5n dGgJIDk0LjMlCisgKgorICoJKjEpICMgb2YgZmlsZSwgZGlyIGFuZCBzeW1saW5rIHdoaWNo IGhhcyBvdmVyIDIgY2hhcnMgCisgKglmaWxlIG5hbWUgbGVuZ3RoLgorICogCisgKi8KKyNk ZWZpbmUgQVZHX01TRE9TX1NMT1RTCSg4KzEpCisjZGVmaW5lIFdJTl9MRk5fVE9QCSgzICog QVZHX01TRE9TX1NMT1RTICogc2l6ZW9mKHN0cnVjdCBtc2Rvc19kaXJfZW50cnkpKQorI2Rl ZmluZSBXSU5fTEZOX0JPVFRPTQkoNSAqIEFWR19NU0RPU19TTE9UUyAqIHNpemVvZihzdHJ1 Y3QgbXNkb3NfZGlyX2VudHJ5KSkKKworI2RlZmluZSBXSU5fVE9QCQkoMyAqIHNpemVvZihz dHJ1Y3QgbXNkb3NfZGlyX2VudHJ5KSkKKyNkZWZpbmUgV0lOX0JPVFRPTQkoNSAqIHNpemVv ZihzdHJ1Y3QgbXNkb3NfZGlyX2VudHJ5KSkKKworc3RhdGljIGlubGluZQorbG9mZl90IGdl dF9zeXN3aWRlX2hpbnQobG9mZl90IHBvcywgc3RydWN0IGZhdF9sb29rdXBfaGludCAqaGlu dCkKK3sKKwkvKiAKKwkgKiBOT1RFOiBJZiB5b3UgZG9uJ3QgZXhwZWN0IGxvY2FsaXR5IGJl eW9uZCBwcm9jZXNzLCAKKwkgKiBtYWtlIHRoaXMgcmV0dXJuIDAgYWx3YXlzLCBpbnN0ZWFk IG9mIGZvbGxvd2luZy4KKwkgKi8KKwlyZXR1cm4gIChwb3MgPT0gMCkgPyBoaW50LT5sYXN0 X3BvcyA6IHBvczsKK30KKworc3RhdGljIGxvZmZfdCBmYXRfbGt1cF9oaW50X2dldChzdHJ1 Y3QgaW5vZGUgKmRpciwgaW50IGlzX2xmbikKK3sKKwlzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNi ID0gZGlyLT5pX3NiOworCXN0cnVjdCBmYXRfbG9va3VwX2hpbnQgKmhpbnQ7CisJc3RydWN0 IG1zZG9zX3NiX2luZm8gKnNiaSA9IE1TRE9TX1NCKHNiKTsKKwlsb2ZmX3Qgd2luX3RvcDsK Kwl1bnNpZ25lZCBpbnQgcm5kX2ZsZzsKKwlsb2ZmX3QgcG9zID0gMDsKKworCWlmIChpc19s Zm4pIHsKKwkJcm5kX2ZsZyA9IEZBVF9MS1VQX1NUX0xGTl9SQU5ET007CisJCXdpbl90b3Ag PSBXSU5fTEZOX1RPUDsKKwl9IGVsc2UgeworCQlybmRfZmxnID0gRkFUX0xLVVBfU1RfUkFO RE9NOworCQl3aW5fdG9wID0gV0lOX1RPUDsKKwl9CisKKwlzcGluX2xvY2soJnNiaS0+bGt1 cF9oaW50X2xvY2spOworCWxpc3RfZm9yX2VhY2hfZW50cnkoaGludCwgJnNiaS0+bGt1cF9o aW50X2hlYWQsIGxydV9saXN0KSB7CisJCWlmIChoaW50LT5kaXIgPT0gZGlyKSB7CisJCQlp ZiAoIShoaW50LT5zdGF0ZSAmIHJuZF9mbGcpKSB7CisJCQkJaWYgKGhpbnQtPnBpZCA9PSBj dXJyZW50LT5waWQpICB7CisJCQkJCXBvcyA9IGhpbnQtPmxhc3RfcG9zOworCQkJCQlicmVh azsKKwkJCQl9CisJCQkJLyogZXhwZWN0IGxvY2FsaXR5IGJleW9uZCBwcm9jZXNzICovCisJ CQkJcG9zID0gZ2V0X3N5c3dpZGVfaGludChwb3MsIGhpbnQpOworCQkJfQorCQl9CisJfQor CXNwaW5fdW5sb2NrKCZzYmktPmxrdXBfaGludF9sb2NrKTsKKwlyZXR1cm4gbWF4KDBMTCwg cG9zIC0gd2luX3RvcCk7Cit9CisKKy8qIAorICogTk9URTogSWYgeW91IGRvbid0IHdhbnQg bXVsdGlwbGUgZW50cmllcyBmb3IgCisgKiBzYW1lIHBpZCwgc2V0IHRoaXMgdG8gMS4KKyAq LworI2RlZmluZSBMS1VQX01VTFRJRU5UX01BWAkoRkFUX0xLVVBfSElOVF9NQVgvNC0xKQor CisKKy8qIGNhbGxlciBtdXN0IGhvbGQgZGlyLT5pX3NlbSAqLworc3RhdGljIHZvaWQgZmF0 X2xrdXBfaGludF9hZGQoc3RydWN0IGlub2RlICpkaXIsIGxvZmZfdCBwb3MpCit7CisJc3Ry dWN0IHN1cGVyX2Jsb2NrICpzYiA9IGRpci0+aV9zYjsKKwlzdHJ1Y3QgZmF0X2xvb2t1cF9o aW50ICpwLCAqaGludCA9IE5VTEw7CisJbG9mZl90IHdpbl9zdGFydCwgd2luX2VuZDsKKwlz dHJ1Y3QgbXNkb3Nfc2JfaW5mbyAqc2JpID0gTVNET1NfU0Ioc2IpOworCWludCBucl9waWRf bWF0Y2ggPSAwOworCXVuc2lnbmVkIGludCBzdGF0ZTsKKworCXNwaW5fbG9jaygmc2JpLT5s a3VwX2hpbnRfbG9jayk7CisJLyogZmluZCBvdXQgc2FtZSBwaWQgZW50cnkgKi8KKwlsaXN0 X2Zvcl9lYWNoX2VudHJ5KHAsICZzYmktPmxrdXBfaGludF9oZWFkLCBscnVfbGlzdCkgewor CQlpZiAocC0+cGlkID09IGN1cnJlbnQtPnBpZCkgeworCQkJbnJfcGlkX21hdGNoICsrOwor CQkJaWYgKHAtPmRpciA9PSBkaXIpIHsKKwkJCQloaW50ID0gcDsKKwkJCQlnb3RvIG1hdGNo OworCQkJfQorCQkJaWYgKCFoaW50KSAKKwkJCQloaW50ID0gcDsKKwkJfQorCX0KKworCWlm IChucl9waWRfbWF0Y2ggPCBMS1VQX01VTFRJRU5UX01BWCkKKwkJaGludCA9IE5VTEw7CisK KwlpZiAoaGludCA9PSBOVUxMKSB7CisJCWludCBmcmVlX2hpbnQ7CisJCWZyZWVfaGludCA9 IGZmcyhzYmktPmxrdXBfaGludF9mcmVlbWFwKTsKKwkJaWYgKGZyZWVfaGludCkgeworCQkJ LyogYWRkIHRoZSBuZXcgZW50cnkgKi8KKwkJCWZyZWVfaGludCAtLTsKKwkJCXNiaS0+bGt1 cF9oaW50X2ZyZWVtYXAgJj0gfiAoMTw8KGZyZWVfaGludCkpOworCQkJaGludCA9ICZzYmkt PmxrdXBfaGludFtmcmVlX2hpbnRdOworCQkJSU5JVF9MSVNUX0hFQUQoJmhpbnQtPmxydV9s aXN0KTsKKwkJCS8qIGRvbid0IG5lZWQgdG8gcmVjaGVjayBoaW50ICovCisJCX0gZWxzZSB7 CisJCQkvKiByZXBsYWNlIHRoZSBsYXN0IGVudHJ5ICovCisJCQlzdHJ1Y3QgbGlzdF9oZWFk ICpwID0gc2JpLT5sa3VwX2hpbnRfaGVhZC5wcmV2OworCQkJaGludCA9IGxpc3RfZW50cnko cCwgc3RydWN0IGZhdF9sb29rdXBfaGludCwgbHJ1X2xpc3QpOworCQl9CisJCWhpbnQtPnBp ZCA9IGN1cnJlbnQtPnBpZDsKKwkJaGludC0+ZGlyID0gZGlyOworCQloaW50LT5sYXN0X3Bv cyA9IDA7CisJfQorCittYXRjaDoKKwlzdGF0ZSA9IChGQVRfTEtVUF9TVF9SQU5ET00gfCBG QVRfTEtVUF9TVF9MRk5fUkFORE9NKTsKKwloaW50LT5sYXN0X3BvcyA9IHBvczsKKwlpZiAo aGludC0+ZGlyICE9IGRpcikgeworCQloaW50LT5kaXIgPSBkaXI7CisJfSBlbHNlIHsKKwkJ d2luX3N0YXJ0ID0gaGludC0+bGFzdF9wb3MgLSBXSU5fVE9QOworCQl3aW5fZW5kID0gaGlu dC0+bGFzdF9wb3MgKyBXSU5fQk9UVE9NOworCQlpZiAod2luX3N0YXJ0IDw9IHBvcyAmJiBw b3MgPD0gd2luX2VuZCkgeworCQkJc3RhdGUgJj0gfkZBVF9MS1VQX1NUX1JBTkRPTTsKKwkJ fQorCQl3aW5fc3RhcnQgPSBoaW50LT5sYXN0X3BvcyAtIFdJTl9MRk5fVE9QOworCQl3aW5f ZW5kID0gaGludC0+bGFzdF9wb3MgKyBXSU5fTEZOX0JPVFRPTTsKKwkJaWYgKHdpbl9zdGFy dCA8PSBwb3MgJiYgcG9zIDw9IHdpbl9lbmQpIHsKKwkJCXN0YXRlICY9IH5GQVRfTEtVUF9T VF9MRk5fUkFORE9NOworCQl9CisJfQorCWhpbnQtPnN0YXRlID0gc3RhdGU7CisKKwkvKiB1 cGRhdGUgTFJVIGxpc3QgKi8KKwlsaXN0X2RlbCgmaGludC0+bHJ1X2xpc3QpOworCWxpc3Rf YWRkKCZoaW50LT5scnVfbGlzdCwgJnNiaS0+bGt1cF9oaW50X2hlYWQpOwkvKiBwdXQgaGlu dCB0byBoZWFkICovCisJc3Bpbl91bmxvY2soJnNiaS0+bGt1cF9oaW50X2xvY2spOworfQor CiBzdGF0aWMgaW5saW5lIGxvZmZfdCBmYXRfbWFrZV9pX3BvcyhzdHJ1Y3Qgc3VwZXJfYmxv Y2sgKnNiLAogCQkJCSAgICBzdHJ1Y3QgYnVmZmVyX2hlYWQgKmJoLAogCQkJCSAgICBzdHJ1 Y3QgbXNkb3NfZGlyX2VudHJ5ICpkZSkKQEAgLTIxOCwxMyArMzk3LDIzIEBAIGludCBmYXRf c2VhcmNoX2xvbmcoc3RydWN0IGlub2RlICppbm9kZSwKIAlpbnQgdXRmOCA9IHNiaS0+b3B0 aW9ucy51dGY4OwogCWludCBhbnljYXNlID0gKHNiaS0+b3B0aW9ucy5uYW1lX2NoZWNrICE9 ICdzJyk7CiAJdW5zaWduZWQgc2hvcnQgb3B0X3Nob3J0bmFtZSA9IHNiaS0+b3B0aW9ucy5z aG9ydG5hbWU7Ci0JbG9mZl90IGNwb3MgPSAwOwogCWludCBjaGwsIGksIGosIGxhc3RfdSwg ZXJyOworCWxvZmZfdCBjcG9zLCBzdGFydF9vZmY7CisJaW50IHJlYWNoX2JvdHRvbSA9IDA7 CiAKKwlzdGFydF9vZmYgPSBjcG9zID0gZmF0X2xrdXBfaGludF9nZXQoaW5vZGUsIDEpOwog CWVyciA9IC1FTk9FTlQ7CiAJd2hpbGUoMSkgewotCQlpZiAoZmF0X2dldF9lbnRyeShpbm9k ZSwgJmNwb3MsICZiaCwgJmRlKSA9PSAtMSkKK3RvcDoKKwkJaWYgKHJlYWNoX2JvdHRvbSAm JiBjcG9zID49IHN0YXJ0X29mZikKIAkJCWdvdG8gRU9EaXI7CisJCWlmIChmYXRfZ2V0X2Vu dHJ5KGlub2RlLCAmY3BvcywgJmJoLCAmZGUpID09IC0xKSB7CisJCQlpZiAoIXN0YXJ0X29m ZiB8fCByZWFjaF9ib3R0b20pCisJCQkJZ290byBFT0RpcjsKKwkJCXJlYWNoX2JvdHRvbSsr OworCQkJY3BvcyA9IDA7CisJCQljb250aW51ZTsKKwkJfQogcGFyc2VfcmVjb3JkOgogCQlu cl9zbG90cyA9IDA7CiAJCWlmIChkZS0+bmFtZVswXSA9PSBERUxFVEVEX0ZMQUcpCkBAIC0y NzQsOCArNDYzLDEzIEBAIHBhcnNlX2xvbmc6CiAJCQkJaWYgKGRzLT5pZCAmIDB4NDApIHsK IAkJCQkJdW5pY29kZVtvZmZzZXQgKyAxM10gPSAwOwogCQkJCX0KLQkJCQlpZiAoZmF0X2dl dF9lbnRyeShpbm9kZSwgJmNwb3MsICZiaCwgJmRlKSA8IDApCi0JCQkJCWdvdG8gRU9EaXI7 CisJCQkJaWYgKGZhdF9nZXRfZW50cnkoaW5vZGUsICZjcG9zLCAmYmgsICZkZSkgPCAwKSB7 CisJCQkJCWlmICghc3RhcnRfb2ZmIHx8IHJlYWNoX2JvdHRvbSkKKwkJCQkJCWdvdG8gRU9E aXI7CisJCQkJCXJlYWNoX2JvdHRvbSsrOworCQkJCQljcG9zID0gMDsKKwkJCQkJZ290byB0 b3A7CisJCQkJfQogCQkJCWlmIChzbG90ID09IDApCiAJCQkJCWJyZWFrOwogCQkJCWRzID0g KHN0cnVjdCBtc2Rvc19kaXJfc2xvdCAqKSBkZTsKQEAgLTM2Myw2ICs1NTcsNyBAQCBGb3Vu ZDoKIAlzaW5mby0+ZGUgPSBkZTsKIAlzaW5mby0+YmggPSBiaDsKIAlzaW5mby0+aV9wb3Mg PSBmYXRfbWFrZV9pX3BvcyhzYiwgc2luZm8tPmJoLCBzaW5mby0+ZGUpOworCWZhdF9sa3Vw X2hpbnRfYWRkKGlub2RlLCBzaW5mby0+c2xvdF9vZmYpOwogCWVyciA9IDA7CiBFT0RpcjoK IAlpZiAodW5pY29kZSkKQEAgLTgzOCwxNiArMTAzMywyOSBAQCBpbnQgZmF0X3NjYW4oc3Ry dWN0IGlub2RlICpkaXIsIGNvbnN0IHVuCiAJICAgICBzdHJ1Y3QgZmF0X3Nsb3RfaW5mbyAq c2luZm8pCiB7CiAJc3RydWN0IHN1cGVyX2Jsb2NrICpzYiA9IGRpci0+aV9zYjsKKwlpbnQg cmVhY2hfYm90dG9tID0gMDsKKwlsb2ZmX3Qgc3RhcnRfb2ZmOwogCi0Jc2luZm8tPnNsb3Rf b2ZmID0gMDsKKwlzdGFydF9vZmYgPSBzaW5mby0+c2xvdF9vZmYgPSBmYXRfbGt1cF9oaW50 X2dldChkaXIsIDApOwogCXNpbmZvLT5iaCA9IE5VTEw7Ci0Jd2hpbGUgKGZhdF9nZXRfc2hv cnRfZW50cnkoZGlyLCAmc2luZm8tPnNsb3Rfb2ZmLCAmc2luZm8tPmJoLAotCQkJCSAgICZz aW5mby0+ZGUpID49IDApIHsKLQkJaWYgKCFzdHJuY21wKHNpbmZvLT5kZS0+bmFtZSwgbmFt ZSwgTVNET1NfTkFNRSkpIHsKLQkJCXNpbmZvLT5zbG90X29mZiAtPSBzaXplb2YoKnNpbmZv LT5kZSk7Ci0JCQlzaW5mby0+bnJfc2xvdHMgPSAxOwotCQkJc2luZm8tPmlfcG9zID0gZmF0 X21ha2VfaV9wb3Moc2IsIHNpbmZvLT5iaCwgc2luZm8tPmRlKTsKLQkJCXJldHVybiAwOwor CXdoaWxlICgxKSB7CisJCWlmICAoZmF0X2dldF9zaG9ydF9lbnRyeShkaXIsICZzaW5mby0+ c2xvdF9vZmYsICZzaW5mby0+YmgsCisJCQkJICAgICAgICAgJnNpbmZvLT5kZSkgPj0gMCkg eworCQkJaWYgKCFzdHJuY21wKHNpbmZvLT5kZS0+bmFtZSwgbmFtZSwgTVNET1NfTkFNRSkp IHsKKwkJCQlzaW5mby0+c2xvdF9vZmYgLT0gc2l6ZW9mKCpzaW5mby0+ZGUpOworCQkJCXNp bmZvLT5ucl9zbG90cyA9IDE7CisJCQkJc2luZm8tPmlfcG9zID0gZmF0X21ha2VfaV9wb3Mo c2IsIHNpbmZvLT5iaCwgCisJCQkJCQkJICAgICAgc2luZm8tPmRlKTsKKwkJCQlmYXRfbGt1 cF9oaW50X2FkZChkaXIsIHNpbmZvLT5zbG90X29mZik7CisJCQkJcmV0dXJuIDA7CisJCQl9 CisJCQlpZiAocmVhY2hfYm90dG9tICYmIChzdGFydF9vZmYgPD0gc2luZm8tPnNsb3Rfb2Zm KSkgCisJCQkJYnJlYWs7CisJCX0gZWxzZSB7CisJCQlpZiAoIXN0YXJ0X29mZiB8fCByZWFj aF9ib3R0b20pCisJCQkJYnJlYWs7CisJCQlyZWFjaF9ib3R0b20gKys7CisJCQlzaW5mby0+ c2xvdF9vZmYgPSAwOwogCQl9CiAJfQogCXJldHVybiAtRU5PRU5UOwpkaWZmIC1yIC11cCBs aW51eC0yLjYuMTMvZnMvZmF0L2lub2RlLmMgbGludXgtMi42LjEzLXNjYW4yL2ZzL2ZhdC9p bm9kZS5jCi0tLSBsaW51eC0yLjYuMTMvZnMvZmF0L2lub2RlLmMJMjAwNS0wOC0yOSAwODo0 MTowMS4wMDAwMDAwMDAgKzA5MDAKKysrIGxpbnV4LTIuNi4xMy1zY2FuMi9mcy9mYXQvaW5v ZGUuYwkyMDA1LTA5LTE0IDE3OjI0OjIxLjQ0NjA5MTE3MCArMDkwMApAQCAtMzQyLDYgKzM0 Miw4IEBAIHN0YXRpYyB2b2lkIGZhdF9kZWxldGVfaW5vZGUoc3RydWN0IGlub2QKIAljbGVh cl9pbm9kZShpbm9kZSk7CiB9CiAKK2V4dGVybiB2b2lkIGZhdF9sa3VwX2hpbnRfaW52YWwo c3RydWN0IGlub2RlKik7CisKIHN0YXRpYyB2b2lkIGZhdF9jbGVhcl9pbm9kZShzdHJ1Y3Qg aW5vZGUgKmlub2RlKQogewogCXN0cnVjdCBtc2Rvc19zYl9pbmZvICpzYmkgPSBNU0RPU19T Qihpbm9kZS0+aV9zYik7CkBAIC0zNDksNiArMzUxLDcgQEAgc3RhdGljIHZvaWQgZmF0X2Ns ZWFyX2lub2RlKHN0cnVjdCBpbm9kZQogCWlmIChpc19iYWRfaW5vZGUoaW5vZGUpKQogCQly ZXR1cm47CiAJbG9ja19rZXJuZWwoKTsKKwlmYXRfbGt1cF9oaW50X2ludmFsKGlub2RlKTsK IAlzcGluX2xvY2soJnNiaS0+aW5vZGVfaGFzaF9sb2NrKTsKIAlmYXRfY2FjaGVfaW52YWxf aW5vZGUoaW5vZGUpOwogCWhsaXN0X2RlbF9pbml0KCZNU0RPU19JKGlub2RlKS0+aV9mYXRf aGFzaCk7CkBAIC0xMDQyLDYgKzEwNDUsOCBAQCBzdGF0aWMgaW50IGZhdF9yZWFkX3Jvb3Qo c3RydWN0IGlub2RlICppCiAJcmV0dXJuIDA7CiB9CiAKK2V4dGVybiB2b2lkIGZhdF9sa3Vw X2hpbnRfaW5pdF9zYihzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiKTsKKwogLyoKICAqIFJlYWQg dGhlIHN1cGVyIGJsb2NrIG9mIGFuIE1TLURPUyBGUy4KICAqLwpAQCAtMTMwMiw2ICsxMzA3 LDggQEAgaW50IGZhdF9maWxsX3N1cGVyKHN0cnVjdCBzdXBlcl9ibG9jayAqcwogCQlnb3Rv IG91dF9mYWlsOwogCX0KIAorCWZhdF9sa3VwX2hpbnRfaW5pdF9zYihzYik7CisKIAlyZXR1 cm4gMDsKIAogb3V0X2ludmFsaWQ6CmRpZmYgLXIgLXVwIGxpbnV4LTIuNi4xMy9pbmNsdWRl L2xpbnV4L21zZG9zX2ZzLmggbGludXgtMi42LjEzLXNjYW4yL2luY2x1ZGUvbGludXgvbXNk b3NfZnMuaAotLS0gbGludXgtMi42LjEzL2luY2x1ZGUvbGludXgvbXNkb3NfZnMuaAkyMDA1 LTA4LTI5IDA4OjQxOjAxLjAwMDAwMDAwMCArMDkwMAorKysgbGludXgtMi42LjEzLXNjYW4y L2luY2x1ZGUvbGludXgvbXNkb3NfZnMuaAkyMDA1LTA5LTE0IDE3OjIyOjM4LjIyMzYyOTQw OCArMDkwMApAQCAtMTg1LDYgKzE4NSwxOSBAQCBzdHJ1Y3QgZmF0X3Nsb3RfaW5mbyB7CiAj aW5jbHVkZSA8bGludXgvbmxzLmg+CiAjaW5jbHVkZSA8bGludXgvZnMuaD4KIAorI2RlZmlu ZSBGQVRfTEtVUF9ISU5UX01BWCAgICAgMTYKKy8qIGFzc3VtZSBGQVRfTEtVUF9ISU5UX01B WCA8PSBzaXplb2YobG9uZykqOCAqLworCitzdHJ1Y3QgZmF0X2xvb2t1cF9oaW50IHsKKwlz dHJ1Y3QgbGlzdF9oZWFkIGxydV9saXN0OworCXBpZF90IHBpZDsKKwlzdHJ1Y3QgaW5vZGUg KmRpcjsKKwlsb2ZmX3QgbGFzdF9wb3M7CisjZGVmaW5lIEZBVF9MS1VQX1NUX1JBTkRPTSAg ICAgICAxCisjZGVmaW5lIEZBVF9MS1VQX1NUX0xGTl9SQU5ET00gICAgICAgMgorCXVuc2ln bmVkIGludCBzdGF0ZTsKK307CisKIHN0cnVjdCBmYXRfbW91bnRfb3B0aW9ucyB7CiAJdWlk X3QgZnNfdWlkOwogCWdpZF90IGZzX2dpZDsKQEAgLTI0MSw2ICsyNTQsMTIgQEAgc3RydWN0 IG1zZG9zX3NiX2luZm8gewogCiAJc3BpbmxvY2tfdCBpbm9kZV9oYXNoX2xvY2s7CiAJc3Ry dWN0IGhsaXN0X2hlYWQgaW5vZGVfaGFzaHRhYmxlW0ZBVF9IQVNIX1NJWkVdOworCisJLyog ZGlyZW50IGxvb2t1cCBoaW50cyAqLworCXNwaW5sb2NrX3QgbGt1cF9oaW50X2xvY2s7CisJ c3RydWN0IGxpc3RfaGVhZCBsa3VwX2hpbnRfaGVhZDsKKwlzdHJ1Y3QgZmF0X2xvb2t1cF9o aW50IGxrdXBfaGludFtGQVRfTEtVUF9ISU5UX01BWF07CisJdW5zaWduZWQgbGt1cF9oaW50 X2ZyZWVtYXA6RkFUX0xLVVBfSElOVF9NQVg7CiB9OwogCiAjZGVmaW5lIEZBVF9DQUNIRV9W QUxJRAkwCS8qIHNwZWNpYWwgY2FzZSBmb3IgdmFsaWQgY2FjaGUgKi8K --------------000607070706050405020104-- - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/