Hi. I've recently upgraded my main work machine to -CURRENT in an environment where much of the world is mounted via NFS. The NFS locking via rpc.lockd/rpc.statd doesn't seem to be too stable, and the -L behavior described in mount_nfs(8) works much better for me. Unfortunately, I can't seem to coax the automounter into providing those kinds of mounts for me.
Since I only need the local locking behavior, I create a little sysctl that adds the NFSMNT_NOLOCKD flag to any NFS mount. I've made a patch against -CURRENT for anyone who'd liek to add this functionality to their kernel. If a committer is {interested in,happy with} this patch, please feel free to commit it. And if I've missed a way to make the automounter do this, please wise me up. Thanks. -- Ted Faber http://www.isi.edu/~faber PGP: http://www.isi.edu/~faber/pubkeys.asc Unexpected attachment on this mail? See http://www.isi.edu/~faber/FAQ.html#SIG
--- nfs_vfsops.c.orig Tue Dec 7 06:26:39 2004 +++ nfs_vfsops.c Tue Dec 14 12:39:22 2004 @@ -88,6 +88,9 @@ static int nfs_ip_paranoia = 1; SYSCTL_INT(_vfs_nfs, OID_AUTO, nfs_ip_paranoia, CTLFLAG_RW, &nfs_ip_paranoia, 0, ""); +static int nfs_force_local_locking = 0; +SYSCTL_INT(_vfs_nfs, OID_AUTO, nfs_force_local_locking, CTLFLAG_RW, + &nfs_force_local_locking, 0, ""); #ifdef NFS_DEBUG int nfs_debug; SYSCTL_INT(_vfs_nfs, OID_AUTO, debug, CTLFLAG_RW, &nfs_debug, 0, ""); @@ -726,6 +729,10 @@ */ if (nfs_ip_paranoia == 0) args.flags |= NFSMNT_NOCONN; + + if (nfs_force_local_locking) + args.flags |= NFSMNT_NOLOCKD; + if (args.fhsize < 0 || args.fhsize > NFSX_V3FHMAX) return (EINVAL); error = copyin((caddr_t)args.fh, (caddr_t)nfh, args.fhsize);
pgp6GJfC1ZVhG.pgp
Description: PGP signature