Re: nbd request too big

Paul Clements (kernel@steeleye.com)
Mon, 7 Jan 2002 12:53:45 -0500 (EST)


This message is in MIME format. The first part should be readable text,
while the remaining parts are likely unreadable without MIME-aware tools.
Send mail to mime@docserver.cac.washington.edu for more info.

--296485894-351917321-1010426025=:5690
Content-Type: TEXT/PLAIN; charset=X-UNKNOWN
Content-Transfer-Encoding: QUOTED-PRINTABLE

Hi,

If you're using the nbd-server from Pavel Machek's web site, you'll need to=
patch=20
nbd-server.c to make it work on ~2.4.3+ kernels. My patched version of nbd-=
server.c
and cliserv.h are attached. The patched files make the server's request buf=
fer be
dynamically allocated, so any size request can be handled by the server.=20
The patched version also fixes some other outdated code (e.g., llseek -> ls=
eek64).

--=20
Paul Clements
Paul.Clements@SteelEye.com

On Mon, 7 Jan 2002, [iso-8859-1] Luc Robalo Marques wrote:

> hi,
>=20
> i would like to setup a nbd but when I try to mke2fs
> the device on the client side, the connection hangs
> and /log/messages contains a entry for mthe server
> telling that the request was too big.
> Any idea what caused it.
>=20
> Thanks you
>=20
> Luc robalo Marques
>=20
> ___________________________________________________________
> Do You Yahoo!? -- Une adresse @yahoo.fr gratuite et en fran=E7ais !
> Yahoo! Courrier : http://courrier.yahoo.fr
> -
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" i=
n
> 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/
>=20

--296485894-351917321-1010426025=:5690
Content-Type: TEXT/PLAIN; charset=US-ASCII; name="nbd-server.c"
Content-Transfer-Encoding: BASE64
Content-ID: <Pine.LNX.4.10.10201071253450.5690@clements.sc.steeleye.com>
Content-Description:
Content-Disposition: attachment; filename="nbd-server.c"

