]> git.saurik.com Git - apple/xnu.git/blobdiff - bsd/nfs/nfsnode.h
xnu-201.19.tar.gz
[apple/xnu.git] / bsd / nfs / nfsnode.h
index 829508a1430d5cd3bc1cd9b6163421c6f2a4e701..cf37ec7959d85626e8529fcbd8b7a80ef3504ceb 100644 (file)
@@ -66,6 +66,8 @@
 #ifndef _NFS_NFS_H_
 #include <nfs/nfs.h>
 #endif
+#include <sys/lock.h>
+
 
 /*
  * Silly rename structure that hangs off the nfsnode until the name
@@ -108,6 +110,7 @@ struct nfsdmap {
  *     be well aligned and, therefore, tightly packed.
  */
 struct nfsnode {
+       struct lock__bsd__      n_lock; /* the vnode lock */
        LIST_ENTRY(nfsnode)     n_hash;         /* Hash chain */
        CIRCLEQ_ENTRY(nfsnode)  n_timer;        /* Nqnfs timer chain */
        u_quad_t                n_size;         /* Current size of file */
@@ -140,6 +143,7 @@ struct nfsnode {
        short                   n_fhsize;       /* size in bytes, of fh */
        short                   n_flag;         /* Flag for locking.. */
        nfsfh_t                 n_fh;           /* Small File Handle */
+       u_int64_t               n_xid;          /* last xid to loadattr */
 };
 
 #define n_atim         n_un1.nf_atim
@@ -179,6 +183,7 @@ extern struct proc *nfs_iodwant[NFS_MAXASYNCDAEMON];
 extern struct nfsmount *nfs_iodmount[NFS_MAXASYNCDAEMON];
 
 #if defined(KERNEL)
+
 typedef int     vop_t __P((void *));
 extern vop_t   **fifo_nfsv2nodeop_p;
 extern vop_t   **nfsv2_vnodeop_p;
@@ -196,9 +201,10 @@ int        nqnfs_vop_lease_check __P((struct vop_lease_args *));
 int    nfs_abortop __P((struct vop_abortop_args *));
 int    nfs_inactive __P((struct vop_inactive_args *));
 int    nfs_reclaim __P((struct vop_reclaim_args *));
-#define nfs_lock ((int (*) __P((struct vop_lock_args *)))vop_nolock)
-#define nfs_unlock ((int (*) __P((struct vop_unlock_args *)))vop_nounlock)
-#define nfs_islocked ((int (*) __P((struct vop_islocked_args *)))vop_noislocked)
+int nfs_lock __P((struct vop_lock_args *));
+int nfs_unlock __P((struct vop_unlock_args *));
+int nfs_islocked __P((struct vop_islocked_args *));
+
 #define nfs_reallocblks \
        ((int (*) __P((struct  vop_reallocblks_args *)))eopnotsupp)