PERFORCE change 40479 for review
Robert Watson
rwatson at FreeBSD.org
Sat Oct 25 14:52:43 GMT 2003
http://perforce.freebsd.org/chv.cgi?CH=40479
Change 40479 by rwatson at rwatson_paprika on 2003/10/25 07:52:06
Submit some WIP pieces related to pushing cmask processing into
per-filesystem code. This is required to implement Solaris/
Linux semantics for default ACL masks.
Affected files ...
.. //depot/projects/trustedbsd/acl/sys/kern/kern_acl.c#7 edit
.. //depot/projects/trustedbsd/acl/sys/sys/acl.h#5 edit
.. //depot/projects/trustedbsd/acl/sys/ufs/ufs/ufs_vnops.c#5 edit
Differences ...
==== //depot/projects/trustedbsd/acl/sys/kern/kern_acl.c#7 (text+ko) ====
@@ -620,12 +620,10 @@
/*
* Given a requested mode for a new object, and a default ACL, combine
* the two to produce a new mode. Be careful not to clear any bits that
- * aren't intended to be affected by the POSIX.1e ACL. Eventually,
- * this might also take the cmask as an argument, if we push that down
- * into per-filesystem-code.
+ * aren't intended to be affected by the POSIX.1e ACL.
*/
mode_t
-acl_posix1e_newfilemode(mode_t cmode, struct acl *dacl)
+acl_posix1e_newfilemode(mode_t cmode, int cmask, struct acl *dacl)
{
mode_t mode;
==== //depot/projects/trustedbsd/acl/sys/sys/acl.h#5 (text+ko) ====
@@ -144,7 +144,7 @@
struct acl_entry *acl_group_obj_entry,
struct acl_entry *acl_other_entry);
mode_t acl_posix1e_acl_to_mode(struct acl *acl);
-mode_t acl_posix1e_newfilemode(mode_t cmode,
+mode_t acl_posix1e_newfilemode(mode_t cmode, int cmask,
struct acl *dacl);
/*
==== //depot/projects/trustedbsd/acl/sys/ufs/ufs/ufs_vnops.c#5 (text+ko) ====
@@ -1356,6 +1356,7 @@
struct vnode **a_vpp;
struct componentname *a_cnp;
struct vattr *a_vap;
+ int a_cmask;
} */ *ap;
{
struct vnode *dvp = ap->a_dvp;
@@ -1474,7 +1475,8 @@
* the "not defined or available" case.
*/
if (acl->acl_cnt != 0) {
- dmode = acl_posix1e_newfilemode(dmode, acl);
+ dmode = acl_posix1e_newfilemode(dmode,
+ ap->a_cmask, acl);
ip->i_mode = dmode;
DIP(ip, i_mode) = dmode;
*dacl = *acl;
@@ -1772,6 +1774,7 @@
struct componentname *a_cnp;
struct vattr *a_vap;
char *a_target;
+ int a_cmask;
} */ *ap;
{
struct vnode *vp, **vpp = ap->a_vpp;
To Unsubscribe: send mail to majordomo at trustedbsd.org
with "unsubscribe trustedbsd-cvs" in the body of the message
More information about the trustedbsd-cvs
mailing list