Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 18 Oct 2004 07:01:39 -0400 (EDT)
From:      Robert Watson <rwatson@freebsd.org>
To:        "Wilkinson, Alex" <alex.wilkinson@dsto.defence.gov.au>
Cc:        scottl@freebsd.org
Subject:   Re: RELENG_5 panic [nic: _mtx_lock_sleep: recursed on non-recursivemutex nfsd_mtx]
Message-ID:  <Pine.NEB.3.96L.1041018054925.29749K-200000@fledge.watson.org>
In-Reply-To: <Pine.NEB.3.96L.1041018051651.29749I-100000@fledge.watson.org>

next in thread | previous in thread | raw e-mail | index | archive | help
  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.

--0-173771394-1098097299=:29749
Content-Type: TEXT/PLAIN; charset=US-ASCII

On Mon, 18 Oct 2004, Robert Watson wrote:

> If this is timing-related, it could be KTR disrupts the timing
> sufficiently to prevent it.  More likely, it went away because the work
> load on the NFS server changed, or the directory layout changed, or some
> other factor that caused the passage through the NFS code to change. 

Actually, I think I found it.  Did the drive or partition layout in your
NFS server change recently?  If so, that would cause the fsid of the file
system to change, resulting in ESTALE errors being returned to the client; 
I found one or two nits in the error handling for vfs_getvfs()  that would
result in the problem you saw.  The attached patch should correct, as well
as add additional assertions to catch related bugs; note that this patch
appears to work fine in my environment, but that the additional assertions
could detect bugs I'm not seeing in my environment for similar reasons to
the ones that prevented me from seeing the one you just reported. 

FYI, when the last client referencing the old FSID was rebooted, the
problem would have gone away as that set of ESTALE conditions would no
longer be triggered.

Robert N M Watson             FreeBSD Core Team, TrustedBSD Projects
robert@fledge.watson.org      Principal Research Scientist, McAfee Research

> >  - aW
> > 
> > 
> > 
> > 	0n Sun, Oct 17, 2004 at 10:19:34AM -0400, Robert Watson wrote: 
> > 	
> > 	On Fri, 15 Oct 2004, Wilkinson, Alex wrote:
> > 	
> > 	> Hi all,
> > 	> 
> > 	> I currently get a panic with "nfs_server_enable=YES" in /etc/rc.conf.
> > 	> 
> > 	> OS: FreeBSD 5.3-BETA4 #2: Tue Sep 14 13:55:30 UTC 2004
> > 	> 
> > 	> Backtrace
> > 	> ---------
> > 	> 
> > 	> panic: _mtx_lock_sleep: recursed on non-recursive mutex nfsd_mtx @ /usr /src/sys/nfsserver/nfs_serv.c:1947
> > 	
> > 	Is the NFS server code compiled into your kernel, or is it getting loaded
> > 	as a module?  Do you have any other NFS-related entries in /etc/rc.conf?
> > 	Could you show the output of "show locks" and "show witness" with witness
> > 	compiled into the kernel?
> > 	
> > 	Thanks!
> > 	
> > 	Robert N M Watson             FreeBSD Core Team, TrustedBSD Projects
> > 	robert@fledge.watson.org      Principal Research Scientist, McAfee Research
> > 	
> > 	
> > 	> cpuid = 0
> > 	> KDB: enter: panic
> > 	> [thread 100074]
> > 	> Stopped at      kdb_enter+0x32: leave
> > 	> db> tr
> > 	> kdb_enter(c068ba66,0,c068aed8,dd2ed90c,c1b6b340) at kdb_enter+0x32
> > 	> panic(c068aed8,c069885f,c0698617,79b,c0698617) at panic+0x1b0
> > 	> _mtx_lock_sleep(c071c940,c1b6b340,0,c0698617,79b) at _mtx_lock_sleep+0x16e
> > 	> _mtx_lock_flags(c071c940,0,c0698617,79b,0) at _mtx_lock_flags+0xb0
> > 	> nfsrv_create(c1eb6800,c1b98800,c1b6b340,dd2edc8c,0) at nfsrv_create+0x8c4
> > 	> nfssvc(c1b6b340,dd2edd14,8,0,2) at nfssvc+0x6ea
> > 	> syscall(2f,2f,2f,0,0) at syscall+0x13b
> > 	> Xint0x80_syscall() at Xint0x80_syscall+0x1f
> > 	> --- syscall (155, FreeBSD ELF32, nfssvc), eip = 0x280c60bf, esp = 0xbfbfeb1c, eb p = 0xbfbfeb38 ---
> > 	> 
> > 	> 
> > 	>  - aW
> > 	> _______________________________________________
> > 	> freebsd-current@freebsd.org mailing list
> > 	> http://lists.freebsd.org/mailman/listinfo/freebsd-current
> > 	> To unsubscribe, send any mail to "freebsd-current-unsubscribe@freebsd.org"
> > 	> 
> > 	
> > _______________________________________________
> > freebsd-current@freebsd.org mailing list
> > http://lists.freebsd.org/mailman/listinfo/freebsd-current
> > To unsubscribe, send any mail to "freebsd-current-unsubscribe@freebsd.org"
> > 
> 
> _______________________________________________
> freebsd-current@freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-current
> To unsubscribe, send any mail to "freebsd-current-unsubscribe@freebsd.org"
> 

