]> arthur.barton.de Git - netatalk.git/blobdiff - libatalk/vfs/unix.c
Add advanced option "chmod request" controlling ACLs
[netatalk.git] / libatalk / vfs / unix.c
index bc90c75ad539bcdaa7f8a00e14271adf37538092..846aa7206933defac01a2efff09db8831bed77d1 100644 (file)
@@ -46,7 +46,11 @@ int setfilmode(const struct vol *vol, const char *name, mode_t mode, struct stat
 
     mode |= st->st_mode & ~mask; /* keep other bits from previous mode */
 
-    if (ochmod((char *)name, mode & ~vol->v_umask, st, vol_syml_opt(vol) | O_NETATALK_ACL) < 0 && errno != EPERM ) {
+    if (ochmod((char *)name,
+               mode & ~vol->v_umask,
+               st,
+               vol_syml_opt(vol) | vol_chmod_opt(vol)
+            ) < 0 && errno != EPERM ) {
         return -1;
     }
     return 0;
@@ -74,6 +78,7 @@ int netatalk_rmdir_all_errors(int dirfd, const char *name)
         case ENOENT :
             return AFPERR_NOOBJ;
         case ENOTEMPTY :
+        case EEXIST:
             return AFPERR_DIRNEMPT;
         case EPERM:
         case EACCES :