Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 7 Dec 2009 16:08:57 -0800
From:      Matt Reimer <mattjreimer@gmail.com>
To:        freebsd-fs <freebsd-fs@freebsd.org>
Subject:   PATCH: teach (gpt)zfsboot to discern vdev status correctly
Message-ID:  <f383264b0912071608h7049f2e2n8f7797c8842783b7@mail.gmail.com>

next in thread | raw e-mail | index | archive | help
--001636e0ac8f5b2579047a2c611f
Content-Type: text/plain; charset=ISO-8859-1

Instead of assuming all vdevs are healthy, check the newest vdev label
for each vdev's status. Booting from a degraded vdev should now be
more robust.

Sponsored by: VPOP Technologies, Inc.

Matt Reimer

(Note that much of this patch is merely whitespace change due to a
block needing to be reindented.)

--001636e0ac8f5b2579047a2c611f
Content-Type: application/octet-stream; name="correct-status.patch"
Content-Disposition: attachment; filename="correct-status.patch"
Content-Transfer-Encoding: base64
X-Attachment-Id: f_g2xwxjhw0

LS0tIC9zeXMvY2RkbC9ib290L3pmcy96ZnNpbXBsLmguT1JJRwkyMDA5LTExLTIxIDA3OjAyOjM1
LjAwMDAwMDAwMCAtMDgwMAorKysgL3N5cy9jZGRsL2Jvb3QvemZzL3pmc2ltcGwuaAkyMDA5LTEy
LTA3IDEzOjUwOjI2LjAwMDAwMDAwMCAtMDgwMApAQCAtNTQ2LDcgKzU0Niw2IEBACiAjZGVmaW5l
CVpQT09MX0NPTkZJR19EVEwJCSJEVEwiCiAjZGVmaW5lCVpQT09MX0NPTkZJR19TVEFUUwkJInN0
YXRzIgogI2RlZmluZQlaUE9PTF9DT05GSUdfV0hPTEVfRElTSwkJIndob2xlX2Rpc2siCi0jZGVm
aW5lCVpQT09MX0NPTkZJR19PRkZMSU5FCQkib2ZmbGluZSIKICNkZWZpbmUJWlBPT0xfQ09ORklH
X0VSUkNPVU5UCQkiZXJyb3JfY291bnQiCiAjZGVmaW5lCVpQT09MX0NPTkZJR19OT1RfUFJFU0VO
VAkibm90X3ByZXNlbnQiCiAjZGVmaW5lCVpQT09MX0NPTkZJR19TUEFSRVMJCSJzcGFyZXMiCkBA
IC01NTYsNiArNTU1LDE2IEBACiAjZGVmaW5lCVpQT09MX0NPTkZJR19IT1NUTkFNRQkJImhvc3Ru
YW1lIgogI2RlZmluZQlaUE9PTF9DT05GSUdfVElNRVNUQU1QCQkidGltZXN0YW1wIiAvKiBub3Qg
c3RvcmVkIG9uIGRpc2sgKi8KIAorLyoKKyAqIFRoZSBwZXJzaXN0ZW50IHZkZXYgc3RhdGUgaXMg
c3RvcmVkIGFzIHNlcGFyYXRlIHZhbHVlcyByYXRoZXIgdGhhbiBhIHNpbmdsZQorICogJ3ZkZXZf
c3RhdGUnIGVudHJ5LiAgVGhpcyBpcyBiZWNhdXNlIGEgZGV2aWNlIGNhbiBiZSBpbiBtdWx0aXBs
ZSBzdGF0ZXMsIHN1Y2gKKyAqIGFzIG9mZmxpbmUgYW5kIGRlZ3JhZGVkLgorICovCisjZGVmaW5l
IFpQT09MX0NPTkZJR19PRkZMSU5FICAgICAgICAgICAgIm9mZmxpbmUiCisjZGVmaW5lIFpQT09M
X0NPTkZJR19GQVVMVEVEICAgICAgICAgICAgImZhdWx0ZWQiCisjZGVmaW5lIFpQT09MX0NPTkZJ
R19ERUdSQURFRCAgICAgICAgICAgImRlZ3JhZGVkIgorI2RlZmluZSBaUE9PTF9DT05GSUdfUkVN
T1ZFRCAgICAgICAgICAgICJyZW1vdmVkIgorCiAjZGVmaW5lCVZERVZfVFlQRV9ST09UCQkJInJv
b3QiCiAjZGVmaW5lCVZERVZfVFlQRV9NSVJST1IJCSJtaXJyb3IiCiAjZGVmaW5lCVZERVZfVFlQ
RV9SRVBMQUNJTkcJCSJyZXBsYWNpbmciCkBAIC01ODgsNyArNTk3LDkgQEAKIAlWREVWX1NUQVRF
X1VOS05PV04gPSAwLAkvKiBVbmluaXRpYWxpemVkIHZkZXYJCQkqLwogCVZERVZfU1RBVEVfQ0xP
U0VELAkvKiBOb3QgY3VycmVudGx5IG9wZW4JCQkqLwogCVZERVZfU1RBVEVfT0ZGTElORSwJLyog
Tm90IGFsbG93ZWQgdG8gb3BlbgkJCSovCisgICAgICAgIFZERVZfU1RBVEVfUkVNT1ZFRCwJLyog
RXhwbGljaXRseSByZW1vdmVkIGZyb20gc3lzdGVtCSovCiAJVkRFVl9TVEFURV9DQU5UX09QRU4s
CS8qIFRyaWVkIHRvIG9wZW4sIGJ1dCBmYWlsZWQJCSovCisgICAgICAgIFZERVZfU1RBVEVfRkFV
TFRFRCwJLyogRXh0ZXJuYWwgcmVxdWVzdCB0byBmYXVsdCBkZXZpY2UJKi8KIAlWREVWX1NUQVRF
X0RFR1JBREVELAkvKiBSZXBsaWNhdGVkIHZkZXYgd2l0aCB1bmhlYWx0aHkga2lkcwkqLwogCVZE
RVZfU1RBVEVfSEVBTFRIWQkvKiBQcmVzdW1lZCBnb29kCQkJKi8KIH0gdmRldl9zdGF0ZV90Owot
LS0gL3N5cy9ib290L3pmcy96ZnNpbXBsLmMuT1JJRwkyMDA5LTExLTIxIDA3OjAyOjM1LjAwMDAw
MDAwMCAtMDgwMAorKysgL3N5cy9ib290L3pmcy96ZnNpbXBsLmMJMjAwOS0xMi0wNyAxNDozNjoy
MC4wMDAwMDAwMDAgLTA4MDAKQEAgLTQwNCw3ICs0MDQsNyBAQAogfQogCiBzdGF0aWMgaW50Ci12
ZGV2X2luaXRfZnJvbV9udmxpc3QoY29uc3QgdW5zaWduZWQgY2hhciAqbnZsaXN0LCB2ZGV2X3Qg
Kip2ZGV2cCkKK3ZkZXZfaW5pdF9mcm9tX252bGlzdChjb25zdCB1bnNpZ25lZCBjaGFyICpudmxp
c3QsIHZkZXZfdCAqKnZkZXZwLCBpbnQgaXNfbmV3ZXIpCiB7CiAJaW50IHJjOwogCXVpbnQ2NF90
IGd1aWQsIGlkLCBhc2hpZnQsIG5wYXJpdHk7CkBAIC00MTIsNyArNDEyLDggQEAKIAljb25zdCBj
aGFyICpwYXRoOwogCXZkZXZfdCAqdmRldiwgKmtpZDsKIAljb25zdCB1bnNpZ25lZCBjaGFyICpr
aWRzOwotCWludCBua2lkcywgaTsKKwlpbnQgbmtpZHMsIGksIGlzX25ldzsKKwl1aW50NjRfdCBp
c19vZmZsaW5lLCBpc19mYXVsdGVkLCBpc19kZWdyYWRlZCwgaXNfcmVtb3ZlZDsKIAogCWlmIChu
dmxpc3RfZmluZChudmxpc3QsIFpQT09MX0NPTkZJR19HVUlELAogCQkJREFUQV9UWVBFX1VJTlQ2
NCwgMCwgJmd1aWQpCkBAIC00MjQsMTcgKzQyNSw2IEBACiAJCXJldHVybiAoRU5PRU5UKTsKIAl9
CiAKLQkvKgotCSAqIEFzc3VtZSB0aGF0IGlmIHdlJ3ZlIHNlZW4gdGhpcyB2ZGV2IHRyZWUgYmVm
b3JlLCB0aGlzIG9uZQotCSAqIHdpbGwgYmUgaWRlbnRpY2FsLgotCSAqLwotCXZkZXYgPSB2ZGV2
X2ZpbmQoZ3VpZCk7Ci0JaWYgKHZkZXYpIHsKLQkJaWYgKHZkZXZwKQotCQkJKnZkZXZwID0gdmRl
djsKLQkJcmV0dXJuICgwKTsKLQl9Ci0KIAlpZiAoc3RyY21wKHR5cGUsIFZERVZfVFlQRV9NSVJS
T1IpCiAJICAgICYmIHN0cmNtcCh0eXBlLCBWREVWX1RZUEVfRElTSykKIAkgICAgJiYgc3RyY21w
KHR5cGUsIFZERVZfVFlQRV9SQUlEWikpIHsKQEAgLTQ0Miw0NCArNDMyLDk1IEBACiAJCXJldHVy
biAoRUlPKTsKIAl9CiAKLQlpZiAoIXN0cmNtcCh0eXBlLCBWREVWX1RZUEVfTUlSUk9SKSkKLQkJ
dmRldiA9IHZkZXZfY3JlYXRlKGd1aWQsIHZkZXZfbWlycm9yX3JlYWQpOwotCWVsc2UgaWYgKCFz
dHJjbXAodHlwZSwgVkRFVl9UWVBFX1JBSURaKSkKLQkJdmRldiA9IHZkZXZfY3JlYXRlKGd1aWQs
IHZkZXZfcmFpZHpfcmVhZCk7Ci0JZWxzZQotCQl2ZGV2ID0gdmRldl9jcmVhdGUoZ3VpZCwgdmRl
dl9kaXNrX3JlYWQpOworCWlzX29mZmxpbmUgPSBpc19yZW1vdmVkID0gaXNfZmF1bHRlZCA9IGlz
X2RlZ3JhZGVkID0gMDsKKworCW52bGlzdF9maW5kKG52bGlzdCwgWlBPT0xfQ09ORklHX09GRkxJ
TkUsIERBVEFfVFlQRV9VSU5UNjQsIDAsCisJCQkmaXNfb2ZmbGluZSk7CisJbnZsaXN0X2ZpbmQo
bnZsaXN0LCBaUE9PTF9DT05GSUdfUkVNT1ZFRCwgREFUQV9UWVBFX1VJTlQ2NCwgMCwKKwkJCSZp
c19yZW1vdmVkKTsKKwludmxpc3RfZmluZChudmxpc3QsIFpQT09MX0NPTkZJR19GQVVMVEVELCBE
QVRBX1RZUEVfVUlOVDY0LCAwLAorCQkJJmlzX2ZhdWx0ZWQpOworCW52bGlzdF9maW5kKG52bGlz
dCwgWlBPT0xfQ09ORklHX0RFR1JBREVELCBEQVRBX1RZUEVfVUlOVDY0LCAwLAorCQkJJmlzX2Rl
Z3JhZGVkKTsKKworCXZkZXYgPSB2ZGV2X2ZpbmQoZ3VpZCk7CisJaWYgKCF2ZGV2KSB7CisKKwkJ
aXNfbmV3ID0gMTsKKworCQlpZiAoIXN0cmNtcCh0eXBlLCBWREVWX1RZUEVfTUlSUk9SKSkKKwkJ
CXZkZXYgPSB2ZGV2X2NyZWF0ZShndWlkLCB2ZGV2X21pcnJvcl9yZWFkKTsKKwkJZWxzZSBpZiAo
IXN0cmNtcCh0eXBlLCBWREVWX1RZUEVfUkFJRFopKQorCQkJdmRldiA9IHZkZXZfY3JlYXRlKGd1
aWQsIHZkZXZfcmFpZHpfcmVhZCk7CisJCWVsc2UKKwkJCXZkZXYgPSB2ZGV2X2NyZWF0ZShndWlk
LCB2ZGV2X2Rpc2tfcmVhZCk7CisKKwkJdmRldi0+dl9pZCA9IGlkOworCQlpZiAobnZsaXN0X2Zp
bmQobnZsaXN0LCBaUE9PTF9DT05GSUdfQVNISUZULAorCQkJREFUQV9UWVBFX1VJTlQ2NCwgMCwg
JmFzaGlmdCkgPT0gMCkKKwkJCXZkZXYtPnZfYXNoaWZ0ID0gYXNoaWZ0OworCQllbHNlCisJCQl2
ZGV2LT52X2FzaGlmdCA9IDA7CisJCWlmIChudmxpc3RfZmluZChudmxpc3QsIFpQT09MX0NPTkZJ
R19OUEFSSVRZLAorCQkJREFUQV9UWVBFX1VJTlQ2NCwgMCwgJm5wYXJpdHkpID09IDApCisJCQl2
ZGV2LT52X25wYXJpdHkgPSBucGFyaXR5OworCQllbHNlCisJCQl2ZGV2LT52X25wYXJpdHkgPSAw
OworCQlpZiAobnZsaXN0X2ZpbmQobnZsaXN0LCBaUE9PTF9DT05GSUdfUEFUSCwKKwkJCQlEQVRB
X1RZUEVfU1RSSU5HLCAwLCAmcGF0aCkgPT0gMCkgeworCQkJaWYgKHN0cmxlbihwYXRoKSA+IDUK
KwkJCSAgICAmJiBwYXRoWzBdID09ICcvJworCQkJICAgICYmIHBhdGhbMV0gPT0gJ2QnCisJCQkg
ICAgJiYgcGF0aFsyXSA9PSAnZScKKwkJCSAgICAmJiBwYXRoWzNdID09ICd2JworCQkJICAgICYm
IHBhdGhbNF0gPT0gJy8nKQorCQkJCXBhdGggKz0gNTsKKwkJCXZkZXYtPnZfbmFtZSA9IHN0cmR1
cChwYXRoKTsKKwkJfSBlbHNlIHsKKwkJCWlmICghc3RyY21wKHR5cGUsICJyYWlkeiIpKSB7CisJ
CQkJaWYgKHZkZXYtPnZfbnBhcml0eSA9PSAxKQorCQkJCQl2ZGV2LT52X25hbWUgPSAicmFpZHox
IjsKKwkJCQllbHNlCisJCQkJCXZkZXYtPnZfbmFtZSA9ICJyYWlkejIiOworCQkJfSBlbHNlIHsK
KwkJCQl2ZGV2LT52X25hbWUgPSBzdHJkdXAodHlwZSk7CisJCQl9CisJCX0KKworCQlpZiAoaXNf
b2ZmbGluZSkKKwkJCXZkZXYtPnZfc3RhdGUgPSBWREVWX1NUQVRFX09GRkxJTkU7CisJCWVsc2Ug
aWYgKGlzX3JlbW92ZWQpCisJCQl2ZGV2LT52X3N0YXRlID0gVkRFVl9TVEFURV9SRU1PVkVEOwor
CQllbHNlIGlmIChpc19mYXVsdGVkKQorCQkJdmRldi0+dl9zdGF0ZSA9IFZERVZfU1RBVEVfRkFV
TFRFRDsKKwkJZWxzZSBpZiAoaXNfZGVncmFkZWQpCisJCQl2ZGV2LT52X3N0YXRlID0gVkRFVl9T
VEFURV9ERUdSQURFRDsKKwkJZWxzZQorCQkJdmRldi0+dl9zdGF0ZSA9IFZERVZfU1RBVEVfSEVB
TFRIWTsKIAotCXZkZXYtPnZfaWQgPSBpZDsKLQlpZiAobnZsaXN0X2ZpbmQobnZsaXN0LCBaUE9P
TF9DT05GSUdfQVNISUZULAotCQlEQVRBX1RZUEVfVUlOVDY0LCAwLCAmYXNoaWZ0KSA9PSAwKQot
CQl2ZGV2LT52X2FzaGlmdCA9IGFzaGlmdDsKLQllbHNlCi0JCXZkZXYtPnZfYXNoaWZ0ID0gMDsK
LQlpZiAobnZsaXN0X2ZpbmQobnZsaXN0LCBaUE9PTF9DT05GSUdfTlBBUklUWSwKLQkJREFUQV9U
WVBFX1VJTlQ2NCwgMCwgJm5wYXJpdHkpID09IDApCi0JCXZkZXYtPnZfbnBhcml0eSA9IG5wYXJp
dHk7Ci0JZWxzZQotCQl2ZGV2LT52X25wYXJpdHkgPSAwOwotCWlmIChudmxpc3RfZmluZChudmxp
c3QsIFpQT09MX0NPTkZJR19QQVRILAotCQkJREFUQV9UWVBFX1NUUklORywgMCwgJnBhdGgpID09
IDApIHsKLQkJaWYgKHN0cmxlbihwYXRoKSA+IDUKLQkJICAgICYmIHBhdGhbMF0gPT0gJy8nCi0J
CSAgICAmJiBwYXRoWzFdID09ICdkJwotCQkgICAgJiYgcGF0aFsyXSA9PSAnZScKLQkJICAgICYm
IHBhdGhbM10gPT0gJ3YnCi0JCSAgICAmJiBwYXRoWzRdID09ICcvJykKLQkJCXBhdGggKz0gNTsK
LQkJdmRldi0+dl9uYW1lID0gc3RyZHVwKHBhdGgpOwogCX0gZWxzZSB7Ci0JCWlmICghc3RyY21w
KHR5cGUsICJyYWlkeiIpKSB7Ci0JCQlpZiAodmRldi0+dl9ucGFyaXR5ID09IDEpCi0JCQkJdmRl
di0+dl9uYW1lID0gInJhaWR6MSI7CisKKwkJaXNfbmV3ID0gMDsKKworCQlpZiAoaXNfbmV3ZXIp
IHsKKworCQkJLyogV2UndmUgYWxyZWFkeSBzZWVuIHRoaXMgdmRldiwgYnV0IGZyb20gYW4gb2xk
ZXIKKwkJCSAqIHZkZXYgbGFiZWwsIHNvIGxldCdzIHJlZnJlc2ggaXRzIHN0YXRlIGZyb20gdGhl
CisJCQkgKiBuZXdlciBsYWJlbC4gKi8KKworCQkJaWYgKGlzX29mZmxpbmUpCisJCQkJdmRldi0+
dl9zdGF0ZSA9IFZERVZfU1RBVEVfT0ZGTElORTsKKwkJCWVsc2UgaWYgKGlzX3JlbW92ZWQpCisJ
CQkJdmRldi0+dl9zdGF0ZSA9IFZERVZfU1RBVEVfUkVNT1ZFRDsKKwkJCWVsc2UgaWYgKGlzX2Zh
dWx0ZWQpCisJCQkJdmRldi0+dl9zdGF0ZSA9IFZERVZfU1RBVEVfRkFVTFRFRDsKKwkJCWVsc2Ug
aWYgKGlzX2RlZ3JhZGVkKQorCQkJCXZkZXYtPnZfc3RhdGUgPSBWREVWX1NUQVRFX0RFR1JBREVE
OwogCQkJZWxzZQotCQkJCXZkZXYtPnZfbmFtZSA9ICJyYWlkejIiOwotCQl9IGVsc2UgewotCQkJ
dmRldi0+dl9uYW1lID0gc3RyZHVwKHR5cGUpOworCQkJCXZkZXYtPnZfc3RhdGUgPSBWREVWX1NU
QVRFX0hFQUxUSFk7CiAJCX0KIAl9CisKIAlyYyA9IG52bGlzdF9maW5kKG52bGlzdCwgWlBPT0xf
Q09ORklHX0NISUxEUkVOLAogCQkJIERBVEFfVFlQRV9OVkxJU1RfQVJSQVksICZua2lkcywgJmtp
ZHMpOwogCS8qCkBAIC00ODgsMTAgKzUyOSwxMiBAQAogCWlmIChyYyA9PSAwKSB7CiAJCXZkZXYt
PnZfbmNoaWxkcmVuID0gbmtpZHM7CiAJCWZvciAoaSA9IDA7IGkgPCBua2lkczsgaSsrKSB7Ci0J
CQlyYyA9IHZkZXZfaW5pdF9mcm9tX252bGlzdChraWRzLCAma2lkKTsKKwkJCXJjID0gdmRldl9p
bml0X2Zyb21fbnZsaXN0KGtpZHMsICZraWQsIGlzX25ld2VyKTsKIAkJCWlmIChyYykKIAkJCQly
ZXR1cm4gKHJjKTsKLQkJCVNUQUlMUV9JTlNFUlRfVEFJTCgmdmRldi0+dl9jaGlsZHJlbiwga2lk
LCB2X2NoaWxkbGluayk7CisJCQlpZiAoaXNfbmV3KQorCQkJCVNUQUlMUV9JTlNFUlRfVEFJTCgm
dmRldi0+dl9jaGlsZHJlbiwga2lkLAorCQkJCQkJICAgdl9jaGlsZGxpbmspOwogCQkJa2lkcyA9
IG52bGlzdF9uZXh0KGtpZHMpOwogCQl9CiAJfSBlbHNlIHsKQEAgLTU5Myw3ICs2MzYsOSBAQAog
CQkiVU5LTk9XTiIsCiAJCSJDTE9TRUQiLAogCQkiT0ZGTElORSIsCisJCSJSRU1PVkVEIiwKIAkJ
IkNBTlRfT1BFTiIsCisJCSJGQVVMVEVEIiwKIAkJIkRFR1JBREVEIiwKIAkJIk9OTElORSIKIAl9
OwpAQCAtNzExLDcgKzc1Niw3IEBACiAJdWludDY0X3QgcG9vbF90eGcsIHBvb2xfZ3VpZDsKIAlj
b25zdCBjaGFyICpwb29sX25hbWU7CiAJY29uc3QgdW5zaWduZWQgY2hhciAqdmRldnM7Ci0JaW50
IGksIHJjOworCWludCBpLCByYywgaXNfbmV3ZXI7CiAJY2hhciB1cGJ1ZlsxMDI0XTsKIAljb25z
dCBzdHJ1Y3QgdWJlcmJsb2NrICp1cDsKIApAQCAtNzkzLDEyICs4MzgsMTUgQEAKIAkJc3BhID0g
c3BhX2NyZWF0ZShwb29sX2d1aWQpOwogCQlzcGEtPnNwYV9uYW1lID0gc3RyZHVwKHBvb2xfbmFt
ZSk7CiAJfQotCWlmIChwb29sX3R4ZyA+IHNwYS0+c3BhX3R4ZykKKwlpZiAocG9vbF90eGcgPiBz
cGEtPnNwYV90eGcpIHsKIAkJc3BhLT5zcGFfdHhnID0gcG9vbF90eGc7CisJCWlzX25ld2VyID0g
MTsKKwl9IGVsc2UKKwkJaXNfbmV3ZXIgPSAwOwogCiAJLyoKIAkgKiBHZXQgdGhlIHZkZXYgdHJl
ZSBhbmQgY3JlYXRlIG91ciBpbi1jb3JlIGNvcHkgb2YgaXQuCi0JICogSWYgd2UgYWxyZWFkeSBo
YXZlIGEgaGVhbHRoeSB2ZGV2IHdpdGggdGhpcyBndWlkLCB0aGlzIG11c3QKKwkgKiBJZiB3ZSBh
bHJlYWR5IGhhdmUgYSB2ZGV2IHdpdGggdGhpcyBndWlkLCB0aGlzIG11c3QKIAkgKiBiZSBzb21l
IGtpbmQgb2YgYWxpYXMgKG92ZXJsYXBwaW5nIHNsaWNlcywgZGFuZ2Vyb3VzbHkgZGVkaWNhdGVk
CiAJICogZGlza3MgZXRjKS4KIAkgKi8KQEAgLTgwOCwxNiArODU2LDE2IEBACiAJCXJldHVybiAo
RUlPKTsKIAl9CiAJdmRldiA9IHZkZXZfZmluZChndWlkKTsKLQlpZiAodmRldiAmJiB2ZGV2LT52
X3N0YXRlID09IFZERVZfU1RBVEVfSEVBTFRIWSkgeworCWlmICh2ZGV2ICYmIHZkZXYtPnZfcGh5
c19yZWFkKQkvKiBIYXMgdGhpcyB2ZGV2IGFscmVhZHkgYmVlbiBpbml0ZWQ/ICovCiAJCXJldHVy
biAoRUlPKTsKLQl9CiAKIAlpZiAobnZsaXN0X2ZpbmQobnZsaXN0LAogCQkJWlBPT0xfQ09ORklH
X1ZERVZfVFJFRSwKIAkJCURBVEFfVFlQRV9OVkxJU1QsIDAsICZ2ZGV2cykpIHsKIAkJcmV0dXJu
IChFSU8pOwogCX0KLQlyYyA9IHZkZXZfaW5pdF9mcm9tX252bGlzdCh2ZGV2cywgJnRvcF92ZGV2
KTsKKworCXJjID0gdmRldl9pbml0X2Zyb21fbnZsaXN0KHZkZXZzLCAmdG9wX3ZkZXYsIGlzX25l
d2VyKTsKIAlpZiAocmMpCiAJCXJldHVybiAocmMpOwogCkBAIC04MzgsNyArODg2LDYgQEAKIAlp
ZiAodmRldikgewogCQl2ZGV2LT52X3BoeXNfcmVhZCA9IHJlYWQ7CiAJCXZkZXYtPnZfcmVhZF9w
cml2ID0gcmVhZF9wcml2OwotCQl2ZGV2LT52X3N0YXRlID0gVkRFVl9TVEFURV9IRUFMVEhZOwog
CX0gZWxzZSB7CiAJCXByaW50ZigiWkZTOiBpbmNvbnNpc3RlbnQgbnZsaXN0IGNvbnRlbnRzXG4i
KTsKIAkJcmV0dXJuIChFSU8pOwo=
--001636e0ac8f5b2579047a2c611f--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?f383264b0912071608h7049f2e2n8f7797c8842783b7>