X-Git-Url: https://arthur.barton.de/cgi-bin/gitweb.cgi?p=netatalk.git;a=blobdiff_plain;f=libatalk%2Fvfs%2Funix.c;h=846aa7206933defac01a2efff09db8831bed77d1;hp=bc90c75ad539bcdaa7f8a00e14271adf37538092;hb=c72d10d6f92fe81d040ab983768d7fdccea7fb2e;hpb=30963c2b3ee34139e0c3307677d181178a15f37f diff --git a/libatalk/vfs/unix.c b/libatalk/vfs/unix.c index bc90c75a..846aa720 100644 --- a/libatalk/vfs/unix.c +++ b/libatalk/vfs/unix.c @@ -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 :