diff options
author | ahrens <none@none> | 2005-10-31 11:33:35 -0800 |
---|---|---|
committer | ahrens <none@none> | 2005-10-31 11:33:35 -0800 |
commit | fa9e4066f08beec538e775443c5be79dd423fcab (patch) | |
tree | 576d99665e57bb7cb70584431adb08c14d47e3ce /usr/src/lib/libdevinfo/devinfo_devperm.c | |
parent | f1b64740276f67fc6914c1d855f2af601efe99ac (diff) | |
download | illumos-gate-fa9e4066f08beec538e775443c5be79dd423fcab.tar.gz |
PSARC 2002/240 ZFS
6338653 Integrate ZFS
PSARC 2004/652 - DKIOCFLUSH
5096886 Write caching disks need mechanism to flush cache to physical media
Diffstat (limited to 'usr/src/lib/libdevinfo/devinfo_devperm.c')
-rw-r--r-- | usr/src/lib/libdevinfo/devinfo_devperm.c | 40 |
1 files changed, 13 insertions, 27 deletions
diff --git a/usr/src/lib/libdevinfo/devinfo_devperm.c b/usr/src/lib/libdevinfo/devinfo_devperm.c index df1f5dff3c..ef5ca55c48 100644 --- a/usr/src/lib/libdevinfo/devinfo_devperm.c +++ b/usr/src/lib/libdevinfo/devinfo_devperm.c @@ -84,7 +84,6 @@ setdevaccess(char *dev, uid_t uid, gid_t gid, mode_t mode, void (*errmsg)(char *)) { int err = 0, local_errno; - aclent_t acls[4]; char errstring[MAX_LINELEN]; if (chown(dev, uid, gid) == -1) { @@ -106,24 +105,12 @@ setdevaccess(char *dev, uid_t uid, gid_t gid, mode_t mode, (*errmsg)(errstring); } - acls[0].a_type = USER_OBJ; - acls[0].a_id = uid; - acls[0].a_perm = ((mode & 0700) >> 6); - - acls[1].a_type = GROUP_OBJ; - acls[1].a_id = gid; - acls[1].a_perm = ((mode & 0070) >> 3); - - acls[2].a_type = CLASS_OBJ; - acls[2].a_id = (uid_t)-1; - acls[2].a_perm = ((mode & 0070) >> 3); - - acls[3].a_type = OTHER_OBJ; - acls[3].a_id = (uid_t)-1; - acls[3].a_perm = (mode & 0007); + /* + * strip_acl sets an acl and changes the files owner/group + */ + err = acl_strip(dev, uid, gid, mode); - /* Remove ACLs */ - if (acl(dev, SETACL, 4, acls) < 0) { + if (err != 0) { /* * If the file system returned ENOSYS, we know that it * doesn't support ACLs, therefore, we must assume that @@ -139,15 +126,14 @@ setdevaccess(char *dev, uid_t uid, gid_t gid, mode_t mode, (*errmsg)(errstring); } } - } - - if (chmod(dev, mode) == -1) { - err = -1; - if (errmsg) { - (void) snprintf(errstring, MAX_LINELEN, - "failed to chmod device %s: %s\n", - dev, strerror(errno)); - (*errmsg)(errstring); + if (chmod(dev, mode) == -1) { + err = -1; + if (errmsg) { + (void) snprintf(errstring, MAX_LINELEN, + "failed to chmod device %s: %s\n", + dev, strerror(errno)); + (*errmsg)(errstring); + } } } |