LyoNCiAqIE5ldHdvcmsgQmxvY2sgRGV2aWNlIC0gc2VydmVyDQogKg0KICog
Q29weXJpZ2h0IDE5OTYtMTk5OCBQYXZlbCBNYWNoZWssIGRpc3RyaWJ1dGUg
dW5kZXIgR1BMDQogKiAgPHBhdmVsQGF0cmV5Lmthcmxpbi5tZmYuY3VuaS5j
ej4NCiAqDQogKiBWZXJzaW9uIDEuMCAtIGhvcGVmdWxseSA2NC1iaXQtY2xl
YW4NCiAqIFZlcnNpb24gMS4xIC0gbWVyZ2luZyBlbmhhbmNlbWVudHMgZnJv
bSBKb3NoIFBhcnNvbnMsIDxqb3NoQGNvb21icy5hbnUuZWR1LmF1Pg0KICog
VmVyc2lvbiAxLjIgLSBhdXRvZGV0ZWN0IHNpemUgb2YgYmxvY2sgZGV2aWNl
cywgdGhhbnggdG8gUGV0ZXIgVC4gQnJldWVyIiA8cHRiQGl0LnVjM20uZXM+
DQogKi8NCg0KI2RlZmluZSBWRVJTSU9OICIxLjMiDQojZGVmaW5lIEdJR0Eg
KDEqMTAyNCoxMDI0KjEwMjQpDQoNCi8qIHVzZSBsc2VlazY0IGV4Y2x1c2l2
ZWx5ICovDQojZGVmaW5lIF9MQVJHRUZJTEVfU09VUkNFICAgLy8gU29tZSBt
b3JlIGZ1bmN0aW9ucyBmb3IgY29ycmVjdCBzdGFuZGFyZCBJL08uDQojZGVm
aW5lIF9MQVJHRUZJTEU2NF9TT1VSQ0UgLy8gQWRkaXRpb25hbCBmdW5jdGlv
bmFsaXR5IGZyb20gTEZTIGZvciBsYXJnZSBmaWxlcw0KDQojaW5jbHVkZSA8
c3lzL3NvY2tldC5oPg0KI2luY2x1ZGUgPHN5cy9zdGF0Lmg+DQojaW5jbHVk
ZSA8bmV0aW5ldC90Y3AuaD4NCiNpbmNsdWRlIDxuZXRpbmV0L2luLmg+CQkv
KiBzb2NrYWRkcl9pbiwgaHRvbnMsIGluX2FkZHIgKi8NCiNpbmNsdWRlIDxu
ZXRkYi5oPgkJLyogaG9zdGVudCwgZ2V0aG9zdGJ5KiwgZ2V0c2VydmJ5KiAq
Lw0KI2luY2x1ZGUgPHN5c2xvZy5oPg0KI2luY2x1ZGUgPHVuaXN0ZC5oPg0K
I2luY2x1ZGUgPHN0ZGlvLmg+DQojaW5jbHVkZSA8c3RkbGliLmg+DQojaW5j
bHVkZSA8c3RyaW5nLmg+DQojaW5jbHVkZSA8ZmNudGwuaD4NCiNpbmNsdWRl
IDxhcnBhL2luZXQuaD4NCg0KI2RlZmluZSBfSU8oYSxiKQ0KI2RlZmluZSBJ
U1NFUlZFUg0KI2RlZmluZSBNWV9OQU1FICJuYmRfc2VydmVyIg0KI2luY2x1
ZGUgImNsaXNlcnYuaCINCiN1bmRlZiBfSU8NCi8qIERlZXAgbWFnaWM6IGlv
Y3RsLmggZGVmaW5lcyBfSU8gbWFjcm8gKGF0IGxlYXN0IG9uIGxpbnV4KSAq
Lw0KDQojaW5jbHVkZSA8c3lzL2lvY3RsLmg+DQojaW5jbHVkZSA8c3lzL21v
dW50Lmg+CQkvKiBGb3IgQkxLR0VUU0laRSAqLw0KDQovLyAjZGVmaW5lIERP
REJHDQovLyAjZGVmaW5lIERFQlVHKCBhLi4uICkgcHJpbnRmKCBhICkNCiNk
ZWZpbmUgREVCVUcoIGEuLi4gKSBkbyB7IH0gd2hpbGUoMCkNCg0KDQppbmxp
bmUgdm9pZCByZWFkaXQoaW50IGYsIHZvaWQgKmJ1ZiwgaW50IGxlbikNCnsN
CglpbnQgcmVzOw0KCXdoaWxlIChsZW4gPiAwKSB7DQoJCURFQlVHKCIqIik7
DQoJCWlmICgocmVzID0gcmVhZChmLCBidWYsIGxlbikpIDw9IDApDQoJCQll
cnIoIlJlYWQgZmFpbGVkOiAlbSIpOw0KCQlsZW4gLT0gcmVzOw0KCQlidWYg
Kz0gcmVzOw0KCX0NCn0NCg0KaW5saW5lIHZvaWQgd3JpdGVpdChpbnQgZiwg
dm9pZCAqYnVmLCBpbnQgbGVuKQ0Kew0KCWludCByZXM7DQoJd2hpbGUgKGxl
biA+IDApIHsNCgkJREVCVUcoIisiKTsNCgkJaWYgKChyZXMgPSB3cml0ZShm
LCBidWYsIGxlbikpIDw9IDApDQoJCQllcnIoIldyaXRlIGZhaWxlZDogJW0i
KTsNCgkJbGVuIC09IHJlczsNCgkJYnVmICs9IHJlczsNCgl9DQp9DQoNCmlu
dCBwb3J0OwkJCS8qIFBvcnQgSSdtIGxpc3RlbmluZyBhdCAqLw0KY2hhciAq
ZXhwb3J0bmFtZTsJCS8qIEZpbGUgSSdtIGV4cG9ydGluZyAqLw0KdTY0IGV4
cG9ydHNpemUgPSB+MCwgaHVua3NpemUgPSB+MDsJLyogLi4uYW5kIGl0cyBs
ZW5ndGggKi8NCmludCBmbGFncyA9IDA7DQppbnQgZXhwb3J0WzEwMjRdOw0K
I2RlZmluZSBGX1JFQURPTkxZIDENCiNkZWZpbmUgRl9NVUxUSUZJTEUgMiAN
Cg0Kdm9pZCBjbWRsaW5lKGludCBhcmdjLCBjaGFyICphcmd2W10pDQp7DQoJ
aW50IGk7DQoNCglpZiAoYXJnYyA8IDMpIHsNCgkJcHJpbnRmKCJUaGlzIGlz
IG5iZC1zZXJ2ZXIgdmVyc2lvbiAiIFZFUlNJT04gIlxuIik7CQ0KCQlwcmlu
dGYoIlVzYWdlOiBwb3J0IGZpbGVfdG9fZXhwb3J0IFtzaXplXVtrS21NXSBb
LXJdXG4iDQoJCSAgICAgICAiCS1yIHJlYWQgb25seVxuIg0KCQkgICAgICAg
IglpZiBwb3J0IGlzIHNldCB0byAwLCBzdGRpbiBpcyB1c2VkIChmb3IgcnVu
bmluZyBmcm9tIGluZXRkKVxuIg0KCQkgICAgICAgIglpZiBmaWxlX3RvX2V4
cG9ydCBjb250YWlucyAnJSVzJywgaXQgaXMgc3Vic3RpdHV0ZWQgd2l0aCBJ
UFxuIg0KCQkgICAgICAgIgkJYWRkcmVzcyBvZiBtYWNoaW5lIHRyeWluZyB0
byBjb25uZWN0XG4iICk7DQoJCWV4aXQoMCk7DQoJfQ0KCXBvcnQgPSBhdG9p
KGFyZ3ZbMV0pOw0KCWZvciAoaSA9IDM7IGkgPCBhcmdjOyBpKyspIHsNCgkJ
aWYgKCphcmd2W2ldID09ICctJykgew0KCQkJc3dpdGNoIChhcmd2W2ldWzFd
KSB7DQoJCQljYXNlICdyJzoNCgkJCQlmbGFncyB8PSBGX1JFQURPTkxZOw0K
CQkJCWJyZWFrOw0KCQkJY2FzZSAnbSc6DQoJCQkJZmxhZ3MgfD0gRl9NVUxU
SUZJTEU7DQoJCQkJaHVua3NpemUgPSAxKkdJR0E7DQoJCQkJYnJlYWs7DQoJ
CQl9DQoJCX0gZWxzZSB7DQoJCQl1NjQgZXM7DQoJCQlpbnQgbGFzdCA9IHN0
cmxlbihhcmd2W2ldKS0xOw0KCQkJY2hhciBzdWZmaXggPSBhcmd2W2ldW2xh
c3RdOw0KCQkJaWYgKHN1ZmZpeCA9PSAnaycgfHwgc3VmZml4ID09ICdLJyB8
fA0KCQkJICAgIHN1ZmZpeCA9PSAnbScgfHwgc3VmZml4ID09ICdNJykNCgkJ
CQlhcmd2W2ldW2xhc3RdID0gJ1wwJzsNCgkJCWVzID0gKHU2NClhdG9sKGFy
Z3ZbaV0pOw0KCQkJc3dpdGNoIChzdWZmaXgpIHsNCgkJCQljYXNlICdtJzoN
CgkJCQljYXNlICdNJzogIGVzIDw8PSAxMDsNCgkJCQljYXNlICdrJzoNCgkJ
CQljYXNlICdLJzogIGVzIDw8PSAxMDsNCgkJCQlkZWZhdWx0IDogIGJyZWFr
Ow0KCQkJfQ0KCQkJZXhwb3J0c2l6ZSA9IGVzOw0KCQl9DQoJfQ0KDQoJZXhw
b3J0bmFtZSA9IGFyZ3ZbMl07DQp9DQoNCmludCBjb25uZWN0bWUoaW50IHBv
cnQpDQp7DQoJc3RydWN0IHNvY2thZGRyX2luIGFkZHJpbjsNCglpbnQgYWRk
cmlubGVuID0gc2l6ZW9mKGFkZHJpbik7DQoJaW50IG5ldCwgc29jazsNCglp
bnQgc2l6ZSA9IDE7DQoNCglpZiAoKHNvY2sgPSBzb2NrZXQoQUZfSU5FVCwg
U09DS19TVFJFQU0sIElQUFJPVE9fVENQKSkgPCAwKQ0KCQllcnIoInNvY2tl
dDogJW0iKTsNCgkvLyBTdGVlbEV5ZSBjaGFuZ2UgLSByZXVzZSB0aGUgcG9y
dCBudW1iZXINCglpZiAoc2V0c29ja29wdChzb2NrLCBTT0xfU09DS0VULCBT
T19SRVVTRUFERFIsICZzaXplLCBzaXplb2YoaW50KSkgPCAwKQ0KCQllcnIo
InNldHNvY2tvcHQ6ICVtIik7DQoNCglERUJVRygiV2FpdGluZyBmb3IgY29u
bmVjdGlvbnMuLi4gYmluZCwgIik7DQoJYWRkcmluLnNpbl9mYW1pbHkgPSBB
Rl9JTkVUOw0KCWFkZHJpbi5zaW5fcG9ydCA9IGh0b25zKHBvcnQpOw0KCWFk
ZHJpbi5zaW5fYWRkci5zX2FkZHIgPSAwOw0KCWlmIChiaW5kKHNvY2ssIChz
dHJ1Y3Qgc29ja2FkZHIgKikgJmFkZHJpbiwgYWRkcmlubGVuKSA8IDApDQoJ
CWVycigiYmluZDogJW0iKTsNCglERUJVRygibGlzdGVuLCAiKTsNCglpZiAo
bGlzdGVuKHNvY2ssIDEpIDwgMCkNCgkJZXJyKCJsaXN0ZW46ICVtIik7DQoJ
REVCVUcoImFjY2VwdCwgIik7DQoJaWYgKChuZXQgPSBhY2NlcHQoc29jaywg
KHN0cnVjdCBzb2NrYWRkciAqKSAmYWRkcmluLCAmYWRkcmlubGVuKSkgPCAw
KQ0KCQllcnIoImFjY2VwdDogJW0iKTsNCg0KCXJldHVybiBuZXQ7DQp9DQoN
CiNkZWZpbmUgU0VORCB3cml0ZWl0KCBuZXQsICZyZXBseSwgc2l6ZW9mKCBy
ZXBseSApKTsNCiNkZWZpbmUgRVJST1IgeyByZXBseS5lcnJvciA9IGh0b25s
KC0xKTsgU0VORDsgcmVwbHkuZXJyb3IgPSAwOyBsYXN0cG9pbnQgPSAtMTsg
fQ0KDQp1NjQgbGFzdHBvaW50ID0gLTE7DQoNCnZvaWQgbWF5YmVzZWVrKGlu
dCBoYW5kbGUsIHU2NCBhKQ0Kew0KCWlmIChhID4gZXhwb3J0c2l6ZSkNCgkJ
ZXJyKCJDYW4gbm90IGhhcHBlblxuIik7DQoJaWYgKGxhc3Rwb2ludCAhPSBh
KSB7DQoJCWlmIChsc2VlazY0KGhhbmRsZSwgYSwgU0VFS19TRVQpIDwgMCkN
CgkJCWVycigiQ2FuIG5vdCBzZWVrIGxvY2FsbHkhXG4iKTsNCgkJbGFzdHBv
aW50ID0gYTsNCgl9IGVsc2Ugew0KCQlERUJVRygiQCIpOw0KCX0NCn0NCg0K
aW50IGV4cHJlYWQodTY0IGEsIGNoYXIgKmJ1ZiwgaW50IGxlbikNCnsNCglt
YXliZXNlZWsoZXhwb3J0W2EvaHVua3NpemVdLCBhJWh1bmtzaXplKTsNCgly
ZXR1cm4gKHJlYWQoZXhwb3J0W2EvaHVua3NpemVdLCBidWYsIGxlbikgIT0g
bGVuKTsNCn0NCg0KaW50IGV4cHdyaXRlKHU2NCBhLCBjaGFyICpidWYsIGlu
dCBsZW4pDQp7DQoJbWF5YmVzZWVrKGV4cG9ydFthL2h1bmtzaXplXSwgYSVo
dW5rc2l6ZSk7DQoJcmV0dXJuICh3cml0ZShleHBvcnRbYS9odW5rc2l6ZV0s
IGJ1ZiwgbGVuKSAhPSBsZW4pOw0KfQ0KDQppbnQgbWFpbmxvb3AoaW50IG5l
dCkNCnsNCglzdHJ1Y3QgbmJkX3JlcXVlc3QgcmVxdWVzdDsNCglzdHJ1Y3Qg
bmJkX3JlcGx5IHJlcGx5Ow0KCWNoYXIgemVyb3NbMzAwXTsNCglpbnQgaSA9
IDA7DQoJdTY0IHNpemVfaG9zdDsNCg0KCWJ6ZXJvKHplcm9zLCAyOTApOw0K
CWlmICh3cml0ZShuZXQsIElOSVRfUEFTU1dELCA4KSA8IDApDQoJCWVycigi
TmVnb3RpYXRpb24gZmFpbGVkOiAlbSIpOw0KCWNsaXNlcnZfbWFnaWMgPSBo
dG9ubGwoY2xpc2Vydl9tYWdpYyk7DQoJaWYgKHdyaXRlKG5ldCwgJmNsaXNl
cnZfbWFnaWMsIHNpemVvZihjbGlzZXJ2X21hZ2ljKSkgPCAwKQ0KCQllcnIo
Ik5lZ290aWF0aW9uIGZhaWxlZDogJW0iKTsNCglzaXplX2hvc3QgPSBodG9u
bGwoZXhwb3J0c2l6ZSk7DQoJaWYgKHdyaXRlKG5ldCwgJnNpemVfaG9zdCwg
OCkgPCAwKQ0KCQllcnIoIk5lZ290aWF0aW9uIGZhaWxlZDogJW0iKTsNCglp
ZiAod3JpdGUobmV0LCB6ZXJvcywgMTI4KSA8IDApDQoJCWVycigiTmVnb3Rp
YXRpb24gZmFpbGVkOiAlbSIpOw0KDQoJREVCVUcoIkVudGVyaW5nIHJlcXVl
c3QgbG9vcCFcbiIpOw0KCXJlcGx5Lm1hZ2ljID0gaHRvbmwoTkJEX1JFUExZ
X01BR0lDKTsNCglyZXBseS5lcnJvciA9IDA7DQoJd2hpbGUgKDEpIHsNCgkJ
LyogU3RlZWxFeWUgY2hhbmdlIC0gbmVlZCBkeW5hbWljIGJ1ZmZlciB0byB3
b3JrIHdpdGggZWxldmF0b3IgKi8NCgkJc3RhdGljIGxvbmcgbWF4X25iZF9y
ZXF1ZXN0PTEzMTA3MjsgLyogMTI4SyAqLw0KCQlzdGF0aWMgY2hhciAqYnVm
PU5VTEw7DQoJCWludCBsZW47DQoNCiNpZmRlZiBET0RCRw0KCQlpKys7DQoJ
CXByaW50ZigiJWQ6ICIsIGkpOw0KI2VuZGlmDQoNCgkJcmVhZGl0KG5ldCwg
JnJlcXVlc3QsIHNpemVvZihyZXF1ZXN0KSk7DQoJCXJlcXVlc3QuZnJvbSA9
IG50b2hsbChyZXF1ZXN0LmZyb20pOw0KCQlyZXF1ZXN0LnR5cGUgPSBudG9o
bChyZXF1ZXN0LnR5cGUpOw0KCQlsZW4gPSBudG9obChyZXF1ZXN0Lmxlbik7
DQoNCgkJaWYgKHJlcXVlc3QubWFnaWMgIT0gaHRvbmwoTkJEX1JFUVVFU1Rf
TUFHSUMpKQ0KCQkJZXJyKCJOb3QgZW5vdWdoIG1hZ2ljLiIpOw0KDQoJCURF
QlVHKCJyZXF1ZXN0IGxlbjogJWQgYnl0ZXNcbiIsIGxlbik7DQoNCgkJd2hp
bGUgKGxlbiA+IG1heF9uYmRfcmVxdWVzdCB8fCAhYnVmKSB7DQoJCQkvKiBT
dGVlbEV5ZSBjaGFuZ2UgLSAocmUpYWxsb2NhdGUgdGhlIGJ1ZmZlciAqLw0K
CQkJaWYgKGJ1ZikgDQoJCQkJZnJlZShidWYpOw0KCQkJaWYgKGxlbiA+IG1h
eF9uYmRfcmVxdWVzdCkgDQoJCQkJbWF4X25iZF9yZXF1ZXN0ID0gbGVuOw0K
CQkJYnVmPW1hbGxvYyhtYXhfbmJkX3JlcXVlc3QpOw0KCQkJaWYgKCFidWYp
IA0KCQkJCURFQlVHKCJmYWlsZWQgdG8gYWxsb2NhdGUgJWQgYnl0ZSBidWZm
ZXJcbiIsIG1heF9uYmRfcmVxdWVzdCk7DQoJCX0NCiNpZmRlZiBET0RCRw0K
CQlwcmludGYoIiVzIGZyb20gJWQgKCVkKSBsZW4gJWQsICIsIChyZXF1ZXN0
LnR5cGUgPyAiV1JJVEUiIDogIlJFQUQiKSwNCgkJICAgICAgIChpbnQpIHJl
cXVlc3QuZnJvbSwgKGludCkgcmVxdWVzdC5mcm9tIC8gNTEyLCBsZW4pOw0K
I2VuZGlmDQoJCW1lbWNweShyZXBseS5oYW5kbGUsIHJlcXVlc3QuaGFuZGxl
LCBzaXplb2YocmVwbHkuaGFuZGxlKSk7DQoJCWlmICgoKHJlcXVlc3QuZnJv
bSArIGxlbikgPiBleHBvcnRzaXplKSB8fA0KCQkgICAgKChmbGFncyAmIEZf
UkVBRE9OTFkpICYmIHJlcXVlc3QudHlwZSkpIHsNCgkJCURFQlVHKCJbUkFO
R0UhXSIpOw0KCQkJRVJST1I7DQoJCQljb250aW51ZTsNCgkJfQ0KCQlpZiAo
cmVxdWVzdC50eXBlKSB7CS8qIFdSSVRFICovDQoJCQlERUJVRygid3I6IG5l
dC0+YnVmLCAiKTsNCgkJCXJlYWRpdChuZXQsIGJ1ZiwgbGVuKTsNCgkJCURF
QlVHKCJidWYtPmV4cCwgIik7DQoJCQlpZiAoZXhwd3JpdGUocmVxdWVzdC5m
cm9tLCBidWYsIGxlbikpIHsNCgkJCQlERUJVRygiV3JpdGUgZmFpbGVkOiAl
bSIgKTsNCgkJCQlFUlJPUjsNCgkJCQljb250aW51ZTsNCgkJCX0NCgkJCWxh
c3Rwb2ludCArPSBsZW47DQoJCQlTRU5EOw0KCQkJY29udGludWU7DQoJCX0N
CgkJLyogUkVBRCAqLw0KDQoJCURFQlVHKCJleHAtPmJ1ZiwgIik7DQoJCWlm
IChleHByZWFkKHJlcXVlc3QuZnJvbSwgYnVmICsgc2l6ZW9mKHN0cnVjdCBu
YmRfcmVwbHkpLCBsZW4pKSB7DQoJCSAJbGFzdHBvaW50ID0gLTE7DQoJCQlE
RUJVRygiUmVhZCBmYWlsZWQ6ICVtIik7DQoJCQlFUlJPUjsNCgkJCWNvbnRp
bnVlOw0KCQl9DQoJCWxhc3Rwb2ludCArPSBsZW47DQoNCgkJREVCVUcoImJ1
Zi0+bmV0LCAiKTsNCgkJbWVtY3B5KGJ1ZiwgJnJlcGx5LCBzaXplb2Yoc3Ry
dWN0IG5iZF9yZXBseSkpOw0KCQl3cml0ZWl0KG5ldCwgYnVmLCBsZW4gKyBz
aXplb2Yoc3RydWN0IG5iZF9yZXBseSkpOw0KCQlERUJVRygiT0shXG4iKTsN
Cgl9DQp9DQoNCmNoYXIgZXhwb3J0bmFtZTJbMTAyNF07DQoNCnZvaWQgc2V0
X3BlZXJuYW1lKGludCBuZXQpDQp7DQoJc3RydWN0IHNvY2thZGRyX2luIGFk
ZHJpbjsNCglpbnQgYWRkcmlubGVuID0gc2l6ZW9mKCBhZGRyaW4gKTsNCglj
aGFyICpwZWVybmFtZTsNCg0KCWlmIChnZXRwZWVybmFtZSggbmV0LCAoc3Ry
dWN0IHNvY2thZGRyICopICZhZGRyaW4sICZhZGRyaW5sZW4gKSA8IDApDQoJ
CWVycigiZ2V0c29ja25hbWUgZmFpbGVkOiAlbSIpOw0KCXBlZXJuYW1lID0g
aW5ldF9udG9hKGFkZHJpbi5zaW5fYWRkcik7DQoJc3ByaW50ZihleHBvcnRu
YW1lMiwgZXhwb3J0bmFtZSwgcGVlcm5hbWUpOw0KDQoJc3lzbG9nKExPR19J
TkZPLCAiY29ubmVjdCBmcm9tICVzLCBhc3NpZ25lZCBmaWxlIGlzICVzIiwg
cGVlcm5hbWUsIGV4cG9ydG5hbWUyKTsNCn0NCg0KdTY0IHNpemVfYXV0b2Rl
dGVjdChpbnQgZXhwb3J0KQ0Kew0KCXU2NCBlczsNCglERUJVRygibG9va2lu
ZyBmb3IgZXhwb3J0IHNpemUgd2l0aCBsc2VlayBTRUVLX0VORFxuIik7DQoJ
aWYgKChlcyA9IGxzZWVrNjQoZXhwb3J0LCAwLCBTRUVLX0VORCkpID09IE1J
TlVTX09ORV82NCB8fCBlcyA9PSAwKSB7DQoJCXN0cnVjdCBzdGF0IHN0YXRf
YnVmID0geyAwLCB9IDsNCgkJaW50IGVycm9yOw0KCQlERUJVRygibG9va2lu
ZyBmb3IgZXhwb3J0IHNpemUgd2l0aCBmc3RhdFxuIik7DQoJCWlmICgoZXJy
b3IgPSBmc3RhdChleHBvcnQsICZzdGF0X2J1ZikpID09IC0xIHx8IHN0YXRf
YnVmLnN0X3NpemUgPT0gMCApIHsNCgkJCURFQlVHKCJsb29raW5nIGZvciBl
eHBvcnQgc2l6ZSB3aXRoIGlvY3RsIEJMS0dFVFNJWkVcbiIpOw0KI2lmZGVm
IEJMS0dFVFNJWkUNCgkJCWlmKGlvY3RsKGV4cG9ydCwgQkxLR0VUU0laRSwg
JmVzKSB8fCBlcyA9PSAwKSB7DQojZWxzZQ0KCQkJaWYoMSl7DQojZW5kaWYN
CgkJCQllcnIoIkNvdWxkIG5vdCBmaW5kIHNpemUgb2YgZXhwb3J0ZWQgYmxv
Y2sgZGV2aWNlOiAlbSIpOw0KCQkJfSBlbHNlIHsNCgkJCQllcyAqPSA1MTI7
IC8qIGFzc3VtZSBibG9ja3NpemUgNTEyICovDQoJCQl9DQoJCX0gZWxzZSB7
DQoJCQllcyA9IHN0YXRfYnVmLnN0X3NpemU7DQoJCX0NCgl9DQoJcmV0dXJu
IGVzOw0KfQ0KDQppbnQgbWFpbihpbnQgYXJnYywgY2hhciAqYXJndltdKQ0K
ew0KCWludCBuZXQ7DQoJdTY0IGk7DQoNCglpZiAoc2l6ZW9mKCBzdHJ1Y3Qg
bmJkX3JlcXVlc3QgKSE9MjgpDQoJCWVycigiQmFkIHNpemUgb2Ygc3RydWN0
dXJlLiBBbGlnbm1lbnQgcHJvYmxlbXM/Iik7DQoNCglsb2dnaW5nKCk7DQoJ
Y21kbGluZShhcmdjLCBhcmd2KTsNCgkNCglpZiAocG9ydCkNCgkJbmV0ID0g
Y29ubmVjdG1lKHBvcnQpOw0KCWVsc2UNCgkJbmV0ID0gMDsNCglzZXRfcGVl
cm5hbWUobmV0KTsNCg0KCWZvciAoaT0wOyBpPGV4cG9ydHNpemU7IGkrPWh1
bmtzaXplKSB7DQoJCWNoYXIgZXhwb3J0bmFtZTNbMTAyNF07DQoNCgkJc3By
aW50ZihleHBvcnRuYW1lMywgZXhwb3J0bmFtZTIsIGkvaHVua3NpemUpOw0K
CQlwcmludGYoICJPcGVuaW5nICVzXG4iLCBleHBvcnRuYW1lMyApOw0KCQlp
ZiAoKGV4cG9ydFtpL2h1bmtzaXplXSA9IG9wZW4oZXhwb3J0bmFtZTMsIChm
bGFncyAmIEZfUkVBRE9OTFkpID8gT19SRE9OTFkgOiBPX1JEV1IpKSA9PSAt
MSkNCgkJCWVycigiQ291bGQgbm90IG9wZW4gZXhwb3J0ZWQgZmlsZTogJW0i
KTsNCgl9DQoJDQoJaWYgKGV4cG9ydHNpemUgPT0gfjApIHsNCgkJZXhwb3J0
c2l6ZSA9IHNpemVfYXV0b2RldGVjdChleHBvcnRbMF0pOw0KCX0NCglpZiAo
ZXhwb3J0c2l6ZSA+ICh+MFVMID4+IDEpKQ0KCQlpZiAoKGV4cG9ydHNpemUg
Pj4gMTApID4gKH4wVUwgPj4gMSkpDQoJCQlzeXNsb2coTE9HX0lORk8sICJz
aXplIG9mIGV4cG9ydGVkIGZpbGUvZGV2aWNlIGlzICVsdU1CIiwNCgkJCQkg
ICAgICAgKHVuc2lnbmVkIGxvbmcpKGV4cG9ydHNpemUgPj4gMjApKTsNCgkJ
ZWxzZQ0KCQkJc3lzbG9nKExPR19JTkZPLCAic2l6ZSBvZiBleHBvcnRlZCBm
aWxlL2RldmljZSBpcyAlbHVLQiIsDQoJCQkgICAgICAgKHVuc2lnbmVkIGxv
bmcpKGV4cG9ydHNpemUgPj4gMTApKTsNCgllbHNlDQoJCXN5c2xvZyhMT0df
SU5GTywgInNpemUgb2YgZXhwb3J0ZWQgZmlsZS9kZXZpY2UgaXMgJWx1IiwN
CgkJICAgICAgICh1bnNpZ25lZCBsb25nKWV4cG9ydHNpemUpOw0KCXNldG15
c29ja29wdChuZXQpOw0KDQoJbWFpbmxvb3AobmV0KTsNCglyZXR1cm4gMDsN
Cn0NCg==
--296485894-351917321-1010426025=:5690
Content-Type: TEXT/PLAIN; charset=US-ASCII; name="cliserv.h"
Content-Transfer-Encoding: BASE64
Content-ID: <Pine.LNX.4.10.10201071253451.5690@clements.sc.steeleye.com>
Content-Description:
Content-Disposition: attachment; filename="cliserv.h"

