summaryrefslogtreecommitdiffstats
path: root/sys/fs/nfs
diff options
context:
space:
mode:
Diffstat (limited to 'sys/fs/nfs')
-rw-r--r--sys/fs/nfs/nfs_commonacl.c64
-rw-r--r--sys/fs/nfs/nfs_var.h6
2 files changed, 2 insertions, 68 deletions
diff --git a/sys/fs/nfs/nfs_commonacl.c b/sys/fs/nfs/nfs_commonacl.c
index d639cfc..910a6a4 100644
--- a/sys/fs/nfs/nfs_commonacl.c
+++ b/sys/fs/nfs/nfs_commonacl.c
@@ -437,70 +437,6 @@ nfsrv_buildacl(struct nfsrv_descript *nd, NFSACL_T *aclp, enum vtype type,
}
/*
- * Check access for an NFSv4 acl.
- * The vflags are the basic VREAD, VWRITE, VEXEC. The mask is the NFSV4ACE
- * mask bits for the more detailed check.
- * If the more detailed check fails, due to no acl, do a basic one.
- */
-APPLESTATIC int
-nfsrv_aclaccess(vnode_t vp, accmode_t vflags, u_int32_t mask,
- struct ucred *cred, NFSPROC_T *p)
-{
- int error = 0;
- accmode_t access;
-
- if (nfsrv_useacl == 0) {
- error = VOP_ACCESS(vp, vflags, cred, p);
- return (error);
- }
-
- /* Convert NFSV4ACE mask to vaccess_t */
- access = 0;
- if (mask & NFSV4ACE_READDATA)
- access |= VREAD;
- if (mask & NFSV4ACE_LISTDIRECTORY)
- access |= VREAD;
- if (mask & NFSV4ACE_WRITEDATA)
- access |= VWRITE;
- if (mask & NFSV4ACE_ADDFILE)
- access |= VWRITE;
- if (mask & NFSV4ACE_APPENDDATA)
- access |= VAPPEND;
- if (mask & NFSV4ACE_ADDSUBDIRECTORY)
- access |= VAPPEND;
- if (mask & NFSV4ACE_READNAMEDATTR)
- access |= VREAD_NAMED_ATTRS;
- if (mask & NFSV4ACE_WRITENAMEDATTR)
- access |= VWRITE_NAMED_ATTRS;
- if (mask & NFSV4ACE_EXECUTE)
- access |= VEXEC;
- if (mask & NFSV4ACE_SEARCH)
- access |= VEXEC;
- if (mask & NFSV4ACE_DELETECHILD)
- access |= VDELETE_CHILD;
- if (mask & NFSV4ACE_READATTRIBUTES)
- access |= VREAD_ATTRIBUTES;
- if (mask & NFSV4ACE_WRITEATTRIBUTES)
- access |= VWRITE_ATTRIBUTES;
- if (mask & NFSV4ACE_DELETE)
- access |= VDELETE;
- if (mask & NFSV4ACE_READACL)
- access |= VREAD_ACL;
- if (mask & NFSV4ACE_WRITEACL)
- access |= VWRITE_ACL;
- if (mask & NFSV4ACE_WRITEOWNER)
- access |= VWRITE_OWNER;
- if (mask & NFSV4ACE_SYNCHRONIZE)
- access |= VSYNCHRONIZE;
-
- if (access != 0)
- error = VOP_ACCESS(vp, access, cred, p);
- else
- error = VOP_ACCESS(vp, vflags, cred, p);
- return (error);
-}
-
-/*
* Set an NFSv4 acl.
*/
APPLESTATIC int
diff --git a/sys/fs/nfs/nfs_var.h b/sys/fs/nfs/nfs_var.h
index 386fb04..17714d7 100644
--- a/sys/fs/nfs/nfs_var.h
+++ b/sys/fs/nfs/nfs_var.h
@@ -331,8 +331,6 @@ int nfsrv_dissectace(struct nfsrv_descript *, struct acl_entry *,
int *, int *, NFSPROC_T *);
int nfsrv_buildacl(struct nfsrv_descript *, NFSACL_T *, enum vtype,
NFSPROC_T *);
-int nfsrv_aclaccess(vnode_t, accmode_t, u_int32_t, struct ucred *,
- NFSPROC_T *);
int nfsrv_setacl(vnode_t, NFSACL_T *, struct ucred *,
NFSPROC_T *);
int nfsrv_compareacl(NFSACL_T *, NFSACL_T *);
@@ -514,8 +512,8 @@ int nfsvno_getattr(vnode_t, struct nfsvattr *, struct ucred *,
int nfsvno_setattr(vnode_t, struct nfsvattr *, struct ucred *,
NFSPROC_T *, struct nfsexstuff *);
int nfsvno_getfh(vnode_t, fhandle_t *, NFSPROC_T *);
-int nfsvno_accchk(vnode_t, u_int32_t, struct ucred *,
- struct nfsexstuff *, NFSPROC_T *, int, int);
+int nfsvno_accchk(vnode_t, accmode_t, struct ucred *,
+ struct nfsexstuff *, NFSPROC_T *, int, int, u_int32_t *);
int nfsvno_namei(struct nfsrv_descript *, struct nameidata *,
vnode_t, int, struct nfsexstuff *, NFSPROC_T *, vnode_t *);
void nfsvno_setpathbuf(struct nameidata *, char **, u_long **);
OpenPOWER on IntegriCloud