From: "H. Peter Anvin" <hpa-YMNOUZJC4hwAvxtiuMwx3w@public.gmane.org>
To: Colin Walters <walters-gPq2gbYjIk8dnm+yROfE0A@public.gmane.org>,
"Richard W.M. Jones"
<rjones-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>,
linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
Cc: tglx-hfZtesqFncYOwBW4kG4KsQ@public.gmane.org,
mingo-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org,
akpm-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b@public.gmane.org,
luto-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org,
viro-RmSDqhL/yNMiFSDQTTA3OLVCufUGDwFn@public.gmane.org,
mathieu.desnoyers-vg+e7yoeK/dWk0Htik3J/w@public.gmane.org,
zab-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org,
emunson-JqFfY2XvxFXQT0dZR+AlfA@public.gmane.org,
paulmck-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8@public.gmane.org,
aarcange-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org,
josh-iaAMLnmF4UmaiuxdJuQwMA@public.gmane.org,
xemul-bzQdu9zFT3WakBO8gow8eQ@public.gmane.org,
sfr-3FnU+UHB4dNDw9hX6IcOSA@public.gmane.org,
milosz-B5zB6C1i6pkAvxtiuMwx3w@public.gmane.org,
rostedt-nx8X9YLhiw1AfugRpC6u6w@public.gmane.org,
arnd-r2nGTMty4D4@public.gmane.org,
ebiederm-aS9lmoZGLiVWk0Htik3J/w@public.gmane.org,
gorcunov-GEFAQzZX7r8dnm+yROfE0A@public.gmane.org,
iulia.manda21-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org,
dave.hansen-VuQAYsv1563Yd54FQh9/CA@public.gmane.org,
mguzik-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org,
adobriyan-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org,
dave-h16yJtLeMjHk1uMJSBkQmQ@public.gmane.org,
linux-api-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
gorcunov-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org,
fw-d32yF4oPJVt0XxTmqZlbVQ@public.gmane.org
Subject: Re: [PATCH v2 0/2] vfs: Define new syscall getumask.
Date: Sun, 17 Apr 2016 18:42:12 -0700 [thread overview]
Message-ID: <57143B74.3070302@zytor.com> (raw)
In-Reply-To: <1460562105.353100.577697153.013DF466-2RFepEojUI2N1INw9kWLP6GC3tUn3ZHUQQ4Iyu8u01E@public.gmane.org>
On 04/13/16 08:41, Colin Walters wrote:
> On Wed, Apr 13, 2016, at 08:57 AM, Richard W.M. Jones wrote:
>
>> It's not possible to read the process umask without also modifying it,
>> which is what umask(2) does. A library cannot read umask safely,
>> especially if the main program might be multithreaded.
>
> I assume you just want to do this from a shared library so you can
> determine whether or not you need to call fchown() after making files
> and the like? If that's the case it'd be good to note it in the commit
> message.
>
> BTW...it might be a good idea to add a flags argument:
> https://lwn.net/Articles/585415/
>
> Did you consider calling this `umask2`, having the initial version only support
> retrieving it via a UMASK_GET flag, and lay the groundwork to support
> setting a threadsafe umask with a UMASK_SET_THREAD flag?
>
The comments on that article also list a number of problems with this
approach, related to how undefined flags are handled.
In fact, if it wasn't for this exact problem then umask(-1) would have
been the logical way to deal with this, but because umask(2) is defined
to have an internal & 07777 it becomes infeasible at least in theory.
In practice it might work...
However, see previous discussions about making this available in /proc.
Also, I really think there is something to be said for a O_NOUMASK
option...
-hpa
WARNING: multiple messages have this Message-ID (diff)
From: "H. Peter Anvin" <hpa@zytor.com>
To: Colin Walters <walters@verbum.org>,
"Richard W.M. Jones" <rjones@redhat.com>,
linux-kernel@vger.kernel.org
Cc: tglx@linutronix.de, mingo@redhat.com, akpm@linux-foundation.org,
luto@kernel.org, viro@zeniv.linux.org.uk,
mathieu.desnoyers@efficios.com, zab@redhat.com,
emunson@akamai.com, paulmck@linux.vnet.ibm.com,
aarcange@redhat.com, josh@joshtriplett.org, xemul@parallels.com,
sfr@canb.auug.org.au, milosz@adfin.com, rostedt@goodmis.org,
arnd@arndb.de, ebiederm@xmission.com, gorcunov@openvz.org,
iulia.manda21@gmail.com, dave.hansen@linux.intel.com,
mguzik@redhat.com, adobriyan@gmail.com, dave@stgolabs.net,
linux-api@vger.kernel.org, gorcunov@gmail.com, fw@deneb.enyo.de
Subject: Re: [PATCH v2 0/2] vfs: Define new syscall getumask.
Date: Sun, 17 Apr 2016 18:42:12 -0700 [thread overview]
Message-ID: <57143B74.3070302@zytor.com> (raw)
In-Reply-To: <1460562105.353100.577697153.013DF466@webmail.messagingengine.com>
On 04/13/16 08:41, Colin Walters wrote:
> On Wed, Apr 13, 2016, at 08:57 AM, Richard W.M. Jones wrote:
>
>> It's not possible to read the process umask without also modifying it,
>> which is what umask(2) does. A library cannot read umask safely,
>> especially if the main program might be multithreaded.
>
> I assume you just want to do this from a shared library so you can
> determine whether or not you need to call fchown() after making files
> and the like? If that's the case it'd be good to note it in the commit
> message.
>
> BTW...it might be a good idea to add a flags argument:
> https://lwn.net/Articles/585415/
>
> Did you consider calling this `umask2`, having the initial version only support
> retrieving it via a UMASK_GET flag, and lay the groundwork to support
> setting a threadsafe umask with a UMASK_SET_THREAD flag?
>
The comments on that article also list a number of problems with this
approach, related to how undefined flags are handled.
In fact, if it wasn't for this exact problem then umask(-1) would have
been the logical way to deal with this, but because umask(2) is defined
to have an internal & 07777 it becomes infeasible at least in theory.
In practice it might work...
However, see previous discussions about making this available in /proc.
Also, I really think there is something to be said for a O_NOUMASK
option...
-hpa
next prev parent reply other threads:[~2016-04-18 1:42 UTC|newest]
Thread overview: 51+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-04-13 12:57 [PATCH v2 0/2] vfs: Define new syscall getumask Richard W.M. Jones
2016-04-13 12:57 ` Richard W.M. Jones
2016-04-13 12:57 ` [PATCH v2 1/2] " Richard W.M. Jones
[not found] ` <1460552272-15985-2-git-send-email-rjones-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2016-04-13 13:20 ` Cyrill Gorcunov
2016-04-13 13:20 ` Cyrill Gorcunov
2016-04-13 13:57 ` Richard W.M. Jones
[not found] ` <20160413135708.GG11600-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2016-04-13 14:02 ` Christoph Hellwig
2016-04-13 14:02 ` Christoph Hellwig
2016-04-13 15:27 ` Mathieu Desnoyers
2016-04-13 15:27 ` Mathieu Desnoyers
[not found] ` <1460552272-15985-1-git-send-email-rjones-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2016-04-13 12:57 ` [PATCH v2 2/2] x86: Wire up new getumask system call on x86 Richard W.M. Jones
2016-04-13 12:57 ` Richard W.M. Jones
2016-04-13 13:59 ` [PATCH v2 0/2] vfs: Define new syscall getumask Greg KH
2016-04-13 13:59 ` Greg KH
2016-04-14 3:47 ` Steven Rostedt
2016-04-14 19:26 ` Greg KH
2016-04-13 15:39 ` Mathieu Desnoyers
2016-04-13 15:39 ` Mathieu Desnoyers
[not found] ` <2143735451.55767.1460561962122.JavaMail.zimbra-vg+e7yoeK/dWk0Htik3J/w@public.gmane.org>
2016-04-13 21:01 ` Mathieu Desnoyers
2016-04-13 21:01 ` Mathieu Desnoyers
[not found] ` <1736004700.56566.1460581285951.JavaMail.zimbra-vg+e7yoeK/dWk0Htik3J/w@public.gmane.org>
2016-04-14 2:13 ` Theodore Ts'o
2016-04-14 2:13 ` Theodore Ts'o
[not found] ` <20160414021348.GB16656-AKGzg7BKzIDYtjvyW6yDsg@public.gmane.org>
2016-04-18 0:38 ` H. Peter Anvin
2016-04-18 0:38 ` H. Peter Anvin
[not found] ` <57142C80.6070005-YMNOUZJC4hwAvxtiuMwx3w@public.gmane.org>
2016-04-18 1:09 ` Greg KH
2016-04-18 1:09 ` Greg KH
[not found] ` <20160418010925.GA7800-U8xfFu+wG4EAvxtiuMwx3w@public.gmane.org>
2016-04-18 2:02 ` H. Peter Anvin
2016-04-18 2:02 ` H. Peter Anvin
2016-04-18 2:12 ` Josh Triplett
2016-04-18 2:12 ` Josh Triplett
2016-04-18 2:15 ` H. Peter Anvin
2016-04-18 2:15 ` H. Peter Anvin
2016-04-18 2:37 ` Josh Triplett
2016-04-18 2:37 ` Josh Triplett
2016-04-18 3:00 ` H. Peter Anvin
2016-04-18 3:00 ` H. Peter Anvin
[not found] ` <57144DE6.9050409-YMNOUZJC4hwAvxtiuMwx3w@public.gmane.org>
2016-04-18 11:39 ` Theodore Ts'o
2016-04-18 11:39 ` Theodore Ts'o
2016-04-14 17:56 ` Andy Lutomirski
2016-04-14 17:56 ` Andy Lutomirski
2016-04-13 15:41 ` Colin Walters
2016-04-13 15:41 ` Colin Walters
[not found] ` <1460562105.353100.577697153.013DF466-2RFepEojUI2N1INw9kWLP6GC3tUn3ZHUQQ4Iyu8u01E@public.gmane.org>
2016-04-13 16:03 ` Richard W.M. Jones
2016-04-13 16:03 ` Richard W.M. Jones
2016-04-18 1:42 ` H. Peter Anvin [this message]
2016-04-18 1:42 ` H. Peter Anvin
[not found] ` <57143B74.3070302-YMNOUZJC4hwAvxtiuMwx3w@public.gmane.org>
2016-04-18 1:57 ` Josh Triplett
2016-04-18 1:57 ` Josh Triplett
2016-04-18 9:14 ` Richard W.M. Jones
2016-04-18 9:14 ` Richard W.M. Jones
2016-04-18 10:04 ` H. Peter Anvin
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=57143B74.3070302@zytor.com \
--to=hpa-ymnouzjc4hwavxtiumwx3w@public.gmane.org \
--cc=aarcange-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org \
--cc=adobriyan-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org \
--cc=akpm-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b@public.gmane.org \
--cc=arnd-r2nGTMty4D4@public.gmane.org \
--cc=dave-h16yJtLeMjHk1uMJSBkQmQ@public.gmane.org \
--cc=dave.hansen-VuQAYsv1563Yd54FQh9/CA@public.gmane.org \
--cc=ebiederm-aS9lmoZGLiVWk0Htik3J/w@public.gmane.org \
--cc=emunson-JqFfY2XvxFXQT0dZR+AlfA@public.gmane.org \
--cc=fw-d32yF4oPJVt0XxTmqZlbVQ@public.gmane.org \
--cc=gorcunov-GEFAQzZX7r8dnm+yROfE0A@public.gmane.org \
--cc=gorcunov-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org \
--cc=iulia.manda21-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org \
--cc=josh-iaAMLnmF4UmaiuxdJuQwMA@public.gmane.org \
--cc=linux-api-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=luto-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org \
--cc=mathieu.desnoyers-vg+e7yoeK/dWk0Htik3J/w@public.gmane.org \
--cc=mguzik-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org \
--cc=milosz-B5zB6C1i6pkAvxtiuMwx3w@public.gmane.org \
--cc=mingo-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org \
--cc=paulmck-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8@public.gmane.org \
--cc=rjones-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org \
--cc=rostedt-nx8X9YLhiw1AfugRpC6u6w@public.gmane.org \
--cc=sfr-3FnU+UHB4dNDw9hX6IcOSA@public.gmane.org \
--cc=tglx-hfZtesqFncYOwBW4kG4KsQ@public.gmane.org \
--cc=viro-RmSDqhL/yNMiFSDQTTA3OLVCufUGDwFn@public.gmane.org \
--cc=walters-gPq2gbYjIk8dnm+yROfE0A@public.gmane.org \
--cc=xemul-bzQdu9zFT3WakBO8gow8eQ@public.gmane.org \
--cc=zab-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.