LyogVGhpcyBoZWFkZXIgZmlsZSBpcyBzaGFyZWQgYnkgY2xpZW50ICYgc2Vy
dmVyLiBUaGV5IHJlYWxseSBoYXZlDQogKiBzb21ldGhpbmcgdG8gc2hhcmUu
Li4NCiAqICovDQoNCi8qIENsaWVudC9zZXJ2ZXIgcHJvdG9jb2wgaXMgYXMg
Zm9sbG93czoNCiAgIFNlbmQgSU5JVF9QQVNTV0QNCiAgIFNlbmQgNjQtYml0
IGNsaXNlcnZfbWFnaWMNCiAgIFNlbmQgNjQtYml0IHNpemUgb2YgZXhwb3J0
ZWQgZGV2aWNlDQogICBTZW5kIDEyOCBieXRlcyBvZiB6ZXJvcyAocmVzZXJ2
ZWQgZm9yIGZ1dHVyZSB1c2UpDQogKi8NCg0KI2luY2x1ZGUgImNvbmZpZy5o
Ig0KI2luY2x1ZGUgPGVycm5vLmg+DQojaW5jbHVkZSA8c3RyaW5nLmg+DQoj
aW5jbHVkZSA8bmV0ZGIuaD4NCg0KI2lmIFNJWkVPRl9VTlNJR05FRF9TSE9S
VF9JTlQ9PTQNCnR5cGVkZWYgdW5zaWduZWQgc2hvcnQgdTMyOw0KI2VsaWYg
U0laRU9GX1VOU0lHTkVEX0lOVD09NA0KdHlwZWRlZiB1bnNpZ25lZCBpbnQg
dTMyOw0KI2VsaWYgU0laRU9GX1VOU0lHTkVEX0xPTkdfSU5UPT00DQp0eXBl
ZGVmIHVuc2lnbmVkIGxvbmcgdTMyOw0KI2Vsc2UNCiNlcnJvciBJIG5lZWQg
YXQgbGVhc3Qgc29tZSAzMi1iaXQgdHlwZQ0KI2VuZGlmDQoNCiNpZiBTSVpF
T0ZfVU5TSUdORURfSU5UPT04DQp0eXBlZGVmIHVuc2lnbmVkIGludCB1NjQ7
DQojZGVmaW5lIE1JTlVTX09ORV82NCAoLTFVKQ0KI2VsaWYgU0laRU9GX1VO
U0lHTkVEX0xPTkdfSU5UPT04DQp0eXBlZGVmIHVuc2lnbmVkIGxvbmcgdTY0
Ow0KI2RlZmluZSBNSU5VU19PTkVfNjQgKC0xVUwpDQojZWxpZiBTSVpFT0Zf
VU5TSUdORURfTE9OR19MT05HX0lOVD09OA0KdHlwZWRlZiB1bnNpZ25lZCBs
b25nIGxvbmcgdTY0Ow0KI2RlZmluZSBNSU5VU19PTkVfNjQgKC0xVUxMKQ0K
I2Vsc2UNCiNlcnJvciBJIG5lZWQgYXQgbGVhc3Qgc29tZSA2NC1iaXQgdHlw
ZQ0KI2VuZGlmDQoNCiNpbmNsdWRlICJuYmQuaCINCg0KdTY0IGNsaXNlcnZf
bWFnaWMgPSAweDAwNDIwMjgxODYxMjUzTEw7DQojZGVmaW5lIElOSVRfUEFT
U1dEICJOQkRNQUdJQyINCg0KI2RlZmluZSBJTkZPKGEpIGRvIHsgfSB3aGls
ZSgwKQ0KDQp2b2lkIHNldG15c29ja29wdChpbnQgc29jaykNCnsNCglpbnQg
c2l6ZSA9IDE7DQojaWYgMA0KCWlmIChzZXRzb2Nrb3B0KHNvY2ssIFNPTF9T
T0NLRVQsIFNPX1NOREJVRiwgJnNpemUsIHNpemVvZihpbnQpKSA8IDApDQoJ
CSBJTkZPKCIobm8gc29ja29wdC8xOiAlbSkiKTsNCiNlbmRpZg0KCXNpemUg
PSAxOw0KCWlmIChzZXRzb2Nrb3B0KHNvY2ssIFNPTF9UQ1AsIFRDUF9OT0RF
TEFZLCAmc2l6ZSwgc2l6ZW9mKGludCkpIDwgMCkNCgkJIElORk8oIihubyBz
b2Nrb3B0LzI6ICVtKSIpOw0KI2lmIDANCglzaXplID0gMTAyNDsNCglpZiAo
c2V0c29ja29wdChzb2NrLCBTT0xfVENQLCBUQ1BfTUFYU0VHLCAmc2l6ZSwg
c2l6ZW9mKGludCkpIDwgMCkNCgkJIElORk8oIihubyBzb2Nrb3B0LzM6ICVt
KSIpOw0KI2VuZGlmDQp9DQoNCnZvaWQgZXJyKGNvbnN0IGNoYXIgKnMpDQp7
DQoJY29uc3QgaW50IG1heGxlbiA9IDE1MDsNCgljaGFyIHMxW21heGxlbl0s
ICpzMjsNCglpbnQgbiA9IDA7DQoNCglzdHJuY3B5KHMxLCBzLCBtYXhsZW4p
Ow0KCWlmIChzMiA9IHN0cnN0cihzLCAiJW0iKSkgew0KCQlzdHJjcHkoczEg
KyAoczIgLSBzKSwgc3lzX2Vycmxpc3RbZXJybm9dKTsNCgkJczIgKz0gMjsN
CgkJc3RyY3B5KHMxICsgc3RybGVuKHMxKSwgczIpOw0KCX0NCgllbHNlIGlm
IChzMiA9IHN0cnN0cihzLCAiJWgiKSkgew0KCQlzdHJjcHkoczEgKyAoczIg
LSBzKSwgaHN0cmVycm9yKGhfZXJybm8pKTsNCgkJczIgKz0gMjsNCgkJc3Ry
Y3B5KHMxICsgc3RybGVuKHMxKSwgczIpOw0KCX0NCg0KCXMxW21heGxlbi0x
XSA9ICdcMCc7DQojaWZkZWYgSVNTRVJWRVINCglzeXNsb2coTE9HX0VSUiwg
czEpOw0KI2Vsc2UNCglmcHJpbnRmKHN0ZGVyciwgIkVycm9yOiAlc1xuIiwg
czEpOw0KI2VuZGlmDQoJZXhpdCgxKTsNCn0NCg0Kdm9pZCBsb2dnaW5nKHZv
aWQpDQp7DQojaWZkZWYgSVNTRVJWRVINCglvcGVubG9nKE1ZX05BTUUsIExP
R19QSUQsIExPR19EQUVNT04pOw0KI2VuZGlmDQoJc2V0dmJ1ZihzdGRvdXQs
IE5VTEwsIF9JT05CRiwgMCk7DQoJc2V0dmJ1ZihzdGRlcnIsIE5VTEwsIF9J
T05CRiwgMCk7DQp9DQoNCiNpZmRlZiBXT1JEU19CSUdFTkRJQU4NCnU2NCBu
dG9obGwodTY0IGEpDQp7DQoJcmV0dXJuIGE7DQp9DQojZWxzZQ0KdTY0IG50
b2hsbCh1NjQgYSkNCnsNCgl1MzIgbG8gPSBhICYgMHhmZmZmZmZmZjsNCgl1
MzIgaGkgPSBhID4+IDMyVTsNCglsbyA9IG50b2hsKGxvKTsNCgloaSA9IG50
b2hsKGhpKTsNCglyZXR1cm4gKCh1NjQpIGxvKSA8PCAzMlUgfCBoaTsNCn0N
CiNlbmRpZg0KI2RlZmluZSBodG9ubGwgbnRvaGxsDQo=
--296485894-351917321-1010426025=:5690--
-
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/