hpfs patch

Mikulas Patocka (mikulas@artax.karlin.mff.cuni.cz)
Fri, 25 Jun 1999 18:38:20 +0200 (CEST)


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.

--1908636959-625124790-930328700=:7352
Content-Type: TEXT/PLAIN; charset=US-ASCII

Hi.
Here goes patch for HPFS against 2.3.9-pre3. It seems to work.
I won't have access to net during holiday, this is the last patch I'm
sending.

Mikulas Patocka

--1908636959-625124790-930328700=:7352
Content-Type: TEXT/PLAIN; charset=US-ASCII; name=hpfs-9-patch
Content-Transfer-Encoding: BASE64
Content-ID: <Pine.LNX.3.96.990625183820.7352B@artax.karlin.mff.cuni.cz>
Content-Description: hpfs-patch-2.3.9-pre3

QmluYXJ5IGZpbGVzIGxpbnV4LWNsZWFuL2xpbnV4L2ZzL2V4dDIvaW5vZGUu
Yy5zd3AgYW5kIGxpbnV4L2ZzL2V4dDIvaW5vZGUuYy5zd3AgZGlmZmVyDQpk
aWZmIC11ck4gLXggKi5bYW9zXSAteCAqLnJlaiAteCAqLm9yaWcgLXggKi5m
bGFncyAteCAqLnRneiAteCAqLnRhci5neiAteCAqLm1hcCAteCB2bWxpbnUq
IC14IHpJbWFnZSAteCAuKiAteCBib290c2VjdCAteCBzZXR1cCAteCBidWls
ZCAteCBjb21waWxlLmggLXggY29uc29sZW1hcF9kZWZ0YmwuYyAteCBjb25t
YWtlaGFzaCAteCBta2luc3QgLXggbWsgLXggbWtkaXN0IC14IG1udCAteCBo
cGZzLXJvIC14IGFzbSAteCBjb25maWcgLXggYXV0b2NvbmYuaCAteCB2ZXJz
aW9uLmggLXggbW9kdmVyc2lvbnMuaCAteCBtb2R1bGVzIC14IHNjcmlwdHMg
bGludXgtY2xlYW4vbGludXgvZnMvaHBmcy9NYWtlZmlsZSBsaW51eC9mcy9o
cGZzL01ha2VmaWxlDQotLS0gbGludXgtY2xlYW4vbGludXgvZnMvaHBmcy9N
YWtlZmlsZQlTYXQgTWF5IDE1IDIwOjMyOjUwIDE5OTkNCisrKyBsaW51eC9m
cy9ocGZzL01ha2VmaWxlCUZyaSBKdW4gMjUgMTg6MDk6MjkgMTk5OQ0KQEAg
LTEsNSArMSw1IEBADQogT19UQVJHRVQgOj0gaHBmcy5vDQotT19PQkpTIDo9
IGFsbG9jLm8gYW5vZGUubyBidWZmZXIubyBkZW50cnkubyBkaXIubyBkbm9k
ZS5vIGVhLm8gZmlsZS5vIGlub2RlLm8gbWFwLm8gbW1hcC5vIG5hbWUubyBu
YW1laS5vIHN1cGVyLm8NCitPX09CSlMgOj0gYWxsb2MubyBhbm9kZS5vIGJ1
ZmZlci5vIGRlbnRyeS5vIGRpci5vIGRub2RlLm8gZWEubyBmaWxlLm8gaW5v
ZGUubyBtYXAubyBuYW1lLm8gbmFtZWkubyBzdXBlci5vDQogTV9PQkpTIDo9
ICQoT19UQVJHRVQpDQogDQogaW5jbHVkZSAkKFRPUERJUikvUnVsZXMubWFr
ZQ0KZGlmZiAtdXJOIC14ICouW2Fvc10gLXggKi5yZWogLXggKi5vcmlnIC14
ICouZmxhZ3MgLXggKi50Z3ogLXggKi50YXIuZ3ogLXggKi5tYXAgLXggdm1s
aW51KiAteCB6SW1hZ2UgLXggLiogLXggYm9vdHNlY3QgLXggc2V0dXAgLXgg
YnVpbGQgLXggY29tcGlsZS5oIC14IGNvbnNvbGVtYXBfZGVmdGJsLmMgLXgg
Y29ubWFrZWhhc2ggLXggbWtpbnN0IC14IG1rIC14IG1rZGlzdCAteCBtbnQg
LXggaHBmcy1ybyAteCBhc20gLXggY29uZmlnIC14IGF1dG9jb25mLmggLXgg
dmVyc2lvbi5oIC14IG1vZHZlcnNpb25zLmggLXggbW9kdWxlcyAteCBzY3Jp
cHRzIGxpbnV4LWNsZWFuL2xpbnV4L2ZzL2hwZnMvZmlsZS5jIGxpbnV4L2Zz
L2hwZnMvZmlsZS5jDQotLS0gbGludXgtY2xlYW4vbGludXgvZnMvaHBmcy9m
aWxlLmMJV2VkIEp1biAyMyAxMToyODoxNSAxOTk5DQorKysgbGludXgvZnMv
aHBmcy9maWxlLmMJRnJpIEp1biAyNSAxNDo0MDozMiAxOTk5DQpAQCAtNTMs
MTQzICs1MywxMTEgQEANCiB7DQogCWlmIChJU19JTU1VVEFCTEUoaSkpIHJl
dHVybiAvKi1FUEVSTSovOw0KIAlpLT5pX2hwZnNfbl9zZWNzID0gMDsNCi0J
aHBmc190cnVuY2F0ZV9idHJlZShpLT5pX3NiLCBpLT5pX2lubywgMSwgKChp
LT5pX3NpemUgKyA1MTEpID4+IDkpKTsNCiAJaS0+aV9ibG9ja3MgPSAxICsg
KChpLT5pX3NpemUgKyA1MTEpID4+IDkpOw0KKwlocGZzX3RydW5jYXRlX2J0
cmVlKGktPmlfc2IsIGktPmlfaW5vLCAxLCAoKGktPmlfc2l6ZSArIDUxMSkg
Pj4gOSkpOw0KIAlocGZzX3dyaXRlX2lub2RlKGkpOw0KIH0NCiANCi1zc2l6
ZV90IGhwZnNfZmlsZV9yZWFkKHN0cnVjdCBmaWxlICpmaWxwLCBjaGFyICpi
dWYsIHNpemVfdCBjb3VudCwgbG9mZl90ICpwcG9zKQ0KK2ludCBocGZzX2dl
dGJsa19ibG9jayhzdHJ1Y3QgaW5vZGUgKmlub2RlLCBsb25nIGJsb2NrLCBp
bnQgY3JlYXRlLCBpbnQgKmVyciwgaW50ICpjcmVhdGVkKQ0KIHsNCi0Jc3Ry
dWN0IGlub2RlICppbm9kZSA9IGZpbHAtPmZfZGVudHJ5LT5kX2lub2RlOw0K
LQlpbnQgaSxqOw0KLQlpbnQgYSA9IGdlbmVyaWNfZmlsZV9yZWFkKGZpbHAs
IGJ1ZiwgY291bnQsIHBwb3MpOw0KLQlpZiAoaW5vZGUtPmlfaHBmc19jb252
ICE9IENPTlZfVEVYVCB8fCBhIDwgMCkgew0KLQkJcmV0dXJuIGE7DQotCX0J
DQotCWZvciAoaSA9IDAsIGogPSAwOyBpIDwgYTsgaSsrKSB7DQotCQljaGFy
IGM7DQotCQlpbnQgZXJyb3I7DQotCQlpZiAoKGVycm9yID0gZ2V0X3VzZXIo
YywgYnVmICsgaSkpKSByZXR1cm4gZXJyb3I7DQotCQlpZiAoYyAhPSAnXHIn
KSB7DQotCQkJaWYgKGkgIT0gaikgcHV0X3VzZXIoYywgYnVmICsgaik7DQot
CQkJaisrOw0KKwlpbnQgYWRkOw0KKwlpbnQgc2VjID0gMDsNCisJZG93bigm
aW5vZGUtPmlfc2VtKTsNCisJaWYgKGVycikgKmVyciA9IDA7DQorCWlmIChj
cmVhdGVkKSAqY3JlYXRlZCA9IDA7DQorCWlmICghaW5vZGUtPmlfYmxvY2tz
KSB7DQorCQlocGZzX2Vycm9yKGlub2RlLT5pX3NiLCAiaHBmc19nZXRfYmxv
Y2s6IGlub2RlICUwOHggaGFzIG5vIGJsb2NrcyIsIGlub2RlLT5pX2lubyk7
DQorCQlpZiAoZXJyKSAqZXJyID0gLUVGU0VSUk9SOw0KKwkJdXAoJmlub2Rl
LT5pX3NlbSk7DQorCQlyZXR1cm4gMDsNCisJfQ0KKwlpZiAoYmxvY2sgPCAo
KGFkZCA9IGlub2RlLT5pX2Jsb2NrcyAtIDEpKSkgew0KKwkJaW50IGJtOw0K
KwkJaWYgKCEoYm0gPSBocGZzX2JtYXAoaW5vZGUsIGJsb2NrKSkpIHsNCisJ
CQlocGZzX2Vycm9yKGlub2RlLT5pX3NiLCAiaHBmc19nZXRfYmxvY2s6IGNv
dW5kIG5vdCBibWFwIGJsb2NrICUwOHgsIGlub2RlICUwOHgsIHNpemUgJTA4
eCIsIChpbnQpYmxvY2ssIGlub2RlLT5pX2lubywgKGludClpbm9kZS0+aV9z
aXplKTsNCisJCQkqZXJyID0gLUVGU0VSUk9SOw0KIAkJfQ0KKwkJdXAoJmlu
b2RlLT5pX3NlbSk7DQorCQlyZXR1cm4gYm07DQorCX0NCisJaWYgKCFjcmVh
dGUpIHsNCisJCWlmIChlcnIpICplcnIgPSAtRUZCSUc7DQorCQl1cCgmaW5v
ZGUtPmlfc2VtKTsNCisJCXJldHVybiAwOw0KIAl9DQotCXJldHVybiBqOw0K
KwlpZiAoY3JlYXRlZCkgKmNyZWF0ZWQgPSAxOw0KKwl3aGlsZSAoYWRkIDw9
IGJsb2NrKSB7DQorCQlpZiAoKHNlYyA9IGhwZnNfYWRkX3NlY3Rvcl90b19i
dHJlZShpbm9kZS0+aV9zYiwgaW5vZGUtPmlfaW5vLCAxLCBhZGQpKSA9PSAt
MSkgew0KKwkJCWlmIChlcnIpICplcnIgPSAtRU5PU1BDOw0KKwkJCWhwZnNf
dHJ1bmNhdGVfYnRyZWUoaW5vZGUtPmlfc2IsIGlub2RlLT5pX2lubywgMSwg
aW5vZGUtPmlfYmxvY2tzIC0gMSk7DQorCQkJcmV0dXJuIDA7DQorCQl9IC8q
IEZJWE1FOiBjbGVhciBibG9jayAqLw0KKwkJYWRkKys7DQorCX0NCisJaW5v
ZGUtPmlfYmxvY2tzID0gYWRkICsgMTsNCisJdXAoJmlub2RlLT5pX3NlbSk7
DQorCXJldHVybiBzZWM7DQogfQ0KIA0KLXNzaXplX3QgaHBmc19maWxlX3dy
aXRlKHN0cnVjdCBmaWxlICpmaWxwLCBjb25zdCBjaGFyICpidWYsIHNpemVf
dCBjb3VudCwNCi0JCQlsb2ZmX3QgKnBwb3MpDQorLyogY29waWVkIGZyb20g
ZXh0MmZzICovDQorc3RhdGljIGludCBocGZzX2dldF9ibG9jayhzdHJ1Y3Qg
aW5vZGUgKmlub2RlLCB1bnNpZ25lZCBsb25nIGJsb2NrLCBzdHJ1Y3QgYnVm
ZmVyX2hlYWQgKmJoLCBpbnQgdXBkYXRlKQ0KIHsNCi0Jc3RydWN0IGlub2Rl
ICppID0gZmlscC0+Zl9kZW50cnktPmRfaW5vZGU7DQotCWludCBjYXJyeSwg
ZXJyb3IgPSAwOw0KLQljb25zdCBjaGFyICpzdGFydCA9IGJ1ZjsNCi0JaWYg
KCFpKSByZXR1cm4gLUVJTlZBTDsNCi0JaWYgKCFTX0lTUkVHKGktPmlfbW9k
ZSkpIHJldHVybiAtRUlOVkFMOw0KLQlpZiAoSVNfSU1NVVRBQkxFKGkpKSBy
ZXR1cm4gLUVQRVJNOw0KLQlpZiAoZmlscC0+Zl9mbGFncyAmIE9fQVBQRU5E
KSAqcHBvcyA9IGktPmlfc2l6ZTsNCi0JaWYgKGNvdW50IDw9IDApIHJldHVy
biAwOw0KLQlpZiAoKHVuc2lnbmVkKSgqcHBvcytjb3VudCkgPj0gMHg4MDAw
MDAwMFUgfHwgKHVuc2lnbmVkKWNvdW50ID49IDB4ODAwMDAwMDBVKSByZXR1
cm4gLUVGQklHOw0KLQljYXJyeSA9IDA7DQotCXdoaWxlIChjb3VudCB8fCBj
YXJyeSkgew0KLQkJaW50IGlpLCBhZGQgPSAwOw0KLQkJc2Vjbm8gc2VjID0g
MDsgLyogR28gYXdheSwgdW5pbml0aWFsaXplZCB2YXJpYWJsZSB3YXJuaW5n
ICovDQotCQlpbnQgb2Zmc2V0LCBzaXplLCB3cml0dGVuOw0KLQkJY2hhciBj
aDsNCi0JCXN0cnVjdCBidWZmZXJfaGVhZCAqYmg7DQotCQljaGFyICpkYXRh
Ow0KLQkJb2Zmc2V0ID0gKnBwb3MgJiAweDFmZjsNCi0JCXNpemUgPSBjb3Vu
dCA+IDB4MjAwIC0gb2Zmc2V0ID8gMHgyMDAgLSBvZmZzZXQgOiBjb3VudDsN
Ci0JCWlmICgoKnBwb3MgPj4gOSkgPCAoKGktPmlfc2l6ZSArIDB4MWZmKSA+
PiA5KSkgew0KLQkJCWktPmlfaHBmc19uX3NlY3MgPSAwOw0KLQkJCWlmICgh
KHNlYyA9IGhwZnNfYm1hcChpLCAqcHBvcyA+PiA5KSkpIHsNCi0JCQkJaHBm
c19lcnJvcihpLT5pX3NiLCAiYm1hcCBmYWlsZWQsIGZpbGUgJTA4eCwgZnNl
YyAlMDh4IiwNCi0JCQkJCWktPmlfaW5vLCAqcHBvcyA+PiA5KTsNCi0JCQkJ
ZXJyb3IgPS0gRUZTRVJST1I7DQotCQkJCWJyZWFrOw0KLQkJCX0NCi0JCX0g
ZWxzZSBmb3IgKGlpID0gKGktPmlfc2l6ZSArIDB4MWZmKSA+PiA5LCBhZGQg
PSAxOyBpaSA8PSAqcHBvcyA+PiA5OyBpaSsrKSB7DQotCQkJaWYgKChzZWMg
PSBocGZzX2FkZF9zZWN0b3JfdG9fYnRyZWUoaS0+aV9zYiwgaS0+aV9pbm8s
IDEsIGlpKSkgPT0gLTEpIHsNCi0JCQkJaHBmc190cnVuY2F0ZShpKTsNCi0J
CQkJcmV0dXJuIC1FTk9TUEM7DQotCQkJfQ0KLQkJCWlmICgqcHBvcyAhPSBp
LT5pX3NpemUpDQotCQkJCWlmICgoZGF0YSA9IGhwZnNfZ2V0X3NlY3Rvcihp
LT5pX3NiLCBzZWMsICZiaCkpKSB7DQotCQkJCQltZW1zZXQoZGF0YSwgMCwg
NTEyKTsNCi0JCQkJCW1hcmtfYnVmZmVyX2RpcnR5KGJoLCAwKTsNCi0JCQkJ
CWJyZWxzZShiaCk7DQotCQkJCX0NCi0JCQlpLT5pX3NpemUgPSAweDIwMCAq
IGlpICsgMTsNCi0JCQlpLT5pX2Jsb2NrcysrOw0KLQkJCS8qbWFya19pbm9k
ZV9kaXJ0eShpKTsqL2ktPmlfaHBmc19kaXJ0eSA9IDE7DQotCQkJaWYgKGkt
Pmlfc2ItPnNfaHBmc19jaGsgPj0gMikgew0KLQkJCQlzZWNubyBic2VjOw0K
LQkJCQlic2VjID0gaHBmc19ibWFwKGksIGlpKTsNCi0JCQkJaWYgKHNlYyAh
PSBic2VjKSB7DQotCQkJCQlocGZzX2Vycm9yKGktPmlfc2IsICJzZWMgPT0g
JTA4eCwgYm1hcCByZXR1cm5zICUwOHgiLCBzZWMsIGJzZWMpOw0KLQkJCQkJ
ZXJyb3IgPSAtRUZTRVJST1I7DQotCQkJCQlicmVhazsNCi0JCQkJfQ0KLQkJ
CX0JDQotCQkJUFJJTlRLKCgiZmlsZV93cml0ZTogYWRkZWQgJTA4eFxuIiwg
c2VjKSk7DQotCQl9DQotCQlpZiAoIXNlYyB8fCBzZWMgPT0gMTUpIHsNCi0J
CQlocGZzX2Vycm9yKGktPmlfc2IsICJibWFwIHJldHVybmVkIGVtcHR5IHNl
Y3RvciIpOw0KLQkJCWVycm9yID0gLUVGU0VSUk9SOw0KLQkJCWJyZWFrOw0K
LQkJfQ0KLQkJaWYgKGktPmlfc2ItPnNfaHBmc19jaGspDQotCQkJaWYgKGhw
ZnNfY2hrX3NlY3RvcnMoaS0+aV9zYiwgc2VjLCAxLCAiZGF0YSIpKSB7DQot
CQkJCWVycm9yID0gLUVGU0VSUk9SOw0KLQkJCQlicmVhazsNCi0JCQl9DQot
CQlpZiAoKCFvZmZzZXQgJiYgc2l6ZSA9PSAweDIwMCkgfHwgYWRkKQ0KLQkJ
CWRhdGEgPSBocGZzX2dldF9zZWN0b3IoaS0+aV9zYiwgc2VjLCAmYmgpOw0K
LQkJZWxzZSBkYXRhID0gaHBmc19tYXBfc2VjdG9yKGktPmlfc2IsIHNlYywg
JmJoLCAwKTsNCi0JCWlmICghZGF0YSkgew0KLQkJCWVycm9yID0gLUVJTzsN
Ci0JCQlicmVhazsNCi0JCX0NCi0JCWlmIChpLT5pX2hwZnNfY29udiAhPSBD
T05WX1RFWFQpIHsNCi0JCQltZW1jcHlfZnJvbWZzKGRhdGEgKyBvZmZzZXQs
IGJ1Ziwgd3JpdHRlbiA9IHNpemUpOw0KLQkJCWJ1ZiArPSBzaXplOw0KLQkJ
fSBlbHNlIHsNCi0JCQlpbnQgbGVmdDsNCi0JCQljaGFyICp0bzsNCi0JCQkv
KiBMRi0+Q1IvTEYgY29udmVyc2lvbiwgc3RvbGVuIGZyb20gZmF0IGZzICov
DQotCQkJd3JpdHRlbiA9IGxlZnQgPSAweDIwMCAtIG9mZnNldDsNCi0JCQl0
byA9IChjaGFyICopIGJoLT5iX2RhdGEgKyAoKnBwb3MgJiAweDFmZik7DQot
CQkJaWYgKGNhcnJ5KSB7DQotCQkJCSp0bysrID0gJ1xuJzsNCi0JCQkJbGVm
dC0tOw0KLQkJCQljYXJyeSA9IDA7DQotCQkJfQ0KLQkJCWZvciAoc2l6ZSA9
IDA7IHNpemUgPCBjb3VudCAmJiBsZWZ0OyBzaXplKyspIHsNCi0JCQkJaWYg
KChlcnJvciA9IGdldF91c2VyKGNoLCBidWYrKykpKSBicmVhazsNCi0JCQkJ
aWYgKGNoID09ICdcbicpIHsNCi0JCQkJCSp0bysrID0gJ1xyJzsNCi0JCQkJ
CWxlZnQtLTsNCi0JCQkJfQ0KLQkJCQlpZiAoIWxlZnQpIGNhcnJ5ID0gMTsN
Ci0JCQkJZWxzZSB7DQotCQkJCQkqdG8rKyA9IGNoOw0KLQkJCQkJbGVmdC0t
Ow0KLQkJCQl9DQotCQkJfQ0KLQkJCXdyaXR0ZW4gLT0gbGVmdDsNCisJaWYg
KCFiaC0+Yl9ibG9ja25yKSB7DQorCQlpbnQgZXJyb3IsIGNyZWF0ZWQ7DQor
CQl1bnNpZ25lZCBsb25nIGJsb2NrbnI7DQorDQorCQlibG9ja25yID0gaHBm
c19nZXRibGtfYmxvY2soaW5vZGUsIGJsb2NrLCAxLCAmZXJyb3IsICZjcmVh
dGVkKTsNCisJCWlmICghYmxvY2tucikgew0KKwkJCWlmICghZXJyb3IpDQor
CQkJCWVycm9yID0gLUVOT1NQQzsNCisJCQlyZXR1cm4gZXJyb3I7DQogCQl9
DQotCQl1cGRhdGVfdm1fY2FjaGUoaSwgKnBwb3MsIGJoLT5iX2RhdGEgKyAo
KnBwb3MgJiAweDFmZiksIHdyaXR0ZW4pOw0KLQkJKnBwb3MgKz0gd3JpdHRl
bjsNCi0JCWlmICgqcHBvcyA+IGktPmlfc2l6ZSkgew0KLQkJCWktPmlfc2l6
ZSA9ICpwcG9zOw0KLQkJCS8qbWFya19pbm9kZV9kaXJ0eShpKTsqL2ktPmlf
aHBmc19kaXJ0eSA9IDE7DQorDQorCQliaC0+Yl9kZXYgPSBpbm9kZS0+aV9k
ZXY7DQorCQliaC0+Yl9ibG9ja25yID0gYmxvY2tucjsNCisNCisJCWlmICgh
dXBkYXRlKQ0KKwkJCXJldHVybiAwOw0KKw0KKwkJaWYgKGNyZWF0ZWQpIHsN
CisJCQltZW1zZXQoYmgtPmJfZGF0YSwgMCwgYmgtPmJfc2l6ZSk7DQorCQkJ
c2V0X2JpdChCSF9VcHRvZGF0ZSwgJmJoLT5iX3N0YXRlKTsNCisJCQlyZXR1
cm4gMDsNCiAJCX0NCi0JCW1hcmtfYnVmZmVyX2RpcnR5KGJoLCAwKTsNCi0J
CWJyZWxzZShiaCk7DQotCQljb3VudCAtPSBzaXplOw0KLQl9DQotCWlmIChz
dGFydCA9PSBidWYpIHJldHVybiBlcnJvcjsNCi0JaS0+aV9tdGltZSA9IENV
UlJFTlRfVElNRTsNCi0JLyptYXJrX2lub2RlX2RpcnR5KGkpOyovaS0+aV9o
cGZzX2RpcnR5ID0gMTsNCi0JcmV0dXJuIGJ1ZiAtIHN0YXJ0Ow0KKwl9DQor
DQorCWlmICghdXBkYXRlKQ0KKwkJcmV0dXJuIDA7DQorDQorCWxvY2tfa2Vy
bmVsKCk7DQorCWxsX3J3X2Jsb2NrKFJFQUQsIDEsICZiaCk7DQorCXdhaXRf
b25fYnVmZmVyKGJoKTsNCisJdW5sb2NrX2tlcm5lbCgpOw0KKw0KKwlyZXR1
cm4gYnVmZmVyX3VwdG9kYXRlKGJoKSA/IDAgOiAtRUlPOw0KK30NCisNCitp
bnQgaHBmc193cml0ZXBhZ2Uoc3RydWN0IGZpbGUgKmZpbGUsIHN0cnVjdCBw
YWdlICpwYWdlKQ0KK3sNCisJcmV0dXJuIGJsb2NrX3dyaXRlX2Z1bGxfcGFn
ZShmaWxlLCBwYWdlLCBocGZzX2dldF9ibG9jayk7DQorfQ0KKw0KK2xvbmcg
aHBmc193cml0ZV9vbmVfcGFnZSAoc3RydWN0IGZpbGUgKmZpbGUsIHN0cnVj
dCBwYWdlICpwYWdlLCB1bnNpZ25lZCBsb25nIG9mZnNldCwgdW5zaWduZWQg
bG9uZyBieXRlcywgY29uc3QgY2hhciAqYnVmKQ0KK3sNCisgICAgICAgIHJl
dHVybiBibG9ja193cml0ZV9wYXJ0aWFsX3BhZ2UoZmlsZSwgcGFnZSwgb2Zm
c2V0LCBieXRlcywgYnVmLCBocGZzX2dldF9ibG9jayk7DQogfQ0KKw0KKw0K
K3NzaXplX3QgaHBmc19maWxlX3dyaXRlKHN0cnVjdCBmaWxlICpmaWxlLCBj
b25zdCBjaGFyICpidWYsIHNpemVfdCBjb3VudCwgbG9mZl90ICpwcG9zKQ0K
K3sNCisJc3NpemVfdCByZXR2YWw7DQorCXN0cnVjdCBpbm9kZSAqaW5vZGUg
PSBmaWxlLT5mX2RlbnRyeS0+ZF9pbm9kZTsNCisJcmV0dmFsID0gZ2VuZXJp
Y19maWxlX3dyaXRlKGZpbGUsIGJ1ZiwgY291bnQsIHBwb3MsIGhwZnNfd3Jp
dGVfb25lX3BhZ2UpOw0KKwlpZiAocmV0dmFsID4gMCkgew0KKwkJLypyZW1v
dmVfc3VpZChpbm9kZSk7Ki8NCisJCWlub2RlLT5pX210aW1lID0gQ1VSUkVO
VF9USU1FOw0KKwkJaW5vZGUtPmlfaHBmc19kaXJ0eSA9IDE7DQorCX0NCisJ
cmV0dXJuIHJldHZhbDsNCit9DQorDQpkaWZmIC11ck4gLXggKi5bYW9zXSAt
eCAqLnJlaiAteCAqLm9yaWcgLXggKi5mbGFncyAteCAqLnRneiAteCAqLnRh
ci5neiAteCAqLm1hcCAteCB2bWxpbnUqIC14IHpJbWFnZSAteCAuKiAteCBi
b290c2VjdCAteCBzZXR1cCAteCBidWlsZCAteCBjb21waWxlLmggLXggY29u
c29sZW1hcF9kZWZ0YmwuYyAteCBjb25tYWtlaGFzaCAteCBta2luc3QgLXgg
bWsgLXggbWtkaXN0IC14IG1udCAteCBocGZzLXJvIC14IGFzbSAteCBjb25m
aWcgLXggYXV0b2NvbmYuaCAteCB2ZXJzaW9uLmggLXggbW9kdmVyc2lvbnMu
aCAteCBtb2R1bGVzIC14IHNjcmlwdHMgbGludXgtY2xlYW4vbGludXgvZnMv
aHBmcy9ocGZzX2ZuLmggbGludXgvZnMvaHBmcy9ocGZzX2ZuLmgNCi0tLSBs
aW51eC1jbGVhbi9saW51eC9mcy9ocGZzL2hwZnNfZm4uaAlXZWQgSnVuICAy
IDIwOjE5OjQ0IDE5OTkNCisrKyBsaW51eC9mcy9ocGZzL2hwZnNfZm4uaAlG
cmkgSnVuIDI1IDE0OjQzOjQyIDE5OTkNCkBAIC0yMSw2ICsyMSw3IEBADQog
I2luY2x1ZGUgPGFzbS9iaXRvcHMuaD4NCiAjaW5jbHVkZSA8YXNtL3NlZ21l
bnQuaD4NCiAjaW5jbHVkZSA8YXNtL3VhY2Nlc3MuaD4NCisjaW5jbHVkZSA8
bGludXgvc21wX2xvY2suaD4NCiANCiAjaW5jbHVkZSA8c3RkYXJnLmg+DQog
DQpAQCAtMjU5LDYgKzI2MCw3IEBADQogdm9pZCBocGZzX3RydW5jYXRlKHN0
cnVjdCBpbm9kZSAqKTsNCiBzc2l6ZV90IGhwZnNfZmlsZV9yZWFkKHN0cnVj
dCBmaWxlICosIGNoYXIgKiwgc2l6ZV90LCBsb2ZmX3QgKik7DQogc3NpemVf
dCBocGZzX2ZpbGVfd3JpdGUoc3RydWN0IGZpbGUgKiwgY29uc3QgY2hhciAq
LCBzaXplX3QsIGxvZmZfdCAqKTsNCitpbnQgaHBmc193cml0ZXBhZ2UgKHN0
cnVjdCBmaWxlICosIHN0cnVjdCBwYWdlICopOw0KIA0KIC8qIGlub2RlLmMg
Ki8NCiANCmRpZmYgLXVyTiAteCAqLlthb3NdIC14ICoucmVqIC14ICoub3Jp
ZyAteCAqLmZsYWdzIC14ICoudGd6IC14ICoudGFyLmd6IC14ICoubWFwIC14
IHZtbGludSogLXggekltYWdlIC14IC4qIC14IGJvb3RzZWN0IC14IHNldHVw
IC14IGJ1aWxkIC14IGNvbXBpbGUuaCAteCBjb25zb2xlbWFwX2RlZnRibC5j
IC14IGNvbm1ha2VoYXNoIC14IG1raW5zdCAteCBtayAteCBta2Rpc3QgLXgg
bW50IC14IGhwZnMtcm8gLXggYXNtIC14IGNvbmZpZyAteCBhdXRvY29uZi5o
IC14IHZlcnNpb24uaCAteCBtb2R2ZXJzaW9ucy5oIC14IG1vZHVsZXMgLXgg
c2NyaXB0cyBsaW51eC1jbGVhbi9saW51eC9mcy9ocGZzL2lub2RlLmMgbGlu
dXgvZnMvaHBmcy9pbm9kZS5jDQotLS0gbGludXgtY2xlYW4vbGludXgvZnMv
aHBmcy9pbm9kZS5jCUZyaSBKdW4gMjUgMTQ6MDU6NTYgMTk5OQ0KKysrIGxp
bnV4L2ZzL2hwZnMvaW5vZGUuYwlGcmkgSnVuIDI1IDE0OjA1OjE2IDE5OTkN
CkBAIC0xMSw3ICsxMSw3IEBADQogc3RhdGljIGNvbnN0IHN0cnVjdCBmaWxl
X29wZXJhdGlvbnMgaHBmc19maWxlX29wcyA9DQogew0KIAlOVUxMLAkJCQkv
KiBsc2VlayAtIGRlZmF1bHQgKi8NCi0JaHBmc19maWxlX3JlYWQsCQkJLyog
cmVhZCAqLw0KKwlnZW5lcmljX2ZpbGVfcmVhZCwJCS8qIHJlYWQgKi8NCiAJ
aHBmc19maWxlX3dyaXRlLAkJLyogd3JpdGUgKi8NCiAJTlVMTCwJCQkJLyog
cmVhZGRpciAtIGJhZCAqLw0KIAlOVUxMLAkJCQkvKiBwb2xsIC0gZGVmYXVs
dCAqLw0KQEAgLTQ0LDkgKzQ0LDkgQEANCiAJKGludCAoKikoc3RydWN0IGlu
b2RlICosIGludCkpDQogCSZocGZzX2JtYXAsCQkJLyogYm1hcCAqLw0KIAli
bG9ja19yZWFkX2Z1bGxfcGFnZSwJCS8qIHJlYWRwYWdlICovDQotCU5VTEws
CQkJCS8qIHdyaXRlcGFnZSAqLw0KLQlOVUxMLAkJCQkvKiBmbHVzaHBhZ2Ug
Ki8NCi0JJmhwZnNfdHJ1bmNhdGUsCQkJLyogdHJ1bmNhdGUgKi8NCisJaHBm
c193cml0ZXBhZ2UsCQkJLyogd3JpdGVwYWdlICovDQorCWJsb2NrX2ZsdXNo
cGFnZSwJCS8qIGZsdXNocGFnZSAqLw0KKwlocGZzX3RydW5jYXRlLAkJCS8q
IHRydW5jYXRlICovDQogCU5VTEwsCQkJCS8qIHBlcm1pc3Npb24gKi8NCiAJ
TlVMTCwJCQkJLyogc21hcCAqLw0KIAlOVUxMLAkJCQkvKiByZXZhbGlkYXRl
ICovDQpAQCAtOTIsNyArOTIsNyBAQA0KIAlOVUxMLAkJCQkvKiB0cnVuY2F0
ZSAqLw0KIAlOVUxMLAkJCQkvKiBwZXJtaXNzaW9uICovDQogCU5VTEwsCQkJ
CS8qIHNtYXAgKi8NCi0JTlVMTCwJCQkJLyogcmV2YWxpZGF0ZSAqLw0KKwlO
VUxMCQkJCS8qIHJldmFsaWRhdGUgKi8NCiB9Ow0KIA0KIGNvbnN0IHN0cnVj
dCBpbm9kZV9vcGVyYXRpb25zIGhwZnNfc3ltbGlua19pb3BzID0NCkBAIC0x
MTYsNyArMTE2LDcgQEANCiAJTlVMTCwJCQkJLyogdHJ1bmNhdGUgKi8NCiAJ
TlVMTCwJCQkJLyogcGVybWlzc2lvbiAqLw0KIAlOVUxMLAkJCQkvKiBzbWFw
ICovDQotCU5VTEwsCQkJCS8qIHJldmFsaWRhdGUgKi8NCisJTlVMTAkJCQkv
KiByZXZhbGlkYXRlICovDQogfTsNCiANCiANCkBAIC0xMjgsNyArMTI4LDYg
QEANCiAJdW5zaWduZWQgY2hhciAqZWE7DQogCWludCBlYV9zaXplOw0KIAlp
LT5pX29wID0gMDsNCi0JLyppLT5pX2hwZnNfc2VtID0gTVVURVg7Ki8NCiAJ
aW5pdF9NVVRFWCgmaS0+aV9ocGZzX3NlbSk7DQogCWktPmlfdWlkID0gc2It
PnNfaHBmc191aWQ7DQogCWktPmlfZ2lkID0gc2ItPnNfaHBmc19naWQ7DQpk
aWZmIC11ck4gLXggKi5bYW9zXSAteCAqLnJlaiAteCAqLm9yaWcgLXggKi5m
bGFncyAteCAqLnRneiAteCAqLnRhci5neiAteCAqLm1hcCAteCB2bWxpbnUq
IC14IHpJbWFnZSAteCAuKiAteCBib290c2VjdCAteCBzZXR1cCAteCBidWls
ZCAteCBjb21waWxlLmggLXggY29uc29sZW1hcF9kZWZ0YmwuYyAteCBjb25t
YWtlaGFzaCAteCBta2luc3QgLXggbWsgLXggbWtkaXN0IC14IG1udCAteCBo
cGZzLXJvIC14IGFzbSAteCBjb25maWcgLXggYXV0b2NvbmYuaCAteCB2ZXJz
aW9uLmggLXggbW9kdmVyc2lvbnMuaCAteCBtb2R1bGVzIC14IHNjcmlwdHMg
bGludXgtY2xlYW4vbGludXgvZnMvaHBmcy9tbWFwLmMgbGludXgvZnMvaHBm
cy9tbWFwLmMNCi0tLSBsaW51eC1jbGVhbi9saW51eC9mcy9ocGZzL21tYXAu
YwlTYXQgTWF5IDE1IDIwOjMyOjUwIDE5OTkNCisrKyBsaW51eC9mcy9ocGZz
L21tYXAuYwlUaHUgSmFuICAxIDAxOjAwOjAwIDE5NzANCkBAIC0xLDEyOCAr
MCwwIEBADQotLyoNCi0gKiAgbGludXgvZnMvaHBmcy9tbWFwLmMNCi0gKg0K
LSAqICB0YWtlbiBmcm9tIGZhdCBmaWxlc3lzdGVtDQotICoNCi0gKiAgV3Jp
dHRlbiBieSBKYWNxdWVzIEdlbGluYXMgKGphY3F1ZXNAc29sdWNvcnAucWMu
Y2EpDQotICogIEluc3BpcmVkIGJ5IGZzL25mcy9tbWFwLmMgKEpvbiBUb21i
cyAxNSBBdWcgMTk5MykNCi0gKg0KLSAqICBNb2RpZmllZCBmb3IgSFBGUyBi
eSBNaWt1bGFzIFBhdG9ja2EgKG1pa3VsYXNAYXJ0YXgua2FybGluLm1mZi5j
dW5pLmN6KQ0KLSAqDQotICogIG1tYXAgaGFuZGxpbmcgZm9yIGhwZnMgZmls
ZXN5c3RlbQ0KLSAqCShnZW5lcmljX2ZpbGVfbW1hcCBtYXkgYmUgdXNlZCBv
bmx5IG9uIGZpbGVzeXN0ZW1zIHRoYXQga2VlcCB6ZXJvcw0KLSAqCSBpbiBs
YXN0IGZpbGUgc2VjdG9yIGJleW9uZCBlbmQpDQotICovDQotDQotLyoNCi0g
KiBnZW5lcmljX2ZpbGVfbW1hcCBkb2Vzbid0IGVyYXNlIHRoZSBzcGFjZSBi
ZXlvbmQgZmlsZSBlbmQgaW4gbGFzdCBzZWN0b3IuIDotKA0KLSAqIEhwZnMg
ZG9lc24ndCBrZWVwIHplcm9zIGluIGxhc3Qgc2VjdG9yLiBUaGlzIGNhdXNl
cyBwcm9ibGVtcyB3aXRoIGtlcm5lbA0KLSAqIG1rZGVwLmMgYW5kIHByb2Jh
Ymx5IG90aGVyIHByb2dyYW1zLiBBZGRpdGlvbmFsbHkgdGhpcyBjb3VsZCBi
ZSBhIHNlY3VyaXR5DQotICogaG9sZSAtIHNvbWUgaW50ZXJlc3RpbmcgZGF0
YSwgbGlrZSBwaWVjZXMgb2YgL2V0Yy9zaGFkb3cgY291bGQgYmUgZm91bmQN
Ci0gKiBiZXlvbmQgZmlsZSBlbmQuDQotICoNCi0gKiBTbywgSSBjYW4ndCB1
c2UgZ2VuZXJpYyBtbWFwLiBtbWFwIGZyb20gZmF0IGZpbGVzeXN0ZW0gbG9v
a3MgZ29vZCwgc28gSSB1c2VkDQotICogaXQuDQotICoNCi0gKiBCVFcuIGZh
dCB1c2VzIGdlbmVyaWMgbW1hcCBvbiBub3JtYWwgZGlza3MuIERvZXNuJ3Qg
aXQgYWxzbyBoYXZlIGFib3ZlIGJ1Z3M/DQotICogSSBkb24ndCB0aGluayBN
c2RvcyBlcmFzZXMgc3BhY2UgaW4gbGFzdCBzZWN0b3IuDQotICoNCi0gKiBJ
ZiB5b3UgZml4IGdlbmVyaWNfZmlsZV9tbWFwLCB5b3UgY2FuIHJlbW92ZSB0
aGlzIGZpbGUgYW5kIHVzZSBpdC4NCi0gKi8NCi0NCi0jaW5jbHVkZSAiaHBm
c19mbi5oIg0KLQ0KLS8qDQotICogRmlsbCBpbiB0aGUgc3VwcGxpZWQgcGFn
ZSBmb3IgbW1hcA0KLSAqLw0KLQ0KLXN0YXRpYyB1bnNpZ25lZCBsb25nIGhw
ZnNfZmlsZV9tbWFwX25vcGFnZSgNCi0Jc3RydWN0IHZtX2FyZWFfc3RydWN0
ICogYXJlYSwNCi0JdW5zaWduZWQgbG9uZyBhZGRyZXNzLA0KLQlpbnQgZXJy
b3JfY29kZSkNCi17DQotCS8qc3RydWN0IGlub2RlICogaW5vZGUgPSBhcmVh
LT52bV9pbm9kZTsqLw0KLQlzdHJ1Y3QgaW5vZGUgKiBpbm9kZSA9IGFyZWEt
PnZtX2ZpbGUtPmZfZGVudHJ5LT5kX2lub2RlOw0KLQl1bnNpZ25lZCBsb25n
IHBhZ2U7DQotCXVuc2lnbmVkIGludCBjbGVhcjsNCi0JbG9mZl90IHBvczsN
Ci0JbG9uZyBnYXA7CS8qIGRpc3RhbmNlIGZyb20gZW9mIHRvIHBvcyAqLw0K
LQ0KLQlwYWdlID0gX19nZXRfZnJlZV9wYWdlKEdGUF9LRVJORUwpOw0KLQlp
ZiAoIXBhZ2UpDQotCQlyZXR1cm4gcGFnZTsNCi0JYWRkcmVzcyAmPSBQQUdF
X01BU0s7DQotCXBvcyA9IGFkZHJlc3MgLSBhcmVhLT52bV9zdGFydCArIGFy
ZWEtPnZtX29mZnNldDsNCi0NCi0JY2xlYXIgPSAwOw0KLQlnYXAgPSBpbm9k
ZS0+aV9zaXplIC0gcG9zOw0KLQlpZiAoZ2FwIDw9IDApew0KLQkJLyogbW1h
cGluZyBiZXlvbmQgZW5kIG9mIGZpbGUgKi8NCi0JCWNsZWFyID0gUEFHRV9T
SVpFOw0KLQl9ZWxzZXsNCi0JCWludCBjdXJfcmVhZDsNCi0JCWludCBuZWVk
X3JlYWQ7DQotCQkvKnN0cnVjdCBmaWxlICpmaWxwID0gYXJlYS0+dm1fZmls
ZTsqLw0KLQkJc3RydWN0IGZpbGUgZmlscDsNCi0JCWlmIChnYXAgPCBQQUdF
X1NJWkUpew0KLQkJCWNsZWFyID0gUEFHRV9TSVpFIC0gZ2FwOw0KLQkJfQ0K
LQkJZmlscC5mX3JlYWRhID0gMDsNCi0JCWZpbHAuZl9wb3MgPSBwb3M7DQot
CQlmaWxwLmZfZGVudHJ5PWFyZWEtPnZtX2ZpbGUtPmZfZGVudHJ5Ow0KLQkJ
bmVlZF9yZWFkID0gUEFHRV9TSVpFIC0gY2xlYXI7DQotCQl7DQotCQkJbW1f
c2VnbWVudF90IGN1cl9mcyA9IGdldF9mcygpOw0KLQkJCXNldF9mcyAoS0VS
TkVMX0RTKTsNCi0JCQljdXJfcmVhZCA9IGdlbmVyaWNfZmlsZV9yZWFkICgm
ZmlscCwoY2hhciopcGFnZQ0KLQkJCQksbmVlZF9yZWFkLCZwb3MpOw0KLQkJ
CXNldF9mcyAoY3VyX2ZzKTsNCi0JCX0NCi0JCWlmIChjdXJfcmVhZCAhPSBu
ZWVkX3JlYWQpew0KLQkJCWhwZnNfZXJyb3IoaW5vZGUtPmlfc2IsICJFcnJv
ciB3aGlsZSByZWFkaW5nIGFuIG1tYXAgZmlsZSAlMDh4IiwgaW5vZGUtPmlf
aW5vKTsNCi0JCX0NCi0JfQ0KLQlpZiAoY2xlYXIgPiAwKXsNCi0JCW1lbXNl
dCAoKGNoYXIqKXBhZ2UrUEFHRV9TSVpFLWNsZWFyLDAsY2xlYXIpOw0KLQl9
DQotCXJldHVybiBwYWdlOw0KLX0NCi0NCi1zdHJ1Y3Qgdm1fb3BlcmF0aW9u
c19zdHJ1Y3QgaHBmc19maWxlX21tYXAgPSB7DQotCU5VTEwsCQkJLyogb3Bl
biAqLw0KLQlOVUxMLAkJCS8qIGNsb3NlICovDQotCU5VTEwsCQkJLyogdW5t
YXAgKi8NCi0JTlVMTCwJCQkvKiBwcm90ZWN0ICovDQotCU5VTEwsCQkJLyog
c3luYyAqLw0KLQlOVUxMLAkJCS8qIGFkdmlzZSAqLw0KLQlocGZzX2ZpbGVf
bW1hcF9ub3BhZ2UsCS8qIG5vcGFnZSAqLw0KLQlOVUxMLAkJCS8qIHdwcGFn
ZSAqLw0KLQlOVUxMLAkJCS8qIHN3YXBvdXQgKi8NCi0JTlVMTCwJCQkvKiBz
d2FwaW4gKi8NCi19Ow0KLQ0KLS8qDQotICogVGhpcyBpcyB1c2VkIGZvciBh
IGdlbmVyYWwgbW1hcCBvZiBhbiBtc2RvcyBmaWxlDQotICogUmV0dXJucyAw
IGlmIG9rLCBvciBhIG5lZ2F0aXZlIGVycm9yIGNvZGUgaWYgbm90Lg0KLSAq
Lw0KLWludCBocGZzX21tYXAoc3RydWN0IGZpbGUgKiBmaWxlLCBzdHJ1Y3Qg
dm1fYXJlYV9zdHJ1Y3QgKiB2bWEpDQotew0KLQlzdHJ1Y3QgaW5vZGUgKmlu
b2RlID0gZmlsZS0+Zl9kZW50cnktPmRfaW5vZGU7DQotCS8qcHJpbnRrKCJz
dGFydCBtbWFwXG4iKTsqLw0KLQlpZiAodm1hLT52bV9mbGFncyAmIFZNX1NI
QVJFRCkJLyogb25seSBQQUdFX0NPVyBvciByZWFkLW9ubHkgc3VwcG9ydGVk
IG5vdyAqLw0KLQkJcmV0dXJuIC1FSU5WQUw7DQotCWlmICh2bWEtPnZtX29m
ZnNldCAmIChpbm9kZS0+aV9zYi0+c19ibG9ja3NpemUgLSAxKSkNCi0JCXJl
dHVybiAtRUlOVkFMOw0KLQlpZiAoIWlub2RlLT5pX3NiIHx8ICFTX0lTUkVH
KGlub2RlLT5pX21vZGUpKQ0KLQkJcmV0dXJuIC1FQUNDRVM7DQotCS8qaWYg
KCFJU19SRE9OTFkoaW5vZGUpKSB7DQotCQlpbm9kZS0+aV9hdGltZSA9IENV
UlJFTlRfVElNRTsNCi0JCW1hcmtfaW5vZGVfZGlydHkoaW5vZGUpOw0KLQl9
Ki8NCi0NCi0Jdm1hLT52bV9maWxlID0gZmlsZTsNCi0JLyppbm9kZS0+aV9j
b3VudCsrOyovDQotCWZpbGUtPmZfY291bnQrKzsNCi0Jdm1hLT52bV9vcHMg
PSAmaHBmc19maWxlX21tYXA7DQotCS8qcHJpbnRrKCJlbmQgbW1hcFxuIik7
Ki8NCi0JcmV0dXJuIDA7DQotfQ0K
--1908636959-625124790-930328700=:7352--

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/