From: Shantanu Goel Subject: Re: [PATCH 2.6.3] Add write throttling to NFS client Date: Tue, 24 Feb 2004 19:19:03 -0800 (PST) Sender: nfs-admin@lists.sourceforge.net Message-ID: <20040225031903.64671.qmail@web12821.mail.yahoo.com> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="0-1863646955-1077679143=:64532" Return-path: Received: from sc8-sf-mx1-b.sourceforge.net ([10.3.1.11] helo=sc8-sf-mx1.sourceforge.net) by sc8-sf-list2.sourceforge.net with esmtp (Exim 4.30) id 1Avpag-0004om-4m for nfs@lists.sourceforge.net; Tue, 24 Feb 2004 19:20:06 -0800 Received: from web12821.mail.yahoo.com ([216.136.174.202]) by sc8-sf-mx1.sourceforge.net with smtp (Exim 4.30) id 1AvpZg-0000lR-4L for nfs@lists.sourceforge.net; Tue, 24 Feb 2004 19:19:04 -0800 To: nfs@lists.sourceforge.net Errors-To: nfs-admin@lists.sourceforge.net List-Unsubscribe: , List-Id: Discussion of NFS under Linux development, interoperability, and testing. List-Post: List-Help: List-Subscribe: , List-Archive: --0-1863646955-1077679143=:64532 Content-Type: text/plain; charset=us-ascii Content-Id: Content-Disposition: inline Apologies for replying to my own message. I realized there was a bug in the patch shortly after sending it. Attached is a fixed one. Thanks, Shantanu --- Shantanu Goel wrote: > Hi, > > I posted an earlier version of the attached patch to > the kernel mailing list a few days back but did not > receive any feedback. Hopefully, I'll have better > luck here. ;-) > > The stock NFS client does not regulate the # async > write requests causing other accesses to block in > the > presence of streaming writes. This patch adds such > support. For instance, a single dd running in the > background writing to a file in my home directory > causes my X session to hang until dd exits. With > this > patch the session does not experience such hangs. > Please test it out and let me know if you see > anything > problems. I'd like to see this integrated soon. > > Thanks, > Shantanu __________________________________ Do you Yahoo!? Yahoo! Mail SpamGuard - Read only the mail you want. http://antispam.yahoo.com/tools --0-1863646955-1077679143=:64532 Content-Type: application/octet-stream; name="nfs-write-throttle.patch" Content-Transfer-Encoding: base64 Content-Description: nfs-write-throttle.patch Content-Disposition: attachment; filename="nfs-write-throttle.patch" SW5kZXg6IGluY2x1ZGUvbGludXgvbmZzX3BhZ2UuaAo9PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09Ci0tLSBvcmlnL2luY2x1ZGUvbGludXgvbmZzX3BhZ2UuaAko Li4uL3N0b2NrKQkocmV2aXNpb24gNykKKysrIG5mcy13cml0ZS10aHJvdHRs ZS9pbmNsdWRlL2xpbnV4L25mc19wYWdlLmgJKC4uLi9uZnMtd3JpdGUtdGhy b3R0bGUpCShyZXZpc2lvbiA3KQpAQCAtNTMsNyArNTMsOCBAQAogZXh0ZXJu CXZvaWQgbmZzX2xpc3RfYWRkX3JlcXVlc3Qoc3RydWN0IG5mc19wYWdlICos IHN0cnVjdCBsaXN0X2hlYWQgKik7CiAKIGV4dGVybglpbnQgbmZzX3NjYW5f bGlzdChzdHJ1Y3QgbGlzdF9oZWFkICosIHN0cnVjdCBsaXN0X2hlYWQgKiwK LQkJCSAgc3RydWN0IGZpbGUgKiwgdW5zaWduZWQgbG9uZywgdW5zaWduZWQg aW50KTsKKwkJCSAgc3RydWN0IGZpbGUgKiwgdW5zaWduZWQgbG9uZywgdW5z aWduZWQgaW50LAorCQkJICB1bnNpZ25lZCBpbnQsIHVuc2lnbmVkIGludCk7 CiBleHRlcm4JaW50IG5mc19jb2FsZXNjZV9yZXF1ZXN0cyhzdHJ1Y3QgbGlz dF9oZWFkICosIHN0cnVjdCBsaXN0X2hlYWQgKiwKIAkJCQkgIHVuc2lnbmVk IGludCk7CiBleHRlcm4gIGludCBuZnNfd2FpdF9vbl9yZXF1ZXN0KHN0cnVj dCBuZnNfcGFnZSAqKTsKSW5kZXg6IGluY2x1ZGUvbGludXgvbmZzX2ZzX3Ni LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gb3JpZy9pbmNsdWRlL2xp bnV4L25mc19mc19zYi5oCSguLi4vc3RvY2spCShyZXZpc2lvbiA3KQorKysg bmZzLXdyaXRlLXRocm90dGxlL2luY2x1ZGUvbGludXgvbmZzX2ZzX3NiLmgJ KC4uLi9uZnMtd3JpdGUtdGhyb3R0bGUpCShyZXZpc2lvbiA3KQpAQCAtMjgs NiArMjgsNyBAQAogCWNoYXIgKgkJCWhvc3RuYW1lOwkvKiByZW1vdGUgaG9z dG5hbWUgKi8KIAlzdHJ1Y3QgbmZzX2ZoCQlmaDsKIAlzdHJ1Y3Qgc29ja2Fk ZHJfaW4JYWRkcjsKKwlhdG9taWNfdAkJd2FjdGl2ZTsJLyogIyBhY3RpdmUg d3JpdGUgcmVxdWVzdHMgKi8KICNpZmRlZiBDT05GSUdfTkZTX1Y0CiAJLyog T3VyIG93biBJUCBhZGRyZXNzLCBhcyBhIG51bGwtdGVybWluYXRlZCBzdHJp bmcuCiAJICogVGhpcyBpcyB1c2VkIHRvIGdlbmVyYXRlIHRoZSBjbGllbnRp ZCwgYW5kIHRoZSBjYWxsYmFjayBhZGRyZXNzLgpJbmRleDogZnMvbmZzL2lu b2RlLmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gb3JpZy9mcy9uZnMv aW5vZGUuYwkoLi4uL3N0b2NrKQkocmV2aXNpb24gNykKKysrIG5mcy13cml0 ZS10aHJvdHRsZS9mcy9uZnMvaW5vZGUuYwkoLi4uL25mcy13cml0ZS10aHJv dHRsZSkJKHJldmlzaW9uIDcpCkBAIC0zNjQsNiArMzY0LDggQEAKIAlpZiAo c2ItPnNfbWF4Ynl0ZXMgPiBNQVhfTEZTX0ZJTEVTSVpFKSAKIAkJc2ItPnNf bWF4Ynl0ZXMgPSBNQVhfTEZTX0ZJTEVTSVpFOyAKIAorCWF0b21pY19zZXQo JnNlcnZlci0+d2FjdGl2ZSwgMCk7CisKIAkvKiBXZSdyZSBhaXJib3JuZSBT ZXQgc29ja2V0IGJ1ZmZlcnNpemUgKi8KIAlycGNfc2V0YnVmc2l6ZShzZXJ2 ZXItPmNsaWVudCwgc2VydmVyLT53c2l6ZSArIDEwMCwgc2VydmVyLT5yc2l6 ZSArIDEwMCk7CiAJcmV0dXJuIDA7CkluZGV4OiBmcy9uZnMvcGFnZWxpc3Qu Ywo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBvcmlnL2ZzL25mcy9wYWdl bGlzdC5jCSguLi4vc3RvY2spCShyZXZpc2lvbiA3KQorKysgbmZzLXdyaXRl LXRocm90dGxlL2ZzL25mcy9wYWdlbGlzdC5jCSguLi4vbmZzLXdyaXRlLXRo cm90dGxlKQkocmV2aXNpb24gNykKQEAgLTI0OSw2ICsyNDksOCBAQAogICog QGZpbGU6IGlmIHNldCwgZW5zdXJlIHdlIG1hdGNoIHJlcXVlc3RzIGZyb20g dGhpcyBmaWxlCiAgKiBAaWR4X3N0YXJ0OiBsb3dlciBib3VuZCBvZiBwYWdl LT5pbmRleCB0byBzY2FuCiAgKiBAbnBhZ2VzOiBpZHhfc3RhcnQgKyBucGFn ZXMgc2V0cyB0aGUgdXBwZXIgYm91bmQgdG8gc2Nhbi4KKyAqIEBucmVxOiBp ZiBzZXQsIHN0b3AgYWZ0ZXIgdGhpcyBtYW55IGNvYWxlc2NlZCByZXF1ZXN0 cy4KKyAqIEBycGFnZXM6IGlmIG5yZXEgaXMgc2V0LCAjIHBhZ2VzIHBlciBy ZXF1ZXN0LgogICoKICAqIE1vdmVzIGVsZW1lbnRzIGZyb20gb25lIG9mIHRo ZSBpbm9kZSByZXF1ZXN0IGxpc3RzLgogICogSWYgdGhlIG51bWJlciBvZiBy ZXF1ZXN0cyBpcyBzZXQgdG8gMCwgdGhlIGVudGlyZSBhZGRyZXNzX3NwYWNl CkBAIC0yNTksMTggKzI2MSwyMiBAQAogaW50CiBuZnNfc2Nhbl9saXN0KHN0 cnVjdCBsaXN0X2hlYWQgKmhlYWQsIHN0cnVjdCBsaXN0X2hlYWQgKmRzdCwK IAkgICAgICBzdHJ1Y3QgZmlsZSAqZmlsZSwKLQkgICAgICB1bnNpZ25lZCBs b25nIGlkeF9zdGFydCwgdW5zaWduZWQgaW50IG5wYWdlcykKKwkgICAgICB1 bnNpZ25lZCBsb25nIGlkeF9zdGFydCwgdW5zaWduZWQgaW50IG5wYWdlcywK KwkgICAgICB1bnNpZ25lZCBpbnQgbnJlcSwgdW5zaWduZWQgaW50IHJwYWdl cykKIHsKIAlzdHJ1Y3QgbGlzdF9oZWFkCSpwb3MsICp0bXA7Ci0Jc3RydWN0 IG5mc19wYWdlCQkqcmVxOworCXN0cnVjdCBuZnNfcGFnZQkJKnJlcSwgKnBy ZXY7CiAJdW5zaWduZWQgbG9uZwkJaWR4X2VuZDsKLQlpbnQJCQlyZXM7CisJ aW50CQkJcmVzLCBpc19jb250aWc7CisJdW5zaWduZWQgaW50CQlwYWdlcywg bnI7CiAKIAlyZXMgPSAwOwogCWlmIChucGFnZXMgPT0gMCkKIAkJaWR4X2Vu ZCA9IH4wOwogCWVsc2UKIAkJaWR4X2VuZCA9IGlkeF9zdGFydCArIG5wYWdl cyAtIDE7CisJbnIgPSBwYWdlcyA9IDA7CisJcHJldiA9IE5VTEw7CiAKIAls aXN0X2Zvcl9lYWNoX3NhZmUocG9zLCB0bXAsIGhlYWQpIHsKIApAQCAtMjg2 LDkgKzI5MiwzMyBAQAogCiAJCWlmICghbmZzX2xvY2tfcmVxdWVzdChyZXEp KQogCQkJY29udGludWU7CisKKwkJaXNfY29udGlnID0gKG5yZXEgJiYKKwkJ CSAgICAgcHJldiAmJgorCQkJICAgICBwYWdlcyA8IHJwYWdlcyAmJgorCQkJ ICAgICByZXEtPndiX3BnYmFzZSA9PSAwICYmCisJCQkgICAgIHByZXYtPndi X3BnYmFzZSArIHByZXYtPndiX2J5dGVzID09IFBBR0VfQ0FDSEVfU0laRSAm JgorCQkJICAgICByZXEtPndiX2luZGV4ID09IHByZXYtPndiX2luZGV4ICsg MSAmJgorCQkJICAgICByZXEtPndiX2NyZWQgPT0gcHJldi0+d2JfY3JlZCk7 CisKKwkJaWYgKCFpc19jb250aWcgJiYgbnJlcSAmJiBuciA9PSBucmVxKSB7 CisJCQlzcGluX3VubG9jaygmbmZzX3dyZXFfbG9jayk7CisJCQluZnNfdW5s b2NrX3JlcXVlc3QocmVxKTsKKwkJCXNwaW5fbG9jaygmbmZzX3dyZXFfbG9j ayk7CisJCQlicmVhazsKKwkJfQorCiAJCW5mc19saXN0X3JlbW92ZV9yZXF1 ZXN0KHJlcSk7CiAJCW5mc19saXN0X2FkZF9yZXF1ZXN0KHJlcSwgZHN0KTsK IAkJcmVzKys7CisKKwkJaWYgKGlzX2NvbnRpZykKKwkJCXBhZ2VzKys7CisJ CWVsc2UgeworCQkJcGFnZXMgPSAxOworCQkJbnIrKzsKKwkJfQorCQlwcmV2 ID0gcmVxOwogCX0KIAlyZXR1cm4gcmVzOwogfQpJbmRleDogZnMvbmZzL3dy aXRlLmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gb3JpZy9mcy9uZnMv d3JpdGUuYwkoLi4uL3N0b2NrKQkocmV2aXNpb24gNykKKysrIG5mcy13cml0 ZS10aHJvdHRsZS9mcy9uZnMvd3JpdGUuYwkoLi4uL25mcy13cml0ZS10aHJv dHRsZSkJKHJldmlzaW9uIDcpCkBAIC03NSw2ICs3NSw4IEBACiAJCQkJCSAg ICBzdHJ1Y3QgcGFnZSAqLAogCQkJCQkgICAgdW5zaWduZWQgaW50LCB1bnNp Z25lZCBpbnQpOwogc3RhdGljIHZvaWQJbmZzX3N0cmF0ZWd5KHN0cnVjdCBp bm9kZSAqaW5vZGUpOworc3RhdGljIGludAluZnNfd2FpdF9vbl9yZXF1ZXN0 cyhzdHJ1Y3QgaW5vZGUgKiwgc3RydWN0IGZpbGUgKiwKKwkJCQkgICAgIHVu c2lnbmVkIGxvbmcsIHVuc2lnbmVkIGludCwgdW5zaWduZWQgaW50KTsKIAog c3RhdGljIGttZW1fY2FjaGVfdCAqbmZzX3dkYXRhX2NhY2hlcDsKIHN0YXRp YyBtZW1wb29sX3QgKm5mc193ZGF0YV9tZW1wb29sOwpAQCAtMTI1LDYgKzEy Nyw0NyBAQAogfQogCiAvKgorICogTWF4ICMgYWN0aXZlIHdyaXRlIHJlcXVl c3RzLgorICovCisjZGVmaW5lIEFTWU5DX1JFUV9MSU1JVAkJKFJQQ19NQVhS RVFTICogMyAvIDQpCisKKy8qCisgKiBNYXggIyBxdWV1ZWQgZGlydHkgcGFn ZXMuCisgKi8KKyNkZWZpbmUgQVNZTkNfUVVFVUVfTElNSVQJKDI1NikKKwor LyoKKyAqIENvdW50IG9mIGFjdGl2ZSB3cml0ZSByZXF1ZXN0cy4KKyAqLwor I2RlZmluZSBBQ1RJVkVfQ05UKGlub2RlKQlhdG9taWNfcmVhZCgmTkZTX1NF UlZFUihpbm9kZSktPndhY3RpdmUpCisjZGVmaW5lIExJTUlUX0VYQ0VFREVE KGlub2RlKQkoQUNUSVZFX0NOVChpbm9kZSkgPiBBU1lOQ19SRVFfTElNSVQp CisjZGVmaW5lIFdSSVRFX1NUQVJUKGlub2RlKQlhdG9taWNfaW5jKCZORlNf U0VSVkVSKGlub2RlKS0+d2FjdGl2ZSkKKyNkZWZpbmUgV1JJVEVfRU5EKGlu b2RlKQlhdG9taWNfZGVjKCZORlNfU0VSVkVSKGlub2RlKS0+d2FjdGl2ZSkK KworLyoKKyAqIERyYWluIGRpcnR5IHF1ZXVlIGlmIGxpbWl0cyBoYXZlIGJl ZW4gZXhjZWVkZWQuCisgKi8KK3N0YXRpYyBpbnQgcXVldWVfZHJhaW4oc3Ry dWN0IGlub2RlICppbm9kZSkKK3sKKwlpbnQgZXJyb3I7CisKKwlkbyB7CisJ CWVycm9yID0gMDsKKwkJaWYgKE5GU19JKGlub2RlKS0+bmRpcnR5ID4gQVNZ TkNfUVVFVUVfTElNSVQpCisJCQllcnJvciA9IG5mc19mbHVzaF9maWxlKGlu b2RlLCBOVUxMLCAwLCAwLCAwKTsKKwkJd2hpbGUgKExJTUlUX0VYQ0VFREVE KGlub2RlKSkgeworCQkJaW50IGVyciA9IG5mc193YWl0X29uX3JlcXVlc3Rz KGlub2RlLCBOVUxMLCAwLCAwLCAxKTsKKwkJCWlmIChlcnIgPD0gMCkgewor CQkJCWlmIChlcnIgPCAwKQorCQkJCQllcnJvciA9IGVycjsKKwkJCQlicmVh azsKKwkJCX0KKwkJfQorCX0gd2hpbGUgKGVycm9yID4gMCk7CisJcmV0dXJu IGVycm9yOworfQorCisvKgogICogV3JpdGUgYSBwYWdlIHN5bmNocm9ub3Vz bHkuCiAgKiBPZmZzZXQgaXMgdGhlIGRhdGEgb2Zmc2V0IHdpdGhpbiB0aGUg cGFnZS4KICAqLwpAQCAtMTYyLDcgKzIwNSw5IEBACiAJCQl3ZGF0YS5hcmdz LmNvdW50ID0gY291bnQ7CiAJCXdkYXRhLmFyZ3Mub2Zmc2V0ID0gcGFnZV9v ZmZzZXQocGFnZSkgKyB3ZGF0YS5hcmdzLnBnYmFzZTsKIAorCQlXUklURV9T VEFSVChpbm9kZSk7CiAJCXJlc3VsdCA9IE5GU19QUk9UTyhpbm9kZSktPndy aXRlKCZ3ZGF0YSwgZmlsZSk7CisJCVdSSVRFX0VORChpbm9kZSk7CiAKIAkJ aWYgKHJlc3VsdCA8IDApIHsKIAkJCS8qIE11c3QgbWFyayB0aGUgcGFnZSBp bnZhbGlkIGFmdGVyIEkvTyBlcnJvciAqLwpAQCAtMjcxLDYgKzMxNiw4IEBA CiAJdW5sb2NrX2tlcm5lbCgpOwogb3V0OgogCXVubG9ja19wYWdlKHBhZ2Up OworCWlmICghZXJyICYmICF3YmMtPm5vbmJsb2NraW5nKQorCQllcnIgPSBx dWV1ZV9kcmFpbihpbm9kZSk7CiAJaWYgKGlub2RlX3JlZmVyZW5jZWQpCiAJ CWlwdXQoaW5vZGUpOwogCXJldHVybiBlcnI7IApAQCAtMjgyLDIwICszMjks NDEgQEAKIAlzdHJ1Y3QgaW5vZGUgKmlub2RlID0gbWFwcGluZy0+aG9zdDsK IAlpbnQgaXNfc3luYyA9ICF3YmMtPm5vbmJsb2NraW5nOwogCWludCBlcnI7 CisJbG9uZyBucGFnZXMgPSB3YmMtPm5yX3RvX3dyaXRlOwogCiAJZXJyID0g Z2VuZXJpY193cml0ZXBhZ2VzKG1hcHBpbmcsIHdiYyk7CiAJaWYgKGVycikK IAkJZ290byBvdXQ7Ci0JZXJyID0gbmZzX2ZsdXNoX2ZpbGUoaW5vZGUsIE5V TEwsIDAsIDAsIDApOwotCWlmIChlcnIgPCAwKQotCQlnb3RvIG91dDsKLQlp ZiAod2JjLT5zeW5jX21vZGUgPT0gV0JfU1lOQ19IT0xEKQotCQlnb3RvIG91 dDsKIAlpZiAoaXNfc3luYyAmJiB3YmMtPnN5bmNfbW9kZSA9PSBXQl9TWU5D X0FMTCkgewogCQllcnIgPSBuZnNfd2JfYWxsKGlub2RlKTsKLQl9IGVsc2UK KwkJZ290byBvdXQ7CisJfQorCWlmICh3YmMtPnN5bmNfbW9kZSAhPSBXQl9T WU5DX0hPTEQpCisJCW5wYWdlcyAtPSBORlNfSShpbm9kZSktPm5jb21taXQ7 CisJd2JjLT5lbmNvdW50ZXJlZF9jb25nZXN0aW9uID0gMDsKKwl3aGlsZSAo bnBhZ2VzID4gMCAmJiAhd2JjLT5lbmNvdW50ZXJlZF9jb25nZXN0aW9uKSB7 CisJCWVyciA9IG5mc19mbHVzaF9maWxlKGlub2RlLCBOVUxMLCAwLCAwLCAw KTsKKwkJaWYgKGVyciA8IDApCisJCQlnb3RvIG91dDsKKwkJaWYgKGVyciA9 PSAwKQorCQkJYnJlYWs7CisJCW5wYWdlcyAtPSBlcnI7CisJCXdoaWxlIChM SU1JVF9FWENFRURFRChpbm9kZSkpIHsKKwkJCWlmICh3YmMtPm5vbmJsb2Nr aW5nKSB7CisJCQkJd2JjLT5lbmNvdW50ZXJlZF9jb25nZXN0aW9uID0gMTsK KwkJCQlicmVhazsKKwkJCX0KKwkJCWVyciA9IG5mc193YWl0X29uX3JlcXVl c3RzKGlub2RlLCBOVUxMLCAwLCAwLCAxKTsKKwkJCWlmIChlcnIgPCAwKQor CQkJCWdvdG8gb3V0OworCQkJaWYgKGVyciA9PSAwKQorCQkJCWJyZWFrOwor CQl9CisJfQorCWlmICh3YmMtPnN5bmNfbW9kZSAhPSBXQl9TWU5DX0hPTEQp CiAJCW5mc19jb21taXRfZmlsZShpbm9kZSwgTlVMTCwgMCwgMCwgMCk7CiBv dXQ6CisJd2JjLT5ucl90b193cml0ZSA9IG5wYWdlczsKIAlyZXR1cm4gZXJy OwogfQogCkBAIC00MjEsNyArNDg5LDcgQEAKICAqIEludGVycnVwdGlibGUg Ynkgc2lnbmFscyBvbmx5IGlmIG1vdW50ZWQgd2l0aCBpbnRyIGZsYWcuCiAg Ki8KIHN0YXRpYyBpbnQKLW5mc193YWl0X29uX3JlcXVlc3RzKHN0cnVjdCBp bm9kZSAqaW5vZGUsIHN0cnVjdCBmaWxlICpmaWxlLCB1bnNpZ25lZCBsb25n IGlkeF9zdGFydCwgdW5zaWduZWQgaW50IG5wYWdlcykKK25mc193YWl0X29u X3JlcXVlc3RzKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBmaWxlICpm aWxlLCB1bnNpZ25lZCBsb25nIGlkeF9zdGFydCwgdW5zaWduZWQgaW50IG5w YWdlcywgdW5zaWduZWQgaW50IG5yZXEpCiB7CiAJc3RydWN0IG5mc19pbm9k ZSAqbmZzaSA9IE5GU19JKGlub2RlKTsKIAlzdHJ1Y3QgbmZzX3BhZ2UgKnJl cTsKQEAgLTQ1NSw2ICs1MjMsOCBAQAogCQlzcGluX2xvY2soJm5mc193cmVx X2xvY2spOwogCQluZXh0ID0gaWR4X3N0YXJ0OwogCQlyZXMrKzsKKwkJaWYg KG5yZXEgJiYgcmVzID09IG5yZXEpCisJCQlicmVhazsKIAl9CiAJc3Bpbl91 bmxvY2soJm5mc193cmVxX2xvY2spOwogCXJldHVybiByZXM7CkBAIC00NzIs MTEgKzU0MiwxMSBAQAogICogVGhlIHJlcXVlc3RzIGFyZSAqbm90KiBjaGVj a2VkIHRvIGVuc3VyZSB0aGF0IHRoZXkgZm9ybSBhIGNvbnRpZ3VvdXMgc2V0 LgogICovCiBzdGF0aWMgaW50Ci1uZnNfc2Nhbl9kaXJ0eShzdHJ1Y3QgaW5v ZGUgKmlub2RlLCBzdHJ1Y3QgbGlzdF9oZWFkICpkc3QsIHN0cnVjdCBmaWxl ICpmaWxlLCB1bnNpZ25lZCBsb25nIGlkeF9zdGFydCwgdW5zaWduZWQgaW50 IG5wYWdlcykKK25mc19zY2FuX2RpcnR5KHN0cnVjdCBpbm9kZSAqaW5vZGUs IHN0cnVjdCBsaXN0X2hlYWQgKmRzdCwgc3RydWN0IGZpbGUgKmZpbGUsIHVu c2lnbmVkIGxvbmcgaWR4X3N0YXJ0LCB1bnNpZ25lZCBpbnQgbnBhZ2VzLCB1 bnNpZ25lZCBpbnQgbnJlcSkKIHsKIAlzdHJ1Y3QgbmZzX2lub2RlICpuZnNp ID0gTkZTX0koaW5vZGUpOwogCWludAlyZXM7Ci0JcmVzID0gbmZzX3NjYW5f bGlzdCgmbmZzaS0+ZGlydHksIGRzdCwgZmlsZSwgaWR4X3N0YXJ0LCBucGFn ZXMpOworCXJlcyA9IG5mc19zY2FuX2xpc3QoJm5mc2ktPmRpcnR5LCBkc3Qs IGZpbGUsIGlkeF9zdGFydCwgbnBhZ2VzLCBucmVxLCBORlNfU0VSVkVSKGlu b2RlKS0+d3BhZ2VzKTsKIAluZnNpLT5uZGlydHkgLT0gcmVzOwogCXN1Yl9w YWdlX3N0YXRlKG5yX2RpcnR5LHJlcyk7CiAJaWYgKChuZnNpLT5uZGlydHkg PT0gMCkgIT0gbGlzdF9lbXB0eSgmbmZzaS0+ZGlydHkpKQpAQCAtNTAxLDcg KzU3MSw3IEBACiB7CiAJc3RydWN0IG5mc19pbm9kZSAqbmZzaSA9IE5GU19J KGlub2RlKTsKIAlpbnQJcmVzOwotCXJlcyA9IG5mc19zY2FuX2xpc3QoJm5m c2ktPmNvbW1pdCwgZHN0LCBmaWxlLCBpZHhfc3RhcnQsIG5wYWdlcyk7CisJ cmVzID0gbmZzX3NjYW5fbGlzdCgmbmZzaS0+Y29tbWl0LCBkc3QsIGZpbGUs IGlkeF9zdGFydCwgbnBhZ2VzLCAwLCAwKTsKIAluZnNpLT5uY29tbWl0IC09 IHJlczsKIAlpZiAoKG5mc2ktPm5jb21taXQgPT0gMCkgIT0gbGlzdF9lbXB0 eSgmbmZzaS0+Y29tbWl0KSkKIAkJcHJpbnRrKEtFUk5fRVJSICJORlM6IGRl c3luY2hyb25pemVkIHZhbHVlIG9mIG5mc19pLm5jb21taXQuXG4iKTsKQEAg LTcyOCw2ICs3OTgsNyBAQAogCQluZnNfc3RyYXRlZ3koaW5vZGUpOwogCX0g ZWxzZQogCQluZnNfdW5sb2NrX3JlcXVlc3QocmVxKTsKKwlyZXR1cm4gcXVl dWVfZHJhaW4oaW5vZGUpOwogZG9uZToKICAgICAgICAgZHByaW50aygiTkZT OiAgICAgIG5mc191cGRhdGVwYWdlIHJldHVybnMgJWQgKGlzaXplICVMZClc biIsCiAJCQlzdGF0dXMsIChsb25nIGxvbmcpaV9zaXplX3JlYWQoaW5vZGUp KTsKQEAgLTc2Nyw2ICs4MzgsOCBAQAogCiAJTkZTX1BST1RPKGlub2RlKS0+ d3JpdGVfc2V0dXAoZGF0YSwgY291bnQsIGhvdyk7CiAKKwlXUklURV9TVEFS VChpbm9kZSk7CisKIAlkcHJpbnRrKCJORlM6ICU0ZCBpbml0aWF0ZWQgd3Jp dGUgY2FsbCAocmVxICVzLyVMZCwgJXUgYnl0ZXMgQCBvZmZzZXQgJUx1KVxu IiwKIAkJdGFzay0+dGtfcGlkLAogCQlpbm9kZS0+aV9zYi0+c19pZCwKQEAg LTg1Niw2ICs5MjksOCBAQAogCWRwcmludGsoIk5GUzogJTRkIG5mc193cml0 ZWJhY2tfZG9uZSAoc3RhdHVzICVkKVxuIiwKIAkJdGFzay0+dGtfcGlkLCB0 YXNrLT50a19zdGF0dXMpOwogCisJV1JJVEVfRU5EKGRhdGEtPmlub2RlKTsK KwogCS8qIFdlIGNhbid0IGhhbmRsZSB0aGF0IHlldCBidXQgd2UgY2hlY2sg Zm9yIGl0IG5ldmVydGhlbGVzcyAqLwogCWlmIChyZXNwLT5jb3VudCA8IGFy Z3AtPmNvdW50ICYmIHRhc2stPnRrX3N0YXR1cyA+PSAwKSB7CiAJCXN0YXRp YyB1bnNpZ25lZCBsb25nICAgIGNvbXBsYWluOwpAQCAtMTA2NiwxMCArMTE0 MSwxNiBAQAogewogCUxJU1RfSEVBRChoZWFkKTsKIAlpbnQJCQlyZXMsCisJ CQkJbnJlcSwKIAkJCQllcnJvciA9IDA7CiAKKwlucmVxID0gQVNZTkNfUkVR X0xJTUlUIC0gQUNUSVZFX0NOVChpbm9kZSk7CisJaWYgKG5yZXEgPCAxKQor CQlucmVxID0gMTsKKwllbHNlIGlmIChucmVxID4gNCkKKwkJbnJlcSA9IDQ7 CiAJc3Bpbl9sb2NrKCZuZnNfd3JlcV9sb2NrKTsKLQlyZXMgPSBuZnNfc2Nh bl9kaXJ0eShpbm9kZSwgJmhlYWQsIGZpbGUsIGlkeF9zdGFydCwgbnBhZ2Vz KTsKKwlyZXMgPSBuZnNfc2Nhbl9kaXJ0eShpbm9kZSwgJmhlYWQsIGZpbGUs IGlkeF9zdGFydCwgbnBhZ2VzLCBucmVxKTsKIAlzcGluX3VubG9jaygmbmZz X3dyZXFfbG9jayk7CiAJaWYgKHJlcykKIAkJZXJyb3IgPSBuZnNfZmx1c2hf bGlzdCgmaGVhZCwgTkZTX1NFUlZFUihpbm9kZSktPndwYWdlcywgaG93KTsK QEAgLTExMDYsNiArMTE4NywxMCBAQAogCWludAllcnJvciwKIAkJd2FpdDsK IAorCWVycm9yID0gcXVldWVfZHJhaW4oaW5vZGUpOworCWlmIChlcnJvciA8 IDApCisJCXJldHVybiBlcnJvcjsKKwogCXdhaXQgPSBob3cgJiBGTFVTSF9X QUlUOwogCWhvdyAmPSB+RkxVU0hfV0FJVDsKIApAQCAtMTExMywxMSArMTE5 OCwxOCBAQAogCQlpbm9kZSA9IGZpbGUtPmZfZGVudHJ5LT5kX2lub2RlOwog CiAJZG8gewotCQllcnJvciA9IDA7Ci0JCWlmICh3YWl0KQotCQkJZXJyb3Ig PSBuZnNfd2FpdF9vbl9yZXF1ZXN0cyhpbm9kZSwgZmlsZSwgaWR4X3N0YXJ0 LCBucGFnZXMpOwotCQlpZiAoZXJyb3IgPT0gMCkKLQkJCWVycm9yID0gbmZz X2ZsdXNoX2ZpbGUoaW5vZGUsIGZpbGUsIGlkeF9zdGFydCwgbnBhZ2VzLCBo b3cpOworCQllcnJvciA9IG5mc19mbHVzaF9maWxlKGlub2RlLCBmaWxlLCBp ZHhfc3RhcnQsIG5wYWdlcywgaG93KTsKKwkJaWYgKGVycm9yID4gMCAmJiBM SU1JVF9FWENFRURFRChpbm9kZSkpIHsKKwkJCWludCBlcnI7CisKKwkJCWRv IHsKKwkJCQllcnIgPSBuZnNfd2FpdF9vbl9yZXF1ZXN0cyhpbm9kZSwgZmls ZSwgaWR4X3N0YXJ0LCBucGFnZXMsIDEpOworCQkJfSB3aGlsZSAoZXJyID4g MCAmJiBMSU1JVF9FWENFRURFRChpbm9kZSkpOworCQkJaWYgKGVyciA8IDAp CisJCQkJZXJyb3IgPSBlcnI7CisJCX0KKwkJaWYgKGVycm9yID09IDAgJiYg d2FpdCkKKwkJCWVycm9yID0gbmZzX3dhaXRfb25fcmVxdWVzdHMoaW5vZGUs IGZpbGUsIGlkeF9zdGFydCwgbnBhZ2VzLCAwKTsKICNpZiBkZWZpbmVkKENP TkZJR19ORlNfVjMpIHx8IGRlZmluZWQoQ09ORklHX05GU19WNCkKIAkJaWYg KGVycm9yID09IDApCiAJCQllcnJvciA9IG5mc19jb21taXRfZmlsZShpbm9k ZSwgZmlsZSwgaWR4X3N0YXJ0LCBucGFnZXMsIGhvdyk7Cg== --0-1863646955-1077679143=:64532-- ------------------------------------------------------- SF.Net is sponsored by: Speed Start Your Linux Apps Now. Build and deploy apps & Web services for Linux with a free DVD software kit from IBM. Click Now! http://ads.osdn.com/?ad_id=1356&alloc_id=3438&op=click _______________________________________________ NFS maillist - NFS@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/nfs