diff --git a/libfuse/lib/fuse.cpp b/libfuse/lib/fuse.cpp index 522eac3b..9fb00970 100644 --- a/libfuse/lib/fuse.cpp +++ b/libfuse/lib/fuse.cpp @@ -1259,12 +1259,12 @@ void set_stat(uint64_t nodeid, struct stat *stbuf) { - if(f.conf.set_mode) - stbuf->st_mode = (stbuf->st_mode & S_IFMT) | (0777 & ~f.conf.umask); if(fuse_cfg.valid_uid()) stbuf->st_uid = fuse_cfg.uid; if(fuse_cfg.valid_gid()) stbuf->st_gid = fuse_cfg.gid; + if(fuse_cfg.valid_umask()) + stbuf->st_mode = (stbuf->st_mode & S_IFMT) | (0777 & ~f.conf.umask); } static