From owner-freebsd-current@FreeBSD.ORG Wed May 14 15:12:22 2003 Return-Path: Delivered-To: freebsd-current@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id E187D37B407; Wed, 14 May 2003 15:12:22 -0700 (PDT) Received: from fledge.watson.org (fledge.watson.org [204.156.12.50]) by mx1.FreeBSD.org (Postfix) with ESMTP id 1795E43F85; Wed, 14 May 2003 15:12:22 -0700 (PDT) (envelope-from robert@fledge.watson.org) Received: from fledge.watson.org (localhost [127.0.0.1]) by fledge.watson.org (8.12.9/8.12.9) with ESMTP id h4EMC9On013899; Wed, 14 May 2003 18:12:09 -0400 (EDT) (envelope-from robert@fledge.watson.org) Received: from localhost (robert@localhost)h4EMC9Fk013896; Wed, 14 May 2003 18:12:09 -0400 (EDT) (envelope-from robert@fledge.watson.org) Date: Wed, 14 May 2003 18:12:09 -0400 (EDT) From: Robert Watson X-Sender: robert@fledge.watson.org To: Don Lewis In-Reply-To: <200305140545.h4E5jWM7052038@gw.catspoiler.org> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII cc: bsder@allcaps.org cc: alfred@FreeBSD.org cc: current@FreeBSD.org Subject: Re: rpc.lockd spinning; much breakage X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 14 May 2003 22:12:23 -0000 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@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;