rpc.lockd spinning; much breakage

Robert Watson rwatson at FreeBSD.org
Wed May 14 15:12:23 PDT 2003


Per your suggestion, the attached changes do cause a non-blocking request
to now get "the right error" -- my only concern is whether or not this is
too sweeping a mapping of this error case.  The spec lists LCK_DENIED as
"Indicates that the procedure failed because the request conflicted with
existing lock reservations for the file", but doesn't appear to offer an
error that denies the locked based on local configuration (security), etc. 

Robert N M Watson             FreeBSD Core Team, TrustedBSD Projects
robert at fledge.watson.org      Network Associates Laboratories

RCS file: /data/ncvs/src/usr.sbin/rpc.lockd/kern.c,v
retrieving revision 1.11
diff -u -r1.11 kern.c
--- kern.c	15 Aug 2002 21:52:21 -0000	1.11
+++ kern.c	14 May 2003 22:00:41 -0000
@@ -487,7 +487,7 @@
 			break;
 		case nlm4_denied:
 			if (pid_p == NULL)
-				ans.la_errno = EACCES;
+				ans.la_errno = EAGAIN;
 			else {
 				/* this is an answer to a nlm_test msg */
 				ans.la_set_getlk_pid = 1;
@@ -530,7 +530,7 @@
 			break;
 		case nlm_denied:
 			if (pid_p == NULL)
-				ans.la_errno = EACCES;
+				ans.la_errno = EAGAIN;
 			else {
 				/* this is an answer to a nlm_test msg */
 				ans.la_set_getlk_pid = 1;



More information about the freebsd-current mailing list