Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id ; Mon, 26 Aug 2002 14:02:09 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id ; Mon, 26 Aug 2002 14:02:06 -0400 Received: from e2.ny.us.ibm.com ([32.97.182.102]:20677 "EHLO e2.ny.us.ibm.com") by vger.kernel.org with ESMTP id ; Mon, 26 Aug 2002 14:01:55 -0400 To: Alan Cox , linux-kernel@vger.kernel.org X-Mailer: Lotus Notes Release 5.0.2a (Intl) 23 November 1999 Message-ID: From: Juan Gomez Date: Mon, 26 Aug 2002 12:04:41 -0600 Subject: NFS Lockd Kernel Patch Proposal X-MIMETrack: Serialize by Router on D03NM694/03/M/IBM(Build V60_M14_08012002 Release Candidate|August 01, 2002) at 08/26/2002 12:04:44 MIME-Version: 1.0 Content-type: multipart/mixed; Boundary="0__=08BBE6B2DFF135088f9e8a93df938690918c08BBE6B2DFF13508" Content-Disposition: inline Sender: linux-kernel-owner@vger.kernel.org X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 18625 Lines: 261 --0__=08BBE6B2DFF135088f9e8a93df938690918c08BBE6B2DFF13508 Content-type: text/plain; charset=US-ASCII The following file includes patch to export set/reset capabilityes of the grace period to user-level via the proc filesystem. Traces of the need for this feature were included in the code but the code was not actually included so this should not be big news to the previous writers of the lockd code. I will appreciate this to be considered for inclusion in the kernel distribution. This feature is an enabler for HA-NFS. (See attached file: svc.c) Regards, Juan Gomez --0__=08BBE6B2DFF135088f9e8a93df938690918c08BBE6B2DFF13508 Content-type: application/octet-stream; name="svc.c" Content-Disposition: attachment; filename="svc.c" Content-transfer-encoding: base64 LyoNCiAqIGxpbnV4L2ZzL2xvY2tkL3N2Yy5jDQogKg0KICogVGhpcyBpcyB0aGUgY2VudHJhbCBs b2NrZCBzZXJ2aWNlLg0KICoNCiAqIEZJWE1FOiBTZXBhcmF0ZSB0aGUgbG9ja2QgTkZTIHNlcnZl ciBmdW5jdGlvbmFsaXR5IGZyb20gdGhlIGxvY2tkIE5GUw0KICogCSAgY2xpZW50IGZ1bmN0aW9u YWxpdHkuIE9oIHdoeSBkaWRuJ3QgU3VuIGNyZWF0ZSB0d28gc2VwYXJhdGUNCiAqCSAgc2Vydmlj ZXMgaW4gdGhlIGZpcnN0IHBsYWNlPw0KICoNCiAqIEF1dGhvcnM6CU9sYWYgS2lyY2ggKG9raXJA bW9uYWQuc3diLmRlKQ0KICoNCiAqIENvcHlyaWdodCAoQykgMTk5NSwgMTk5NiBPbGFmIEtpcmNo IDxva2lyQG1vbmFkLnN3Yi5kZT4NCiAqLw0KDQojZGVmaW5lIF9fS0VSTkVMX1NZU0NBTExTX18N CiNpbmNsdWRlIDxsaW51eC9jb25maWcuaD4NCiNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4NCiNp bmNsdWRlIDxsaW51eC9pbml0Lmg+DQoNCiNpbmNsdWRlIDxsaW51eC9zY2hlZC5oPg0KI2luY2x1 ZGUgPGxpbnV4L2Vycm5vLmg+DQojaW5jbHVkZSA8bGludXgvaW4uaD4NCiNpbmNsdWRlIDxsaW51 eC91aW8uaD4NCiNpbmNsdWRlIDxsaW51eC92ZXJzaW9uLmg+DQojaW5jbHVkZSA8bGludXgvdW5p c3RkLmg+DQojaW5jbHVkZSA8bGludXgvc2xhYi5oPg0KI2luY2x1ZGUgPGxpbnV4L3NtcC5oPg0K I2luY2x1ZGUgPGxpbnV4L3NtcF9sb2NrLmg+DQoNCiNpbmNsdWRlIDxsaW51eC9zdW5ycGMvdHlw ZXMuaD4NCiNpbmNsdWRlIDxsaW51eC9zdW5ycGMvc3RhdHMuaD4NCiNpbmNsdWRlIDxsaW51eC9z dW5ycGMvY2xudC5oPg0KI2luY2x1ZGUgPGxpbnV4L3N1bnJwYy9zdmMuaD4NCiNpbmNsdWRlIDxs aW51eC9zdW5ycGMvc3Zjc29jay5oPg0KI2luY2x1ZGUgPGxpbnV4L2xvY2tkL2xvY2tkLmg+DQoj aW5jbHVkZSA8bGludXgvbmZzLmg+DQoNCiNkZWZpbmUgTkxNX1BST0NfRlMgICAgIC8qIEVuYWJs ZSBhIHByb2MgZmlsZXN5c3RlbSB0byBzZXQgTkxNIHZhcmliYWxlcyAqLw0KDQojaWZkZWYgTkxN X1BST0NfRlMNCg0KI2luY2x1ZGUgPGxpbnV4L3Byb2NfZnMuaD4NCg0KI2VuZGlmICAgICAgICAg ICAgICAgICAgLyogI2lmZGVmIE5MTV9QUk9DX0ZTICovDQoNCiNkZWZpbmUgTkxNREJHX0ZBQ0lM SVRZCQlOTE1EQkdfU1ZDDQojZGVmaW5lIExPQ0tEX0JVRlNJWkUJCSgxMDI0ICsgTkxNU1NWQ19Y RFJTSVpFKQ0KI2RlZmluZSBBTExPV0VEX1NJR1MJCShzaWdtYXNrKFNJR0tJTEwpKQ0KDQpleHRl cm4gc3RydWN0IHN2Y19wcm9ncmFtCW5sbXN2Y19wcm9ncmFtOw0Kc3RydWN0IG5sbXN2Y19iaW5k aW5nICoJCW5sbXN2Y19vcHM7DQpzdGF0aWMgREVDTEFSRV9NVVRFWChubG1zdmNfc2VtYSk7DQpz dGF0aWMgdW5zaWduZWQgaW50CQlubG1zdmNfdXNlcnM7DQpzdGF0aWMgcGlkX3QJCQlubG1zdmNf cGlkOw0KaW50CQkJCW5sbXN2Y19ncmFjZV9wZXJpb2Q7DQp1bnNpZ25lZCBsb25nCQkJbmxtc3Zj X3RpbWVvdXQ7DQoNCnN0YXRpYyBERUNMQVJFX01VVEVYX0xPQ0tFRChsb2NrZF9zdGFydCk7DQpz dGF0aWMgREVDTEFSRV9XQUlUX1FVRVVFX0hFQUQobG9ja2RfZXhpdCk7DQoNCi8qDQogKiBDdXJy ZW50bHkgdGhlIGZvbGxvd2luZyBjYW4gYmUgc2V0IG9ubHkgYXQgaW5zbW9kIHRpbWUuDQogKiBJ ZGVhbGx5LCB0aGV5IHdvdWxkIGJlIGFjY2Vzc2libGUgdGhyb3VnaCB0aGUgc3lzY3RsIGludGVy ZmFjZS4NCiAqLw0KdW5zaWduZWQgbG9uZwkJCW5sbV9ncmFjZV9wZXJpb2Q7DQp1bnNpZ25lZCBs b25nCQkJbmxtX3RpbWVvdXQgPSBMT0NLRF9ERkxUX1RJTUVPOw0KdW5zaWduZWQgbG9uZwkJCW5s bV91ZHBwb3J0LCBubG1fdGNwcG9ydDsNCg0Kc3RhdGljIHVuc2lnbmVkIGxvbmcgc2V0X2dyYWNl X3BlcmlvZCh2b2lkKQ0Kew0KCXVuc2lnbmVkIGxvbmcgZ3JhY2VfcGVyaW9kOw0KDQoJLyogTm90 ZTogbmxtX3RpbWVvdXQgc2hvdWxkIGFsd2F5cyBiZSBub256ZXJvICovDQoJaWYgKG5sbV9ncmFj ZV9wZXJpb2QpDQoJCWdyYWNlX3BlcmlvZCA9ICgobmxtX2dyYWNlX3BlcmlvZCArIG5sbV90aW1l b3V0IC0gMSkNCgkJCQkvIG5sbV90aW1lb3V0KSAqIG5sbV90aW1lb3V0ICogSFo7DQoJZWxzZQ0K CQlncmFjZV9wZXJpb2QgPSBubG1fdGltZW91dCAqIDUgKiBIWjsNCglubG1zdmNfZ3JhY2VfcGVy aW9kID0gMTsNCglyZXR1cm4gZ3JhY2VfcGVyaW9kICsgamlmZmllczsNCn0NCg0Kc3RhdGljIGlu bGluZSB2b2lkIGNsZWFyX2dyYWNlX3BlcmlvZCh2b2lkKQ0Kew0KCW5sbXN2Y19ncmFjZV9wZXJp b2QgPSAwOw0KfQ0KDQoNCiNpZmRlZiAgTkxNX1BST0NfRlMNCg0KLyoNCiAqIFRoaXMgY29kZSBl bmFibGUgdXNlci1sZXZlbCBjb250cm9sIG9mIHRoZSBncmFjZSBwZXJpb2Qgc3RhdGUgb2YgdGhl IGxvY2tkDQogKiBkYWVtb24uDQogKi8NCg0KDQovKiAxOiBubG1fcHJvY19mcyBub3QgaW50aWFs aXplZCwgMDogaW5pdGlhbGl6ZWQgKi8NCnN0YXRpYyBpbnQgbmxtX3Byb2NfZnNfaW5pdF9mbGFn ID0gMTsNCg0Kc3RhdGljIHVuc2lnbmVkIGxvbmcgZ3JhY2VfcGVyaW9kX2V4cGlyZTsNCg0KDQoN Cg0KLyogRnVuY3Rpb24gdXNlZCB0byByZWFkIGdyYWNlIHBlcmlvZCBzdGF0dXMgb2YgbG9ja2Qg Ki8NCg0Kc3RhdGljIHNzaXplX3QNCm5sbXN2Y19ncmFjZV9wZXJpb2RfcmVhZChjaGFyICpwYWdl LCANCiAgICAgICAgICAgICAgICAgICAgICAgICBjaGFyICoqc3RhcnQsIA0KICAgICAgICAgICAg ICAgICAgICAgICAgIG9mZl90IG9mZiwNCiAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgY291 bnQsIA0KICAgICAgICAgICAgICAgICAgICAgICAgIGludCAqZW9mLCANCiAgICAgICAgICAgICAg ICAgICAgICAgICB2b2lkICpkYXRhKQ0Kew0KICAgIGNoYXIgICAgICAgICpzID0gbmxtc3ZjX2dy YWNlX3BlcmlvZCA/ICIxIiA6ICIwIjsNCiAgICBpbnQgICAgICAgICBsZW4gPSBzdHJsZW4ocyk7 DQoNCiAgICAqZW9mID0gMDsNCiAgICAqc3RhcnQgPSBwYWdlOw0KDQogICAgaWYgKG9mZiA8IDAp DQogICAgICAgIHJldHVybiAtRUlOVkFMOw0KDQogICAgaWYgKG9mZiA+PSBsZW4pew0KICAgICAg KmVvZiA9IDE7DQogICAgICByZXR1cm4gMDsNCiAgICB9DQoNCiAgICBpZiAobGVuIDwgKG9mZiAr IGNvdW50KSkgew0KDQogICAgICAqZW9mID0gMTsNCiAgICAgIGNvdW50ID0gbGVuIC0gb2ZmOw0K DQogICAgfSBlbHNlIHsNCg0KICAgICAgY291bnQgPSBsZW47DQoNCiAgICB9DQoNCiAgICBtZW1j cHkocGFnZSwgcyArIG9mZiwgY291bnQpOw0KDQogICAgcmV0dXJuIGNvdW50Ow0KDQp9Lyogc3Rh dGljIHNzaXplX3Qgbmxtc3ZjX2dyYWNlX3BlcmlvZF9yZWFkKCkgKi8NCg0KDQovKg0KICogU2V0 IHN0YXR1cyBvZiBlbnRyeS9iaW5mbXRfbWlzYzoNCiAqICcxJyBlbmFibGVzLCAnMCcgZGlzYWJs ZXMgYW5kICctMScgY2xlYXJzIGVudHJ5L2JpbmZtdF9taXNjDQogKi8NCnN0YXRpYyBpbnQgcGFy c2VfY29tbWFuZChjb25zdCBjaGFyICpidWZmZXIsIHNpemVfdCBjb3VudCkNCnsNCgljaGFyIHNb NF07DQoNCglpZiAoIWNvdW50KQ0KCQlyZXR1cm4gMDsNCg0KCWlmIChjb3VudCA+IDMpDQoJCXJl dHVybiAtRUlOVkFMOw0KDQoJbWVtY3B5KHMsIGJ1ZmZlciwgY291bnQpOw0KDQoJaWYgKHNbY291 bnQtMV0gPT0gJ1xuJykNCgkJY291bnQtLTsNCg0KCWlmIChjb3VudCA9PSAxICYmIHNbMF0gPT0g JzAnKQ0KCQlyZXR1cm4gMTsNCg0KCWlmIChjb3VudCA9PSAxICYmIHNbMF0gPT0gJzEnKQ0KCQly ZXR1cm4gMjsNCg0KCXJldHVybiAtRUlOVkFMOw0KDQp9DQoNCi8qIEZ1bmN0aW9uIHVzZWQgdG8g c2V0L3Jlc2V0IGdyYWNlIHBlcmlvZCBzdGF0dXMgb2YgbG9ja2QgKi8NCg0Kc3RhdGljIHNzaXpl X3Qgbmxtc3ZjX2dyYWNlX3BlcmlvZF93cml0ZShzdHJ1Y3QgZmlsZSAqZmlsZSwgDQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKmJ1ZmZlciwNCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgbG9uZyBjb3Vu dCwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCAqZGF0YSkN CnsNCiAgICBpbnQgcmVzID0gcGFyc2VfY29tbWFuZChidWZmZXIsIGNvdW50KTsNCiAgICBzdHJ1 Y3QgZGVudHJ5ICpyb290Ow0KICAgIA0KICAgIHN3aXRjaCAocmVzKSB7DQogICAgY2FzZSAxOiAN CiAgICAgICAgY2xlYXJfZ3JhY2VfcGVyaW9kKCk7DQogICAgICAgIGJyZWFrOw0KICAgIGNhc2Ug MjogDQogICAgICAgIGdyYWNlX3BlcmlvZF9leHBpcmUgPSBzZXRfZ3JhY2VfcGVyaW9kKCk7DQog ICAgICAgIGJyZWFrOw0KICAgIGRlZmF1bHQ6IA0KICAgICAgICByZXR1cm4gcmVzOw0KICAgIH0N CiAgICByZXR1cm4gY291bnQ7DQoNCn0vKiBzdGF0aWMgc3NpemVfdCBubG1zdmNfZ3JhY2VfcGVy aW9kX3dyaXRlKCkgKi8NCg0KDQoNCg0KDQpzdGF0aWMgc3RydWN0IHByb2NfZGlyX2VudHJ5ICpi YXNlOw0KDQoNCnN0YXRpYyB2b2lkIG5sbV9wcm9jX2ZzX2luaXQoKQ0Kew0KICBzdHJ1Y3QgcHJv Y19kaXJfZW50cnkgKnA7DQoNCiAgaWYgKG5sbV9wcm9jX2ZzX2luaXRfZmxhZyl7DQogICAgDQog ICAgaWYgKCEoYmFzZSA9IHByb2NfbWtkaXIoIm5sbSIsIHByb2Nfcm9vdF9mcykpKQ0KICAgICAg cmV0dXJuOw0KICAgIA0KICAgIG5sbV9wcm9jX2ZzX2luaXRfZmxhZyA9IDA7DQoNCiAgICBpZiAo KHAgPSBjcmVhdGVfcHJvY19lbnRyeSgibmxtc3ZjX2dyYWNlX3BlcmlvZCIsIDAsIGJhc2UpKSkg ew0KDQogICAgICBwLT5yZWFkX3Byb2MgPSBubG1zdmNfZ3JhY2VfcGVyaW9kX3JlYWQ7DQogICAg ICBwLT53cml0ZV9wcm9jID0gbmxtc3ZjX2dyYWNlX3BlcmlvZF93cml0ZTsNCg0KICAgIH0NCiAg ICANCiAgfQ0KDQp9Lyogc3RhdGljIGludCBubG1fcHJvY19mc19pbml0KCkgKi8NCg0KDQoNCg0K c3RhdGljIHZvaWQgbmxtX3Byb2NfZnNfZXhpdCgpDQp7DQoNCiAgICBpZiAoIW5sbV9wcm9jX2Zz X2luaXRfZmxhZyAmJiBiYXNlKXsNCiAgICAgICAgDQogICAgICByZW1vdmVfcHJvY19lbnRyeSgi bmxtc3ZjX2dyYWNlX3BlcmlvZCIsIGJhc2UpOw0KICAgICAgcmVtb3ZlX3Byb2NfZW50cnkoIm5s bSIsIHByb2Nfcm9vdF9mcyk7DQoNCiAgICB9DQoNCn0vKiBzdGF0aWMgdm9pZCBubG1fcHJvY19m c19leGl0KCkgKi8NCg0KI2VuZGlmICAvKiAjaWZkZWYgIE5MTV9QUk9DX0ZTICovDQoNCg0KLyoN CiAqIFRoaXMgaXMgdGhlIGxvY2tkIGtlcm5lbCB0aHJlYWQNCiAqLw0Kc3RhdGljIHZvaWQNCmxv Y2tkKHN0cnVjdCBzdmNfcnFzdCAqcnFzdHApDQp7DQoJc3RydWN0IHN2Y19zZXJ2CSpzZXJ2ID0g cnFzdHAtPnJxX3NlcnZlcjsNCglpbnQJCWVyciA9IDA7DQojaWZuZGVmIE5MTV9QUk9DX0ZTDQog ICAgICAgIHVuc2lnbmVkIGxvbmcgZ3JhY2VfcGVyaW9kX2V4cGlyZTsNCiNlbmRpZg0KDQoJLyog TG9jayBtb2R1bGUgYW5kIHNldCB1cCBrZXJuZWwgdGhyZWFkICovDQoJTU9EX0lOQ19VU0VfQ09V TlQ7DQoJbG9ja19rZXJuZWwoKTsNCg0KCS8qDQoJICogTGV0IG91ciBtYWtlciBrbm93IHdlJ3Jl IHJ1bm5pbmcuDQoJICovDQoJbmxtc3ZjX3BpZCA9IGN1cnJlbnQtPnBpZDsNCgl1cCgmbG9ja2Rf c3RhcnQpOw0KDQoJZGFlbW9uaXplKCk7DQoJcmVwYXJlbnRfdG9faW5pdCgpOw0KCXNwcmludGYo Y3VycmVudC0+Y29tbSwgImxvY2tkIik7DQoNCgkvKiBQcm9jZXNzIHJlcXVlc3Qgd2l0aCBzaWdu YWxzIGJsb2NrZWQuICAqLw0KCXNwaW5fbG9ja19pcnEoJmN1cnJlbnQtPnNpZ21hc2tfbG9jayk7 DQoJc2lnaW5pdHNldGludigmY3VycmVudC0+YmxvY2tlZCwgc2lnbWFzayhTSUdLSUxMKSk7DQoJ cmVjYWxjX3NpZ3BlbmRpbmcoY3VycmVudCk7DQoJc3Bpbl91bmxvY2tfaXJxKCZjdXJyZW50LT5z aWdtYXNrX2xvY2spOw0KDQoJLyoga2ljayBycGNpb2QgKi8NCglycGNpb2RfdXAoKTsNCg0KCWRw cmludGsoIk5GUyBsb2NraW5nIHNlcnZpY2Ugc3RhcnRlZCAodmVyICIgTE9DS0RfVkVSU0lPTiAi KS5cbiIpOw0KDQoJaWYgKCFubG1fdGltZW91dCkNCgkJbmxtX3RpbWVvdXQgPSBMT0NLRF9ERkxU X1RJTUVPOw0KCW5sbXN2Y190aW1lb3V0ID0gbmxtX3RpbWVvdXQgKiBIWjsNCg0KCWdyYWNlX3Bl cmlvZF9leHBpcmUgPSBzZXRfZ3JhY2VfcGVyaW9kKCk7DQoNCgkvKg0KCSAqIFRoZSBtYWluIHJl cXVlc3QgbG9vcC4gV2UgZG9uJ3QgdGVybWluYXRlIHVudGlsIHRoZSBsYXN0DQoJICogTkZTIG1v dW50IG9yIE5GUyBkYWVtb24gaGFzIGdvbmUgYXdheSwgYW5kIHdlJ3ZlIGJlZW4gc2VudCBhDQoJ ICogc2lnbmFsLCBvciBlbHNlIGFub3RoZXIgcHJvY2VzcyBoYXMgdGFrZW4gb3ZlciBvdXIgam9i Lg0KCSAqLw0KCXdoaWxlICgobmxtc3ZjX3VzZXJzIHx8ICFzaWduYWxsZWQoKSkgJiYgbmxtc3Zj X3BpZCA9PSBjdXJyZW50LT5waWQpDQoJew0KCQlsb25nIHRpbWVvdXQgPSBNQVhfU0NIRURVTEVf VElNRU9VVDsNCgkJaWYgKHNpZ25hbGxlZCgpKSB7DQoJCQlzcGluX2xvY2tfaXJxKCZjdXJyZW50 LT5zaWdtYXNrX2xvY2spOw0KCQkJZmx1c2hfc2lnbmFscyhjdXJyZW50KTsNCgkJCXNwaW5fdW5s b2NrX2lycSgmY3VycmVudC0+c2lnbWFza19sb2NrKTsNCgkJCWlmIChubG1zdmNfb3BzKSB7DQoJ CQkJbmxtc3ZjX29wcy0+ZGV0YWNoKCk7DQoJCQkJZ3JhY2VfcGVyaW9kX2V4cGlyZSA9IHNldF9n cmFjZV9wZXJpb2QoKTsNCgkJCX0NCgkJfQ0KDQoJCS8qDQoJCSAqIFJldHJ5IGFueSBibG9ja2Vk IGxvY2tzIHRoYXQgaGF2ZSBiZWVuIG5vdGlmaWVkIGJ5DQoJCSAqIHRoZSBWRlMuIERvbid0IGRv IHRoaXMgZHVyaW5nIGdyYWNlIHBlcmlvZC4NCgkJICogKFRoZW9yZXRpY2FsbHksIHRoZXJlIHNo b3VsZG4ndCBldmVuIGJlIGJsb2NrZWQgbG9ja3MNCgkJICogZHVyaW5nIGdyYWNlIHBlcmlvZCku DQoJCSAqLw0KCQlpZiAoIW5sbXN2Y19ncmFjZV9wZXJpb2QpIHsNCgkJCXRpbWVvdXQgPSBubG1z dmNfcmV0cnlfYmxvY2tlZCgpOw0KCQl9IGVsc2UgaWYgKHRpbWVfYmVmb3JlKGdyYWNlX3Blcmlv ZF9leHBpcmUsIGppZmZpZXMpKQ0KCQkJY2xlYXJfZ3JhY2VfcGVyaW9kKCk7DQoNCgkJLyoNCgkJ ICogRmluZCBhIHNvY2tldCB3aXRoIGRhdGEgYXZhaWxhYmxlIGFuZCBjYWxsIGl0cw0KCQkgKiBy ZWN2ZnJvbSByb3V0aW5lLg0KCQkgKi8NCgkJZXJyID0gc3ZjX3JlY3Yoc2VydiwgcnFzdHAsIHRp bWVvdXQpOw0KCQlpZiAoZXJyID09IC1FQUdBSU4gfHwgZXJyID09IC1FSU5UUikNCgkJCWNvbnRp bnVlOw0KCQlpZiAoZXJyIDwgMCkgew0KCQkJcHJpbnRrKEtFUk5fV0FSTklORw0KCQkJICAgICAg ICJsb2NrZDogdGVybWluYXRpbmcgb24gZXJyb3IgJWRcbiIsDQoJCQkgICAgICAgLWVycik7DQoJ CQlicmVhazsNCgkJfQ0KDQoJCWRwcmludGsoImxvY2tkOiByZXF1ZXN0IGZyb20gJTA4eFxuIiwN CgkJCSh1bnNpZ25lZCludG9obChycXN0cC0+cnFfYWRkci5zaW5fYWRkci5zX2FkZHIpKTsNCg0K CQkvKg0KCQkgKiBMb29rIHVwIHRoZSBORlMgY2xpZW50IGhhbmRsZS4gVGhlIGhhbmRsZSBpcyBu ZWVkZWQgZm9yDQoJCSAqIGFsbCBidXQgdGhlIEdSQU5URUQgY2FsbGJhY2sgUlBDcy4NCgkJICov DQoJCXJxc3RwLT5ycV9jbGllbnQgPSBOVUxMOw0KCQlpZiAobmxtc3ZjX29wcykgew0KCQkJbmxt c3ZjX29wcy0+ZXhwX3JlYWRsb2NrKCk7DQoJCQlycXN0cC0+cnFfY2xpZW50ID0NCgkJCQlubG1z dmNfb3BzLT5leHBfZ2V0Y2xpZW50KCZycXN0cC0+cnFfYWRkcik7DQoJCX0NCg0KCQlzdmNfcHJv Y2VzcyhzZXJ2LCBycXN0cCk7DQoNCgkJLyogVW5sb2NrIGV4cG9ydCBoYXNoIHRhYmxlcyAqLw0K CQlpZiAobmxtc3ZjX29wcykNCgkJCW5sbXN2Y19vcHMtPmV4cF91bmxvY2soKTsNCgl9DQoNCgkv Kg0KCSAqIENoZWNrIHdoZXRoZXIgdGhlcmUncyBhIG5ldyBsb2NrZCBwcm9jZXNzIGJlZm9yZQ0K CSAqIHNodXR0aW5nIGRvd24gdGhlIGhvc3RzIGFuZCBjbGVhcmluZyB0aGUgc2xvdC4NCgkgKi8N CglpZiAoIW5sbXN2Y19waWQgfHwgY3VycmVudC0+cGlkID09IG5sbXN2Y19waWQpIHsNCgkJaWYg KG5sbXN2Y19vcHMpDQoJCQlubG1zdmNfb3BzLT5kZXRhY2goKTsNCgkJbmxtX3NodXRkb3duX2hv c3RzKCk7DQoJCW5sbXN2Y19waWQgPSAwOw0KCX0gZWxzZQ0KCQlwcmludGsoS0VSTl9ERUJVRw0K CQkJImxvY2tkOiBuZXcgcHJvY2Vzcywgc2tpcHBpbmcgaG9zdCBzaHV0ZG93blxuIik7DQoJd2Fr ZV91cCgmbG9ja2RfZXhpdCk7DQoJCQ0KCS8qIEV4aXQgdGhlIFJQQyB0aHJlYWQgKi8NCglzdmNf ZXhpdF90aHJlYWQocnFzdHApOw0KDQoJLyogcmVsZWFzZSBycGNpb2QgKi8NCglycGNpb2RfZG93 bigpOw0KDQoJLyogUmVsZWFzZSBtb2R1bGUgKi8NCglNT0RfREVDX1VTRV9DT1VOVDsNCn0NCg0K DQovKg0KICogQnJpbmcgdXAgdGhlIGxvY2tkIHByb2Nlc3MgaWYgaXQncyBub3QgYWxyZWFkeSB1 cC4NCiAqLw0KaW50DQpsb2NrZF91cCh2b2lkKQ0Kew0KCXN0YXRpYyBpbnQJCXdhcm5lZCA9IDA7 IA0KCXN0cnVjdCBzdmNfc2VydiAqCXNlcnY7DQoJaW50CQkJZXJyb3IgPSAwOw0KDQoJZG93bigm bmxtc3ZjX3NlbWEpOw0KDQoNCgkvKg0KCSAqIFVuY29uZGl0aW9uYWxseSBpbmNyZW1lbnQgdGhl IHVzZXIgY291bnQgLi4uIHRoaXMgaXMNCgkgKiB0aGUgbnVtYmVyIG9mIGNsaWVudHMgd2hvIF93 YW50XyBhIGxvY2tkIHByb2Nlc3MuDQoJICovDQoJbmxtc3ZjX3VzZXJzKys7IA0KCS8qDQoJICog Q2hlY2sgd2hldGhlciB3ZSdyZSBhbHJlYWR5IHVwIGFuZCBydW5uaW5nLg0KCSAqLw0KCWlmIChu bG1zdmNfcGlkKQ0KCQlnb3RvIG91dDsNCg0KI2lmZGVmIE5MTV9QUk9DX0ZTICAgICAgDQogICAg ICAgIG5sbV9wcm9jX2ZzX2luaXQoKTsNCiNlbmRpZg0KCS8qDQoJICogU2FuaXR5IGNoZWNrOiBp ZiB0aGVyZSdzIG5vIHBpZCwNCgkgKiB3ZSBzaG91bGQgYmUgdGhlIGZpcnN0IHVzZXIgLi4uDQoJ ICovDQoJaWYgKG5sbXN2Y191c2VycyA+IDEpDQoJCXByaW50ayhLRVJOX1dBUk5JTkcNCgkJCSJs b2NrZF91cDogbm8gcGlkLCAlZCB1c2Vycz8/XG4iLCBubG1zdmNfdXNlcnMpOw0KDQoJZXJyb3Ig PSAtRU5PTUVNOw0KCXNlcnYgPSBzdmNfY3JlYXRlKCZubG1zdmNfcHJvZ3JhbSwgMCwgTkxNU1ZD X1hEUlNJWkUpOw0KCWlmICghc2Vydikgew0KCQlwcmludGsoS0VSTl9XQVJOSU5HICJsb2NrZF91 cDogY3JlYXRlIHNlcnZpY2UgZmFpbGVkXG4iKTsNCgkJZ290byBvdXQ7DQoJfQ0KDQoJaWYgKChl cnJvciA9IHN2Y19tYWtlc29jayhzZXJ2LCBJUFBST1RPX1VEUCwgbmxtX3VkcHBvcnQpKSA8IDAg DQojaWZkZWYgQ09ORklHX05GU0RfVENQDQoJIHx8IChlcnJvciA9IHN2Y19tYWtlc29jayhzZXJ2 LCBJUFBST1RPX1RDUCwgbmxtX3RjcHBvcnQpKSA8IDANCiNlbmRpZg0KCQkpIHsNCgkJaWYgKHdh cm5lZCsrID09IDApIA0KCQkJcHJpbnRrKEtFUk5fV0FSTklORw0KCQkJCSJsb2NrZF91cDogbWFr ZXNvY2sgZmFpbGVkLCBlcnJvcj0lZFxuIiwgZXJyb3IpOw0KCQlnb3RvIGRlc3Ryb3lfYW5kX291 dDsNCgl9IA0KCXdhcm5lZCA9IDA7DQoNCgkvKg0KCSAqIENyZWF0ZSB0aGUga2VybmVsIHRocmVh ZCBhbmQgd2FpdCBmb3IgaXQgdG8gc3RhcnQuDQoJICovDQoJZXJyb3IgPSBzdmNfY3JlYXRlX3Ro cmVhZChsb2NrZCwgc2Vydik7DQoJaWYgKGVycm9yKSB7DQoJCXByaW50ayhLRVJOX1dBUk5JTkcN CgkJCSJsb2NrZF91cDogY3JlYXRlIHRocmVhZCBmYWlsZWQsIGVycm9yPSVkXG4iLCBlcnJvcik7 DQoJCWdvdG8gZGVzdHJveV9hbmRfb3V0Ow0KCX0NCglkb3duKCZsb2NrZF9zdGFydCk7DQoNCgkv Kg0KCSAqIE5vdGU6IHN2Y19zZXJ2IHN0cnVjdHVyZXMgaGF2ZSBhbiBpbml0aWFsIHVzZSBjb3Vu dCBvZiAxLA0KCSAqIHNvIHdlIGV4aXQgdGhyb3VnaCBoZXJlIG9uIGJvdGggc3VjY2VzcyBhbmQg ZmFpbHVyZS4NCgkgKi8NCmRlc3Ryb3lfYW5kX291dDoNCglzdmNfZGVzdHJveShzZXJ2KTsNCm91 dDoNCgl1cCgmbmxtc3ZjX3NlbWEpOw0KCXJldHVybiBlcnJvcjsNCn0NCg0KLyoNCiAqIERlY3Jl bWVudCB0aGUgdXNlciBjb3VudCBhbmQgYnJpbmcgZG93biBsb2NrZCBpZiB3ZSdyZSB0aGUgbGFz dC4NCiAqLw0Kdm9pZA0KbG9ja2RfZG93bih2b2lkKQ0Kew0KCXN0YXRpYyBpbnQgd2FybmVkID0g MDsgDQoNCglkb3duKCZubG1zdmNfc2VtYSk7DQoNCglpZiAobmxtc3ZjX3VzZXJzKSB7DQoJCWlm ICgtLW5sbXN2Y191c2VycykNCgkJCWdvdG8gb3V0Ow0KCX0gZWxzZQ0KCQlwcmludGsoS0VSTl9X QVJOSU5HICJsb2NrZF9kb3duOiBubyB1c2VycyEgcGlkPSVkXG4iLCBubG1zdmNfcGlkKTsNCg0K I2lmZGVmIE5MTV9QUk9DX0ZTICAgICAgDQogICAgICAgIG5sbV9wcm9jX2ZzX2V4aXQoKTsNCiNl bmRpZg0KDQoJaWYgKCFubG1zdmNfcGlkKSB7DQoJCWlmICh3YXJuZWQrKyA9PSAwKQ0KCQkJcHJp bnRrKEtFUk5fV0FSTklORyAibG9ja2RfZG93bjogbm8gbG9ja2QgcnVubmluZy5cbiIpOyANCgkJ Z290byBvdXQ7DQoJfQ0KCXdhcm5lZCA9IDA7DQoNCglraWxsX3Byb2Mobmxtc3ZjX3BpZCwgU0lH S0lMTCwgMSk7DQoJLyoNCgkgKiBXYWl0IGZvciB0aGUgbG9ja2QgcHJvY2VzcyB0byBleGl0LCBi dXQgc2luY2Ugd2UncmUgaG9sZGluZw0KCSAqIHRoZSBsb2NrZCBzZW1hcGhvcmUsIHdlIGNhbid0 IHdhaXQgYXJvdW5kIGZvcmV2ZXIgLi4uDQoJICovDQoJY3VycmVudC0+c2lncGVuZGluZyA9IDA7 DQoJaW50ZXJydXB0aWJsZV9zbGVlcF9vbl90aW1lb3V0KCZsb2NrZF9leGl0LCBIWik7DQoJaWYg KG5sbXN2Y19waWQpIHsNCgkJcHJpbnRrKEtFUk5fV0FSTklORyANCgkJCSJsb2NrZF9kb3duOiBs b2NrZCBmYWlsZWQgdG8gZXhpdCwgY2xlYXJpbmcgcGlkXG4iKTsNCgkJbmxtc3ZjX3BpZCA9IDA7 DQoJfQ0KCXNwaW5fbG9ja19pcnEoJmN1cnJlbnQtPnNpZ21hc2tfbG9jayk7DQoJcmVjYWxjX3Np Z3BlbmRpbmcoY3VycmVudCk7DQoJc3Bpbl91bmxvY2tfaXJxKCZjdXJyZW50LT5zaWdtYXNrX2xv Y2spOw0Kb3V0Og0KCXVwKCZubG1zdmNfc2VtYSk7DQp9DQoNCiNpZmRlZiBNT0RVTEUNCi8qIE5l dyBtb2R1bGUgc3VwcG9ydCBpbiAyLjEuMTggKi8NCg0KTU9EVUxFX0FVVEhPUigiT2xhZiBLaXJj aCA8b2tpckBtb25hZC5zd2IuZGU+Iik7DQpNT0RVTEVfREVTQ1JJUFRJT04oIk5GUyBmaWxlIGxv Y2tpbmcgc2VydmljZSB2ZXJzaW9uICIgTE9DS0RfVkVSU0lPTiAiLiIpOw0KTU9EVUxFX0xJQ0VO U0UoIkdQTCIpOw0KTU9EVUxFX1BBUk0obmxtX2dyYWNlX3BlcmlvZCwgIjEwLTI0MGwiKTsNCk1P RFVMRV9QQVJNKG5sbV90aW1lb3V0LCAiMy0yMGwiKTsNCk1PRFVMRV9QQVJNKG5sbV91ZHBwb3J0 LCAiMC02NTUzNWwiKTsNCk1PRFVMRV9QQVJNKG5sbV90Y3Bwb3J0LCAiMC02NTUzNWwiKTsNCg0K aW50DQppbml0X21vZHVsZSh2b2lkKQ0Kew0KCS8qIEluaXQgdGhlIHN0YXRpYyB2YXJpYWJsZXMg Ki8NCglpbml0X01VVEVYKCZubG1zdmNfc2VtYSk7DQoJbmxtc3ZjX3VzZXJzID0gMDsNCglubG1z dmNfcGlkID0gMDsNCglyZXR1cm4gMDsNCn0NCg0Kdm9pZA0KY2xlYW51cF9tb2R1bGUodm9pZCkN CnsNCgkvKiBGSVhNRTogZGVsZXRlIGFsbCBOTE0gY2xpZW50cyAqLw0KCW5sbV9zaHV0ZG93bl9o b3N0cygpOw0KfQ0KI2Vsc2UNCi8qIG5vdCBhIG1vZHVsZSwgc28gcHJvY2VzcyBib290YXJncw0K ICogbG9ja2QudWRwcG9ydCBhbmQgbG9ja2QudGNwcG9ydA0KICovDQoNCnN0YXRpYyBpbnQgX19p bml0IHVkcHBvcnRfc2V0KGNoYXIgKnN0cikNCnsNCglubG1fdWRwcG9ydCA9IHNpbXBsZV9zdHJ0 b3VsKHN0ciwgTlVMTCwgMCk7DQoJcmV0dXJuIDE7DQp9DQpzdGF0aWMgaW50IF9faW5pdCB0Y3Bw b3J0X3NldChjaGFyICpzdHIpDQp7DQoJbmxtX3RjcHBvcnQgPSBzaW1wbGVfc3RydG91bChzdHIs IE5VTEwsIDApOw0KCXJldHVybiAxOw0KfQ0KX19zZXR1cCgibG9ja2QudWRwcG9ydD0iLCB1ZHBw b3J0X3NldCk7DQpfX3NldHVwKCJsb2NrZC50Y3Bwb3J0PSIsIHRjcHBvcnRfc2V0KTsNCg0KI2Vu ZGlmDQoNCi8qDQogKiBEZWZpbmUgTkxNIHByb2dyYW0gYW5kIHByb2NlZHVyZXMNCiAqLw0Kc3Rh dGljIHN0cnVjdCBzdmNfdmVyc2lvbglubG1zdmNfdmVyc2lvbjEgPSB7DQoJMSwgMTcsIG5sbXN2 Y19wcm9jZWR1cmVzLCBOVUxMDQp9Ow0Kc3RhdGljIHN0cnVjdCBzdmNfdmVyc2lvbglubG1zdmNf dmVyc2lvbjMgPSB7DQoJMywgMjQsIG5sbXN2Y19wcm9jZWR1cmVzLCBOVUxMDQp9Ow0KI2lmZGVm IENPTkZJR19MT0NLRF9WNA0Kc3RhdGljIHN0cnVjdCBzdmNfdmVyc2lvbglubG1zdmNfdmVyc2lv bjQgPSB7DQoJNCwgMjQsIG5sbXN2Y19wcm9jZWR1cmVzNCwgTlVMTA0KfTsNCiNlbmRpZg0Kc3Rh dGljIHN0cnVjdCBzdmNfdmVyc2lvbiAqCW5sbXN2Y192ZXJzaW9uW10gPSB7DQoJTlVMTCwNCgkm bmxtc3ZjX3ZlcnNpb24xLA0KCU5VTEwsDQoJJm5sbXN2Y192ZXJzaW9uMywNCiNpZmRlZiBDT05G SUdfTE9DS0RfVjQNCgkmbmxtc3ZjX3ZlcnNpb240LA0KI2VuZGlmDQp9Ow0KDQpzdGF0aWMgc3Ry dWN0IHN2Y19zdGF0CQlubG1zdmNfc3RhdHM7DQoNCiNkZWZpbmUgTkxNX05SVkVSUwkoc2l6ZW9m KG5sbXN2Y192ZXJzaW9uKS9zaXplb2Yobmxtc3ZjX3ZlcnNpb25bMF0pKQ0Kc3RydWN0IHN2Y19w cm9ncmFtCQlubG1zdmNfcHJvZ3JhbSA9IHsNCglOTE1fUFJPR1JBTSwJCS8qIHByb2dyYW0gbnVt YmVyICovDQoJMSwgTkxNX05SVkVSUy0xLAkvKiB2ZXJzaW9uIHJhbmdlICovDQoJTkxNX05SVkVS UywJCS8qIG51bWJlciBvZiBlbnRyaWVzIGluIG5sbXN2Y192ZXJzaW9uICovDQoJbmxtc3ZjX3Zl cnNpb24sCQkvKiB2ZXJzaW9uIHRhYmxlICovDQoJImxvY2tkIiwJCS8qIHNlcnZpY2UgbmFtZSAq Lw0KCSZubG1zdmNfc3RhdHMsCQkvKiBzdGF0cyB0YWJsZSAqLw0KfTsNCg== --0__=08BBE6B2DFF135088f9e8a93df938690918c08BBE6B2DFF13508-- - 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/