--0-173771394-1098097299=:29749
Content-Type: TEXT/PLAIN; charset=US-ASCII;
	name="20041018-nfs_server_locking_fix.diff"
Content-Transfer-Encoding: BASE64
Content-ID: <Pine.NEB.3.96L.1041018070139.29749L@fledge.watson.org>
Content-Description: 

SW5kZXg6IG5mc19zZXJ2LmMNCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NClJD
UyBmaWxlOiAvaG9tZS9uY3ZzL3NyYy9zeXMvbmZzc2VydmVyL25mc19zZXJ2
LmMsdg0KcmV0cmlldmluZyByZXZpc2lvbiAxLjE0OA0KZGlmZiAtdSAtcjEu
MTQ4IG5mc19zZXJ2LmMNCi0tLSBuZnNfc2Vydi5jCTI1IEF1ZyAyMDA0IDE2
OjUyOjU5IC0wMDAwCTEuMTQ4DQorKysgbmZzX3NlcnYuYwkxOCBPY3QgMjAw
NCAwOTo1Mzo1MiAtMDAwMA0KQEAgLTIyNSw2ICsyMjUsNyBAQA0KIAl0bCA9
IG5mc21fYnVpbGQodV9pbnQzMl90ICosIE5GU1hfVU5TSUdORUQpOw0KIAkq
dGwgPSB0eGRyX3Vuc2lnbmVkKG5mc21vZGUpOw0KIG5mc21vdXQ6DQorCU5G
U0RfTE9DS19BU1NFUlQoKTsNCiAJaWYgKHZwKSB7DQogCQlORlNEX1VOTE9D
SygpOw0KIAkJbXR4X2xvY2soJkdpYW50KTsJLyogVkZTICovDQpAQCAtMjg1
LDYgKzI4Niw3IEBADQogCS8qIGZhbGwgdGhyb3VnaCAqLw0KIA0KIG5mc21v
dXQ6DQorCU5GU0RfTE9DS19BU1NFUlQoKTsNCiAJaWYgKHZwKSB7DQogCQlO
RlNEX1VOTE9DSygpOw0KIAkJbXR4X2xvY2soJkdpYW50KTsJLyogVkZTICov
DQpAQCAtNDEyLDYgKzQxNCw3IEBADQogCQltdHhfdW5sb2NrKCZHaWFudCk7
CS8qIFZGUyAqLw0KIAkJTkZTRF9MT0NLKCk7DQogCX0NCisJTkZTRF9MT0NL
X0FTU0VSVCgpOw0KIA0KIAkvKg0KIAkgKiBJZiB0aGUgc2l6ZSBpcyBiZWlu
ZyBjaGFuZ2VkIHdyaXRlIGFjY2VzIGlzIHJlcXVpcmVkLCBvdGhlcndpc2UN
CkBAIC00MzksNiArNDQyLDcgQEANCiAJaWYgKCFlcnJvcikNCiAJCWVycm9y
ID0gcG9zdGF0X3JldDsNCiBvdXQ6DQorCU5GU0RfTE9DS19BU1NFUlQoKTsN
CiAJaWYgKHZwICE9IE5VTEwpIHsNCiAJCU5GU0RfVU5MT0NLKCk7DQogCQlt
dHhfbG9jaygmR2lhbnQpOwkvKiBWRlMgKi8NCkBAIC00NjAsNiArNDY0LDcg
QEANCiAJLyogZmFsbCB0aHJvdWdoICovDQogDQogbmZzbW91dDoNCisJTkZT
RF9MT0NLX0FTU0VSVCgpOw0KIAlORlNEX1VOTE9DSygpOw0KIAltdHhfbG9j
aygmR2lhbnQpOwkvKiBWRlMgKi8NCiAJaWYgKHZwKQ0KQEAgLTY1Myw2ICs2
NTgsNyBAQA0KIAl9DQogDQogbmZzbW91dDoNCisJTkZTRF9MT0NLX0FTU0VS
VCgpOw0KIAlORlNEX1VOTE9DSygpOw0KIAltdHhfbG9jaygmR2lhbnQpOwkv
KiBWRlMgKi8NCiAJaWYgKGRpcnApDQpAQCAtNzcxLDYgKzc3Nyw3IEBADQog
CW1iLT5tX25leHQgPSBtcDM7DQogCW1wMyA9IE5VTEw7DQogbmZzbW91dDoN
CisJTkZTRF9MT0NLX0FTU0VSVCgpOw0KIAlpZiAobXAzKQ0KIAkJbV9mcmVl
bShtcDMpOw0KIAlpZiAodnApIHsNCkBAIC0xMDQwLDYgKzEwNDcsNyBAQA0K
IAl9DQogCSp0bCA9IHR4ZHJfdW5zaWduZWQoY250KTsNCiBuZnNtb3V0Og0K
KwlORlNEX0xPQ0tfQVNTRVJUKCk7DQogCWlmICh2cCkgew0KIAkJTkZTRF9V
TkxPQ0soKTsNCiAJCW10eF9sb2NrKCZHaWFudCk7CS8qIFZGUyAqLw0KQEAg
LTEyNDIsNiArMTI1MCw3IEBADQogCWlmICghZXJyb3IpDQogCQllcnJvciA9
IGFmdGF0X3JldDsNCiBlcmVwbHk6DQorCU5GU0RfTE9DS19BU1NFUlQoKTsN
CiAJbmZzbV9yZXBseShORlNYX1BSRU9QQVRUUih2MykgKyBORlNYX1BPU1RP
UE9SRkFUVFIodjMpICsNCiAJCTIgKiBORlNYX1VOU0lHTkVEICsgTkZTWF9X
UklURVZFUkYodjMpKTsNCiAJaWYgKHYzKSB7DQpAQCAtMTI3NSw2ICsxMjg0
LDcgQEANCiAJfQ0KIAllcnJvciA9IDA7DQogbmZzbW91dDoNCisJTkZTRF9M
T0NLX0FTU0VSVCgpOw0KIAlORlNEX1VOTE9DSygpOw0KIAltdHhfbG9jaygm
R2lhbnQpOwkvKiBWRlMgKi8NCiAJaWYgKHZwKQ0KQEAgLTEzODYsNiArMTM5
Niw3IEBADQogCSAgICB9DQogCSAgICBpZiAobGVuID4gTkZTX01BWERBVEEg
fHwgbGVuIDwgMCAgfHwgaSA8IGxlbikgew0KIG5mc21vdXQ6DQorCQlORlNE
X0xPQ0tfQVNTRVJUKCk7DQogCQltX2ZyZWVtKG1yZXApOw0KIAkJZXJyb3Ig
PSBFSU87DQogCQluZnNtX3dyaXRlcmVwbHkoMiAqIE5GU1hfVU5TSUdORUQp
Ow0KQEAgLTE3MTksNyArMTczMCw3IEBADQogCW5mc21fc3J2bXRvZmgoZmhw
KTsNCiAJaWYgKChtcCA9IHZmc19nZXR2ZnMoJmZocC0+ZmhfZnNpZCkpID09
IE5VTEwpIHsNCiAJCWVycm9yID0gRVNUQUxFOw0KLQkJZ290byBlcmVwbHk7
DQorCQlnb3RvIGVyZXBseV9sb2NrZWQ7DQogCX0NCiAJTkZTRF9VTkxPQ0so
KTsNCiAJbXR4X2xvY2soJkdpYW50KTsJLyogVkZTICovDQpAQCAtMTk0Myw4
ICsxOTU0LDExIEBADQogCQl9DQogCX0NCiBlcmVwbHk6DQorCU5GU0RfVU5M
T0NLX0FTU0VSVCgpOw0KIAltdHhfdW5sb2NrKCZHaWFudCk7CS8qIFZGUyAq
Lw0KIAlORlNEX0xPQ0soKTsNCitlcmVwbHlfbG9ja2VkOg0KKwlORlNEX0xP
Q0tfQVNTRVJUKCk7DQogCW5mc21fcmVwbHkoTkZTWF9TUlZGSCh2MykgKyBO
RlNYX0ZBVFRSKHYzKSArIE5GU1hfV0NDREFUQSh2MykpOw0KIAlpZiAodjMp
IHsNCiAJCWlmICghZXJyb3IpIHsNCkBAIC0xOTYxLDYgKzE5NzUsNyBAQA0K
IAllcnJvciA9IDA7DQogDQogbmZzbW91dDoNCisJTkZTRF9MT0NLX0FTU0VS
VCgpOw0KIAlORlNEX1VOTE9DSygpOw0KIAltdHhfbG9jaygmR2lhbnQpOwkv
KiBWRlMgKi8NCiAJaWYgKG5kLm5pX3N0YXJ0ZGlyKSB7DQpAQCAtMjExNiw2
ICsyMTMxLDcgQEANCiAJICogc2VuZCByZXNwb25zZSwgY2xlYW51cCwgcmV0
dXJuLg0KIAkgKi8NCiBvdXQ6DQorCU5GU0RfVU5MT0NLX0FTU0VSVCgpOw0K
IAlpZiAobmQubmlfc3RhcnRkaXIpIHsNCiAJCXZyZWxlKG5kLm5pX3N0YXJ0
ZGlyKTsNCiAJCW5kLm5pX3N0YXJ0ZGlyID0gTlVMTDsNCkBAIC0yMTQ2LDkg
KzIxNjIsMTAgQEANCiAJCWRpcmFmdF9yZXQgPSBWT1BfR0VUQVRUUihkaXJw
LCAmZGlyYWZ0LCBjcmVkLCB0ZCk7DQogCQlWT1BfVU5MT0NLKGRpcnAsIDAs
IHRkKTsNCiAJfQ0KLWVyZXBseToNCiAJbXR4X3VubG9jaygmR2lhbnQpOwkv
KiBWRlMgKi8NCiAJTkZTRF9MT0NLKCk7DQorZXJlcGx5Og0KKwlORlNEX0xP
Q0tfQVNTRVJUKCk7DQogCW5mc21fcmVwbHkoTkZTWF9TUlZGSCgxKSArIE5G
U1hfUE9TVE9QQVRUUigxKSArIE5GU1hfV0NDREFUQSgxKSk7DQogCWlmICh2
Mykgew0KIAkJaWYgKCFlcnJvcikgew0KQEAgLTIxNjQsNiArMjE4MSw3IEBA
DQogCU5GU0RfTE9DSygpOw0KIAlyZXR1cm4gKDApOw0KIG5mc21vdXQ6DQor
CU5GU0RfTE9DS19BU1NFUlQoKTsNCiAJTkZTRF9VTkxPQ0soKTsNCiAJbXR4
X2xvY2soJkdpYW50KTsJLyogVkZTICovDQogCWlmIChkaXJwKQ0KQEAgLTIy
NDksNiArMjI2Nyw3IEBADQogCQkJZ290byBvdXQ7DQogCQl9DQogb3V0Og0K
KwkJTkZTRF9VTkxPQ0tfQVNTRVJUKCk7DQogCQlpZiAoIWVycm9yKSB7DQog
CQkJZXJyb3IgPSBWT1BfUkVNT1ZFKG5kLm5pX2R2cCwgbmQubmlfdnAsICZu
ZC5uaV9jbmQpOw0KIAkJCU5ERlJFRSgmbmQsIE5ERl9PTkxZX1BOQlVGKTsN
CkBAIC0yMjgwLDEyICsyMjk5LDE0IEBADQogCW10eF91bmxvY2soJkdpYW50
KTsJLyogVkZTICovDQogCU5GU0RfTE9DSygpOw0KIGVyZXBseToNCisJTkZT
RF9MT0NLX0FTU0VSVCgpOw0KIAluZnNtX3JlcGx5KE5GU1hfV0NDREFUQSh2
MykpOw0KIAlpZiAodjMpIHsNCiAJCW5mc21fc3J2d2NjX2RhdGEoZGlyZm9y
X3JldCwgJmRpcmZvciwgZGlyYWZ0X3JldCwgJmRpcmFmdCk7DQogCQllcnJv
ciA9IDA7DQogCX0NCiBuZnNtb3V0Og0KKwlORlNEX0xPQ0tfQVNTRVJUKCk7
DQogCU5GU0RfVU5MT0NLKCk7DQogCW10eF9sb2NrKCZHaWFudCk7CS8qIFZG
UyAqLw0KIAlOREZSRUUoJm5kLCBOREZfT05MWV9QTkJVRik7DQpAQCAtMjM5
Nyw4ICsyNDE4LDExIEBADQogCQl2cmVsZSh0ZGlycCk7DQogCQl0ZGlycCA9
IE5VTEw7DQogCX0NCi0JaWYgKGVycm9yKQ0KKwlpZiAoZXJyb3IpIHsNCisJ
CW10eF91bmxvY2soJkdpYW50KTsJLyogVkZTICovDQorCQlORlNEX0xPQ0so
KTsNCiAJCWdvdG8gb3V0MTsNCisJfQ0KIA0KIAl0ZHZwID0gdG9uZC5uaV9k
dnA7DQogCXR2cCA9IHRvbmQubmlfdnA7DQpAQCAtMjQ1NSw2ICsyNDc5LDcg
QEANCiAJICAgICAgZnJvbW5kLm5pX2NuZC5jbl9uYW1lbGVuKSkNCiAJCWVy
cm9yID0gLTE7DQogb3V0Og0KKwlORlNEX1VOTE9DS19BU1NFUlQoKTsNCiAJ
aWYgKCFlcnJvcikgew0KIAkJLyoNCiAJCSAqIFRoZSBWT1BfUkVOQU1FIGZ1
bmN0aW9uIHJlbGVhc2VzIGFsbCB2bm9kZSByZWZlcmVuY2VzICYNCkBAIC0y
NDc3LDkgKzI1MDIsMTAgQEANCiAJfQ0KIAkvKiBmYWxsIHRocm91Z2ggKi8N
CiANCi1vdXQxOg0KIAltdHhfdW5sb2NrKCZHaWFudCk7CS8qIFZGUyAqLw0K
IAlORlNEX0xPQ0soKTsNCitvdXQxOg0KKwlORlNEX0xPQ0tfQVNTRVJUKCk7
DQogCW5mc21fcmVwbHkoMiAqIE5GU1hfV0NDREFUQSh2MykpOw0KIAlpZiAo
djMpIHsNCiAJCS8qIFJlbGVhc2UgZXhpc3RpbmcgbG9ja3MgdG8gcHJldmVu
dCBkZWFkbG9jay4gKi8NCkBAIC0yNTE4LDYgKzI1NDQsNyBAQA0KIAkvKg0K
IAkgKiBDbGVhciBvdXQgdG9uZCByZWxhdGVkIGZpZWxkcw0KIAkgKi8NCisJ
TkZTRF9MT0NLX0FTU0VSVCgpOw0KIAlORlNEX1VOTE9DSygpOw0KIAltdHhf
bG9jaygmR2lhbnQpOwkvKiBWRlMgKi8NCiAJaWYgKHRkaXJwKQ0KQEAgLTI2
ODAsNiArMjcwNyw3IEBADQogCW10eF91bmxvY2soJkdpYW50KTsJLyogVkZT
ICovDQogCU5GU0RfTE9DSygpOw0KIGVyZXBseToNCisJTkZTRF9MT0NLX0FT
U0VSVCgpOw0KIAluZnNtX3JlcGx5KE5GU1hfUE9TVE9QQVRUUih2MykgKyBO
RlNYX1dDQ0RBVEEodjMpKTsNCiAJaWYgKHYzKSB7DQogCQluZnNtX3NydnBv
c3RvcF9hdHRyKGdldHJldCwgJmF0KTsNCkBAIC0yNjg5LDYgKzI3MTcsNyBA
QA0KIAkvKiBmYWxsIHRocm91Z2ggKi8NCiANCiBuZnNtb3V0Og0KKwlORlNE
X0xPQ0tfQVNTRVJUKCk7DQogCU5GU0RfVU5MT0NLKCk7DQogCW10eF9sb2Nr
KCZHaWFudCk7CS8qIFZGUyAqLw0KIAlOREZSRUUoJm5kLCBOREZfT05MWV9Q
TkJVRik7DQpAQCAtMjc0NCw2ICsyNzczLDggQEANCiAJZmhwID0gJm5maC5m
aF9nZW5lcmljOw0KIAluZnNtX3Nydm10b2ZoKGZocCk7DQogCWlmICgobXAg
PSB2ZnNfZ2V0dmZzKCZmaHAtPmZoX2ZzaWQpKSA9PSBOVUxMKSB7DQorCQlO
RlNEX1VOTE9DSygpOw0KKwkJbXR4X2xvY2soJkdpYW50KTsJLyogVkZTICov
DQogCQllcnJvciA9IEVTVEFMRTsNCiAJCWdvdG8gb3V0Ow0KIAl9DQpAQCAt
Mjg0MSw2ICsyODcyLDcgQEANCiAJICAgIH0NCiAJfQ0KIG91dDoNCisJTkZT
RF9VTkxPQ0tfQVNTRVJUKCk7DQogCS8qDQogCSAqIFRoZXNlIHJlbGVhc2Vz
IGFyZW4ndCBzdHJpY3RseSByZXF1aXJlZCwgZG9lcyBldmVuIGRvaW5nIHRo
ZW0NCiAJICogbWFrZSBhbnkgc2Vuc2U/IFhYWCBjYW4gbmZzbV9yZXBseSgp
IGJsb2NrPw0KQEAgLTI4NzIsNiArMjkwNCw3IEBADQogCS8qIGZhbGwgdGhy
b3VnaCAqLw0KIA0KIG5mc21vdXQ6DQorCU5GU0RfTE9DS19BU1NFUlQoKTsN
CiAJTkZTRF9VTkxPQ0soKTsNCiAJbXR4X2xvY2soJkdpYW50KTsJLyogVkZT
ICovDQogCU5ERlJFRSgmbmQsIE5ERl9PTkxZX1BOQlVGKTsNCkBAIC0yOTMw
LDYgKzI5NjMsOCBAQA0KIAlmaHAgPSAmbmZoLmZoX2dlbmVyaWM7DQogCW5m
c21fc3J2bXRvZmgoZmhwKTsNCiAJaWYgKChtcCA9IHZmc19nZXR2ZnMoJmZo
cC0+ZmhfZnNpZCkpID09IE5VTEwpIHsNCisJCU5GU0RfVU5MT0NLKCk7DQor
CQltdHhfbG9jaygmR2lhbnQpOwkvKiBWRlMgKi8NCiAJCWVycm9yID0gRVNU
QUxFOw0KIAkJZ290byBvdXQ7DQogCX0NCkBAIC0zMDA0LDYgKzMwMzksNyBA
QA0KIAkJCWVycm9yID0gVk9QX0dFVEFUVFIobmQubmlfdnAsIHZhcCwgY3Jl
ZCwgdGQpOw0KIAl9DQogb3V0Og0KKwlORlNEX1VOTE9DS19BU1NFUlQoKTsN
CiAJaWYgKGRpcnApIHsNCiAJCWlmIChkaXJwID09IG5kLm5pX2R2cCkgew0K
IAkJCWRpcmFmdF9yZXQgPSBWT1BfR0VUQVRUUihkaXJwLCAmZGlyYWZ0LCBj
cmVkLCB0ZCk7DQpAQCAtMzA0OCw2ICszMDg0LDcgQEANCiAJLyogZmFsbCB0
aHJvdWdoICovDQogDQogbmZzbW91dDoNCisJTkZTRF9MT0NLX0FTU0VSVCgp
Ow0KIAlORlNEX1VOTE9DSygpOw0KIAltdHhfbG9jaygmR2lhbnQpOwkvKiBW
RlMgKi8NCiAJaWYgKGRpcnApDQpAQCAtMzE1Miw2ICszMTg5LDcgQEANCiAJ
ICogSXNzdWUgb3IgYWJvcnQgb3AuICBTaW5jZSBTQVZFU1RBUlQgaXMgbm90
IHNldCwgcGF0aCBuYW1lDQogCSAqIGNvbXBvbmVudCBpcyBmcmVlZCBieSB0
aGUgVk9QIGFmdGVyIGVpdGhlci4NCiAJICovDQorCU5GU0RfTE9DS19BU1NF
UlQoKTsNCiAJTkZTRF9VTkxPQ0soKTsNCiAJbXR4X2xvY2soJkdpYW50KTsJ
LyogVkZTICovDQogCWlmICghZXJyb3IpDQpAQCAtMzE4Nyw2ICszMjI1LDcg
QEANCiAJLyogZmFsbCB0aHJvdWdoICovDQogDQogbmZzbW91dDoNCisJTkZT
RF9MT0NLX0FTU0VSVCgpOw0KIAlORlNEX1VOTE9DSygpOw0KIAltdHhfbG9j
aygmR2lhbnQpOwkvKiBWRlMgKi8NCiAJTkRGUkVFKCZuZCwgTkRGX09OTFlf
UE5CVUYpOw0KQEAgLTMzNTYsNiArMzM5NSw3IEBADQogCSAqLw0KIAlNQUxM
T0MocmJ1ZiwgY2FkZHJfdCwgc2l6LCBNX1RFTVAsIE1fV0FJVE9LKTsNCiBh
Z2FpbjoNCisJTkZTRF9VTkxPQ0tfQVNTRVJUKCk7DQogCWl2Lmlvdl9iYXNl
ID0gcmJ1ZjsNCiAJaXYuaW92X2xlbiA9IGZ1bGxzaXo7DQogCWlvLnVpb19p
b3YgPSAmaXY7DQpAQCAtMzU1Niw2ICszNTk2LDcgQEANCiAJRlJFRSgoY2Fk
ZHJfdCljb29raWVzLCBNX1RFTVApOw0KIA0KIG5mc21vdXQ6DQorCU5GU0Rf
TE9DS19BU1NFUlQoKTsNCiAJaWYgKHZwKSB7DQogCQlORlNEX1VOTE9DSygp
Ow0KIAkJbXR4X2xvY2soJkdpYW50KTsJLyogVkZTICovDQpAQCAtMzY2NCw2
ICszNzA1LDcgQEANCiAJVk9QX1VOTE9DSyh2cCwgMCwgdGQpOw0KIAlNQUxM
T0MocmJ1ZiwgY2FkZHJfdCwgc2l6LCBNX1RFTVAsIE1fV0FJVE9LKTsNCiBh
Z2FpbjoNCisJTkZTRF9VTkxPQ0tfQVNTRVJUKCk7DQogCWl2Lmlvdl9iYXNl
ID0gcmJ1ZjsNCiAJaXYuaW92X2xlbiA9IGZ1bGxzaXo7DQogCWlvLnVpb19p
b3YgPSAmaXY7DQpAQCAtMzg5Nyw2ICszOTM5LDcgQEANCiAJCQl9DQogCQl9
DQogaW52YWxpZDoNCisJCU5GU0RfVU5MT0NLX0FTU0VSVCgpOw0KIAkJY3Bv
cyArPSBkcC0+ZF9yZWNsZW47DQogCQlkcCA9IChzdHJ1Y3QgZGlyZW50ICop
Y3BvczsNCiAJCWNvb2tpZXArKzsNCkBAIC0zOTIzLDYgKzM5NjYsNyBAQA0K
IAlGUkVFKChjYWRkcl90KWNvb2tpZXMsIE1fVEVNUCk7DQogCUZSRUUoKGNh
ZGRyX3QpcmJ1ZiwgTV9URU1QKTsNCiBuZnNtb3V0Og0KKwlORlNEX0xPQ0tf
QVNTRVJUKCk7DQogCWlmICh2cCkgew0KIAkJTkZTRF9VTkxPQ0soKTsNCiAJ
CW10eF9sb2NrKCZHaWFudCk7CS8qIFZGUyAqLw0KQEAgLTQwODEsNiArNDEy
NSw3IEBADQogCXZwID0gTlVMTDsNCiAJTkZTRF9MT0NLKCk7DQogZXJlcGx5
Og0KKwlORlNEX0xPQ0tfQVNTRVJUKCk7DQogCW5mc21fcmVwbHkoTkZTWF9W
M1dDQ0RBVEEgKyBORlNYX1YzV1JJVEVWRVJGKTsNCiAJbmZzbV9zcnZ3Y2Nf
ZGF0YShmb3JfcmV0LCAmYmZvciwgYWZ0X3JldCwgJmFmdCk7DQogCWlmICgh
ZXJyb3IpIHsNCkBAIC00MDkzLDYgKzQxMzgsNyBAQA0KIAkJZXJyb3IgPSAw
Ow0KIAl9DQogbmZzbW91dDoNCisJTkZTRF9MT0NLX0FTU0VSVCgpOw0KIAlO
RlNEX1VOTE9DSygpOw0KIAltdHhfbG9jaygmR2lhbnQpOwkvKiBWRlMgKi8N
CiAJaWYgKHZwKQ0KQEAgLTQxOTQsNiArNDI0MCw3IEBADQogCQkJc2ZwLT5z
Zl9iYXZhaWwgPSB0eGRyX3Vuc2lnbmVkKHNmLT5mX2JhdmFpbCk7DQogCX0N
CiBuZnNtb3V0Og0KKwlORlNEX0xPQ0tfQVNTRVJUKCk7DQogCWlmICh2cCkg
ew0KIAkJTkZTRF9VTkxPQ0soKTsNCiAJCW10eF9sb2NrKCZHaWFudCk7CS8q
IFZGUyAqLw0KQEAgLTQyODAsNiArNDMyNyw3IEBADQogCQlORlNWM0ZTSU5G
T19TWU1MSU5LIHwgTkZTVjNGU0lORk9fSE9NT0dFTkVPVVMgfA0KIAkJTkZT
VjNGU0lORk9fQ0FOU0VUVElNRSk7DQogbmZzbW91dDoNCisJTkZTRF9MT0NL
X0FTU0VSVCgpOw0KIAlpZiAodnApIHsNCiAJCU5GU0RfVU5MT0NLKCk7DQog
CQltdHhfbG9jaygmR2lhbnQpOwkvKiBWRlMgKi8NCkBAIC00MzYxLDYgKzQ0
MDksNyBAQA0KIAlwYy0+cGNfY2FzZWluc2Vuc2l0aXZlID0gbmZzcnZfbmZz
X2ZhbHNlOw0KIAlwYy0+cGNfY2FzZXByZXNlcnZpbmcgPSBuZnNydl9uZnNf
dHJ1ZTsNCiBuZnNtb3V0Og0KKwlORlNEX0xPQ0tfQVNTRVJUKCk7DQogCWlm
ICh2cCkgew0KIAkJTkZTRF9VTkxPQ0soKTsNCiAJCW10eF9sb2NrKCZHaWFu
dCk7CS8qIFZGUyAqLw0KQEAgLTQzODksNiArNDQzOCw3IEBADQogCW5mc2Ri
cHJpbnRmKCgiJXMgJWRcbiIsIF9fRklMRV9fLCBfX0xJTkVfXykpOw0KIAlu
ZnNtX3JlcGx5KDApOw0KIG5mc21vdXQ6DQorCU5GU0RfTE9DS19BU1NFUlQo
KTsNCiAJcmV0dXJuIChlcnJvcik7DQogfQ0KIA0KQEAgLTQ0MTUsNiArNDQ2
NSw3IEBADQogCW5mc21fcmVwbHkoMCk7DQogCWVycm9yID0gMDsNCiBuZnNt
b3V0Og0KKwlORlNEX0xPQ0tfQVNTRVJUKCk7DQogCXJldHVybiAoZXJyb3Ip
Ow0KIH0NCiANCkBAIC00NDQwLDcgKzQ0OTEsNiBAQA0KIAlpbnQgZXJyb3I7
DQogDQogCU5GU0RfTE9DS19BU1NFUlQoKTsNCi0JTkZTRF9VTkxPQ0soKTsN
CiANCiAJbmZzZGJwcmludGYoKCIlcyAlZFxuIiwgX19GSUxFX18sIF9fTElO
RV9fKSk7DQogCWlmIChmbGFncyAmIFZXUklURSkgew0KQEAgLTQ0NTUsOCAr
NDUwNSw3IEBADQogCQkJY2FzZSBWUkVHOg0KIAkJCWNhc2UgVkRJUjoNCiAJ
CQljYXNlIFZMTks6DQotCQkJCWVycm9yID0gRVJPRlM7DQotCQkJCWdvdG8g
b3V0Ow0KKwkJCQlyZXR1cm4gKEVST0ZTKTsNCiAJCQlkZWZhdWx0Og0KIAkJ
CQlicmVhazsNCiAJCQl9DQpAQCAtNDQ2NSwxNSArNDUxNCwxNCBAQA0KIAkJ
ICogSWYgdGhlcmUncyBzaGFyZWQgdGV4dCBhc3NvY2lhdGVkIHdpdGgNCiAJ
CSAqIHRoZSBpbm9kZSwgd2UgY2FuJ3QgYWxsb3cgd3JpdGluZy4NCiAJCSAq
Lw0KLQkJaWYgKHZwLT52X3ZmbGFnICYgVlZfVEVYVCkgew0KLQkJCU5GU0Rf
TE9DSygpOw0KKwkJaWYgKHZwLT52X3ZmbGFnICYgVlZfVEVYVCkNCiAJCQly
ZXR1cm4gKEVUWFRCU1kpOw0KLQkJfQ0KIAl9DQorCU5GU0RfVU5MT0NLKCk7
DQogCW10eF9sb2NrKCZHaWFudCk7CS8qIFZGUyAqLw0KIAllcnJvciA9IFZP
UF9HRVRBVFRSKHZwLCAmdmF0dHIsIGNyZWQsIHRkKTsNCiAJaWYgKGVycm9y
KQ0KLQkJZ290byBvdXQyOw0KKwkJZ290byBvdXQ7DQogCWVycm9yID0gVk9Q
X0FDQ0VTUyh2cCwgZmxhZ3MsIGNyZWQsIHRkKTsNCiAJLyoNCiAJICogQWxs
b3cgY2VydGFpbiBvcGVyYXRpb25zIGZvciB0aGUgb3duZXIgKHJlYWRzIGFu
ZCB3cml0ZXMNCkBAIC00NDgxLDkgKzQ1MjksOSBAQA0KIAkgKi8NCiAJaWYg
KG92ZXJyaWRlICYmIGVycm9yID09IEVBQ0NFUyAmJiBjcmVkLT5jcl91aWQg
PT0gdmF0dHIudmFfdWlkKQ0KIAkJZXJyb3IgPSAwOw0KLW91dDI6DQotCW10
eF91bmxvY2soJkdpYW50KTsJLyogVkZTICovDQogb3V0Og0KKwlORlNEX1VO
TE9DS19BU1NFUlQoKTsNCisJbXR4X3VubG9jaygmR2lhbnQpOwkvKiBWRlMg
Ki8NCiAJTkZTRF9MT0NLKCk7DQogCXJldHVybiBlcnJvcjsNCiB9DQo=
--0-173771394-1098097299=:29749--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.NEB.3.96L.1041018054925.29749K-200000>