6225 NFSv4: setlock() can spin forever
Review Request #95 — Created Sept. 12, 2015 and submitted
Information | |
---|---|
marcel | |
illumos-gate | |
6225 | |
Reviewers | |
general | |
webrev: http://cr.illumos.org/~webrev/marcel/il-setlock-spin/
There are various scenarios known when the setlock() can spin forever (please see the bug report for details). The fix makes sure the endless setlock() spinning is no longer possible.
I ran the test described in the bug report (without the Bug #6253 fixed) to
make sure the problem is no longer reproducible. I checked using the dtrace
that the retry loop in setlock() is limited as designed.
Change Summary:
Reverted the "goto retry" removal; limited the number of retries instead.
Testing Done: |
|
|||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Diff: |
Revision 3 (+53 -3) |
Change Summary:
The conflicting lock should be returned only when it is found
Diff: |
Revision 4 (+60 -7) |
---|
Status: Closed (submitted)
Change Summary:
commit 55a4551ddde8feed8f8e011458f992ea74257bd9 Author: Marcel Telka <marcel.telka@nexenta.com> AuthorDate: Wed Sep 30 01:18:52 2015 +0200 Commit: Dan McDonald <danmcd@omniti.com> CommitDate: Wed Oct 7 14:30:42 2015 -0400 6225 NFSv4: setlock() can spin forever Reviewed by: Josef 'Jeff' Sipek <josef.sipek@nexenta.com> Reviewed by: Gordon Ross <gordon.ross@nexenta.com> Reviewed by: Garrett D'Amore <garrett@damore.org> Reviewed by: Robert Mustacchi <rm@joyent.com> Reviewed by: Arne Jansen <arne@die-jansens.de> Approved by: Dan McDonald <danmcd@omniti.com> :100644 100644 544c884... cd2151e... M usr/src/uts/common/fs/nfs/nfs4_srv.c