kern/50807: NFS file locking as client deos not working

Shao Zhang shao at cia.com.au
Sun Apr 13 17:27:38 PDT 2003


On [Fri, 11 Apr 2003 21:25:15 +1000 (EST)], Bruce Evans <bde at zeta.org.au> wrote:
> On Fri, 11 Apr 2003, Shao Zhang wrote:
>
>> >Description:
>> 	When running the system as an NFS client, file locking does not work at
>> all. The call to fcntl(id, F_SETLK, ...) returns errno 45. The nfs server used
>> is a Redhat Linux 7, with kernel 2.4.2. I have verified that it works fine in
>> both 4.5-RELEASE and 4.6-RELEASE. I have the following entries in my rc.conf:
>>
>> nfs_client_enable="YES"         # This host is an NFS client (or NO).
>> nfs_access_cache="4"            # Client cache timeout in seconds
>> nfs_server_enable="NO"          # This host is an NFS server (or NO).
>> nfs_server_flags="-u -t -n 4"   # Flags to nfsd (if enabled).
>> nfs_privport="YES"              # Provide NFS only on secure port (or NO).
>> nfs_bufpackets="DEFAULT"        # bufspace (in packets) for client (or DEFAULT)
>
> At least for a -current server and client, one or both rpc.lockd and
> rpc.statd enabled here on one or both of the client and server.  IIRC,
> enabling both on both works but may be more than necessary.  rc.conf.5
> is very unclear on the exact servers required.  mount_nfs.8 gives more
> details in connection with how to not use these servers (-L/nolockd flag)
> but is also unclear.
>
> RELENG_4 fakes nfs locking so that lock requests succeed but don't actually
> work.  "mount -t nfs -onolockd ..." gives the same fake locking as in
> RELENG_4.

My understanding is that you only need to enable lockd and statd for the
server. According to man rc.conf:

   rpc_lockd_enable
                 (bool) If set to ``YES'' and also an NFS server, run
                 rpc.lockd(8) at boot time.

   rpc_statd_enable
                 (bool) If set to ``YES'' and also an NFS server, run
                 rpc.statd(8) at boot time.


The NFS server I am using here is a linux box with 2.4.2 which has a
kernel mode lockd and rpc.statd is running as well. I have tried to
enable both options on my freebsd box as a client, and now the
bogofilter program actually hangs there.

Regards,

Shao.


More information about the freebsd-bugs mailing list