LOG(log_debug, logtype_afpd, "setdirunixmode('%s', mode:%04o) {v_dperm:%04o}",
fullpathname(name), mode, vol->v_dperm);
- mode |= vol->v_dperm;
+ mode |= (vol->v_dperm | DIRBITS) & ~vol->v_umask;
if (dir_rx_set(mode)) {
/* extending right? dir first then .AppleDouble in rf_setdirmode */
- if (chmod_acl(name, (DIRBITS | mode) & ~vol->v_umask) < 0 )
+ if (ochmod(name, mode, NULL,
+ vol_syml_opt(vol) | vol_chmod_opt(vol)
+ ) < 0)
return -1;
}
if (vol->vfs->vfs_setdirunixmode(vol, name, mode, NULL) < 0) {
return -1 ;
}
if (!dir_rx_set(mode)) {
- if (chmod_acl(name, (DIRBITS | mode) & ~vol->v_umask) < 0 )
+ if (ochmod(name, mode, NULL,
+ vol_syml_opt(vol) | vol_chmod_opt(vol)
+ ) < 0)
return -1;
}
return 0;