diff --git a/fs/vfs/main.cc b/fs/vfs/main.cc index 7ade70ddb8ed0b4b4fa22842cedcd82441867d99..a1abda65a4afeb765d9647c0d2e4890d9b2f4162 100755 --- a/fs/vfs/main.cc +++ b/fs/vfs/main.cc @@ -60,6 +60,8 @@ int vfs_debug = VFSDB_FLAGS; #endif +std::atomic<mode_t> global_umask{S_IWGRP | S_IWOTH}; + TRACEPOINT(trace_vfs_open, "\"%s\" 0x%x 0%0o", const char*, int, mode_t); TRACEPOINT(trace_vfs_open_ret, "%d", int); TRACEPOINT(trace_vfs_open_err, "%d", int); @@ -1307,6 +1309,11 @@ int chmod(const char *pathname, mode_t mode) return 0; } +mode_t umask(mode_t newmask) +{ + return global_umask.exchange(newmask, std::memory_order_relaxed); +} + int fs_noop(void) {