From e93b0a257cb9c8fd76ae9e8470484852ff88908e Mon Sep 17 00:00:00 2001 From: Avi Kivity <avi@cloudius-systems.com> Date: Tue, 20 Aug 2013 16:21:21 +0300 Subject: [PATCH] vfs: implement umask() Currently the umask is ignore (it's pointless since we have no users). Needed by JRuby. --- fs/vfs/main.cc | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/fs/vfs/main.cc b/fs/vfs/main.cc index 7ade70ddb..a1abda65a 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) { -- GitLab