add POSIX-style byte-level record locking
[unix-history] / usr / src / sys / nfs / nfs_vnops.c
index c859b35..4bd558d 100644 (file)
@@ -7,7 +7,7 @@
  *
  * %sccs.include.redist.c%
  *
  *
  * %sccs.include.redist.c%
  *
- *     @(#)nfs_vnops.c 7.49 (Berkeley) %G%
+ *     @(#)nfs_vnops.c 7.50 (Berkeley) %G%
  */
 
 /*
  */
 
 /*
@@ -72,7 +72,8 @@ int   nfs_lookup(),
        nfs_inactive(),
        nfs_reclaim(),
        nfs_print(),
        nfs_inactive(),
        nfs_reclaim(),
        nfs_print(),
-       nfs_islocked();
+       nfs_islocked(),
+       nfs_advlock();
 
 struct vnodeops nfsv2_vnodeops = {
        nfs_lookup,             /* lookup */
 
 struct vnodeops nfsv2_vnodeops = {
        nfs_lookup,             /* lookup */
@@ -107,6 +108,7 @@ struct vnodeops nfsv2_vnodeops = {
        nfs_strategy,           /* strategy */
        nfs_print,              /* print */
        nfs_islocked,           /* islocked */
        nfs_strategy,           /* strategy */
        nfs_print,              /* print */
        nfs_islocked,           /* islocked */
+       nfs_advlock,            /* advlock */
 };
 
 /* Special device vnode ops */
 };
 
 /* Special device vnode ops */
@@ -120,7 +122,8 @@ int spec_lookup(),
        spec_select(),
        spec_close(),
        spec_badop(),
        spec_select(),
        spec_close(),
        spec_badop(),
-       spec_nullop();
+       spec_nullop(),
+       spec_advlock();
 
 struct vnodeops spec_nfsv2nodeops = {
        spec_lookup,            /* lookup */
 
 struct vnodeops spec_nfsv2nodeops = {
        spec_lookup,            /* lookup */
@@ -155,6 +158,7 @@ struct vnodeops spec_nfsv2nodeops = {
        spec_strategy,          /* strategy */
        nfs_print,              /* print */
        nfs_islocked,           /* islocked */
        spec_strategy,          /* strategy */
        nfs_print,              /* print */
        nfs_islocked,           /* islocked */
+       spec_advlock,           /* advlock */
 };
 
 #ifdef FIFO
 };
 
 #ifdef FIFO
@@ -168,7 +172,8 @@ int fifo_lookup(),
        fifo_close(),
        fifo_print(),
        fifo_badop(),
        fifo_close(),
        fifo_print(),
        fifo_badop(),
-       fifo_nullop();
+       fifo_nullop(),
+       fifo_advlock();
 
 struct vnodeops fifo_nfsv2nodeops = {
        fifo_lookup,            /* lookup */
 
 struct vnodeops fifo_nfsv2nodeops = {
        fifo_lookup,            /* lookup */
@@ -203,6 +208,7 @@ struct vnodeops fifo_nfsv2nodeops = {
        fifo_badop,             /* strategy */
        nfs_print,              /* print */
        nfs_islocked,           /* islocked */
        fifo_badop,             /* strategy */
        nfs_print,              /* print */
        nfs_islocked,           /* islocked */
+       fifo_advlock,           /* advlock */
 };
 #endif /* FIFO */
 
 };
 #endif /* FIFO */
 
@@ -1733,6 +1739,21 @@ nfs_fsync(vp, fflags, cred, waitfor)
        return (error);
 }
 
        return (error);
 }
 
+/*
+ * NFS advisory byte-level locks.
+ * Currently unsupported.
+ */
+nfs_advlock(vp, id, op, fl, flags)
+       struct vnode *vp;
+       caddr_t id;
+       int op;
+       struct flock *fl;
+       int flags;
+{
+
+       return (EOPNOTSUPP);
+}
+
 /*
  * Print out the contents of an nfsnode.
  */
 /*
  * Print out the contents of an nfsnode.
  */