rpc.lockd spinning; much breakage
Don Lewis
truckman at FreeBSD.org
Wed May 14 19:07:16 PDT 2003
On 14 May, Robert Watson wrote:
>
> 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.
I think EAGAIN is a better fit for that definition of LCK_DENIED. Also
fcntl() and fcntl() don't include EACCES as one of their error returns.
> 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