aboutsummaryrefslogtreecommitdiff
path: root/sys/nfsserver
diff options
context:
space:
mode:
authorAlfred Perlstein <alfred@FreeBSD.org>2001-04-17 20:45:23 +0000
committerAlfred Perlstein <alfred@FreeBSD.org>2001-04-17 20:45:23 +0000
commit603c86672ce346f0fde026a4bd1cee3d782f5634 (patch)
tree135252048f1838c8db5c5c19f616e2038f3639b9 /sys/nfsserver
parent0dfba3cef13b285bd8ff4cd8f9c9b004571db54b (diff)
downloadsrc-603c86672ce346f0fde026a4bd1cee3d782f5634.tar.gz
src-603c86672ce346f0fde026a4bd1cee3d782f5634.zip
Implement client side NFS locks.
Obtained from: BSD/os Import Ok'd by: mckusick, jkh, motd on builder.freebsd.org
Notes
Notes: svn path=/head/; revision=75631
Diffstat (limited to 'sys/nfsserver')
-rw-r--r--sys/nfsserver/nfs.h1
-rw-r--r--sys/nfsserver/nfs_syscalls.c9
-rw-r--r--sys/nfsserver/nfsrvstats.h1
3 files changed, 11 insertions, 0 deletions
diff --git a/sys/nfsserver/nfs.h b/sys/nfsserver/nfs.h
index 259ec2067384..2b0f664232cf 100644
--- a/sys/nfsserver/nfs.h
+++ b/sys/nfsserver/nfs.h
@@ -274,6 +274,7 @@ struct nfsstats {
#define NFSSVC_GOTAUTH 0x040
#define NFSSVC_AUTHINFAIL 0x080
#define NFSSVC_MNTD 0x100
+#define NFSSVC_LOCKDANS 0x200
/*
* fs.nfs sysctl(3) identifiers
diff --git a/sys/nfsserver/nfs_syscalls.c b/sys/nfsserver/nfs_syscalls.c
index 2d46568f08cb..a47d5a8e3329 100644
--- a/sys/nfsserver/nfs_syscalls.c
+++ b/sys/nfsserver/nfs_syscalls.c
@@ -56,6 +56,8 @@
#include <sys/domain.h>
#include <sys/protosw.h>
#include <sys/namei.h>
+#include <sys/fcntl.h>
+#include <sys/lockf.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
@@ -69,6 +71,7 @@
#include <nfs/nfsnode.h>
#include <nfs/nqnfs.h>
#include <nfs/nfsrtt.h>
+#include <nfs/nfs_lock.h>
static MALLOC_DEFINE(M_NFSSVC, "NFS srvsock", "Nfs server structure");
@@ -152,6 +155,12 @@ nfssvc(p, uap)
#endif /* NFS_NOSERVER */
int error;
+ if ((uap->flag & NFSSVC_LOCKDANS) != 0) {
+ struct lockd_ans la;
+
+ error = copyin(uap->argp, &la, sizeof(la));
+ return (error != 0 ? error : nfslockdans(p, &la));
+ }
/*
* Must be super user
*/
diff --git a/sys/nfsserver/nfsrvstats.h b/sys/nfsserver/nfsrvstats.h
index 259ec2067384..2b0f664232cf 100644
--- a/sys/nfsserver/nfsrvstats.h
+++ b/sys/nfsserver/nfsrvstats.h
@@ -274,6 +274,7 @@ struct nfsstats {
#define NFSSVC_GOTAUTH 0x040
#define NFSSVC_AUTHINFAIL 0x080
#define NFSSVC_MNTD 0x100
+#define NFSSVC_LOCKDANS 0x200
/*
* fs.nfs sysctl(3) identifiers