All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Richard W.M. Jones" <rjones-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
To: Josh Triplett <josh-iaAMLnmF4UmaiuxdJuQwMA@public.gmane.org>
Cc: "H. Peter Anvin" <hpa-YMNOUZJC4hwAvxtiuMwx3w@public.gmane.org>,
	Colin Walters <walters-gPq2gbYjIk8dnm+yROfE0A@public.gmane.org>,
	linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	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,
	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: Mon, 18 Apr 2016 10:14:12 +0100	[thread overview]
Message-ID: <20160418091412.GD11600@redhat.com> (raw)
In-Reply-To: <20160418015736.GA16600@x>

On Sun, Apr 17, 2016 at 06:57:36PM -0700, Josh Triplett wrote:
> O_NOUMASK seems potentially useful to support implementation of umask
> entirely in userspace, which also addresses thread-safety.  A program
> could read its process umask out at startup, handle umask entirely in
> userspace (including for threads), and only interact with the system
> umask after fork and before exec.

I had a look at O_NOUMASK and there are a few problems:

It's relatively easy to implement for open(2).  A few filesystems
implement their own open so I had to go into those filesystems and
modify how they handle current_umask too.  And FUSE support is tricky
so I passed on that.

The real problem is that mkdir/mkdirat/mknod/mknodat are affected by
umask, but there is no convenient flags parameter to pass the
O_NOUMASK flag.  So I think the patch only half-solves the problem.

I have a patch which needs a bit more testing, which I can post if you
think that's helpful, but I don't think it would be acceptable in its
current state.

Rich.

-- 
Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones
Read my programming and virtualization blog: http://rwmj.wordpress.com
libguestfs lets you edit virtual machines.  Supports shell scripting,
bindings from many languages.  http://libguestfs.org

WARNING: multiple messages have this Message-ID (diff)
From: "Richard W.M. Jones" <rjones@redhat.com>
To: Josh Triplett <josh@joshtriplett.org>
Cc: "H. Peter Anvin" <hpa@zytor.com>,
	Colin Walters <walters@verbum.org>,
	linux-kernel@vger.kernel.org, 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, 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: Mon, 18 Apr 2016 10:14:12 +0100	[thread overview]
Message-ID: <20160418091412.GD11600@redhat.com> (raw)
In-Reply-To: <20160418015736.GA16600@x>

On Sun, Apr 17, 2016 at 06:57:36PM -0700, Josh Triplett wrote:
> O_NOUMASK seems potentially useful to support implementation of umask
> entirely in userspace, which also addresses thread-safety.  A program
> could read its process umask out at startup, handle umask entirely in
> userspace (including for threads), and only interact with the system
> umask after fork and before exec.

I had a look at O_NOUMASK and there are a few problems:

It's relatively easy to implement for open(2).  A few filesystems
implement their own open so I had to go into those filesystems and
modify how they handle current_umask too.  And FUSE support is tricky
so I passed on that.

The real problem is that mkdir/mkdirat/mknod/mknodat are affected by
umask, but there is no convenient flags parameter to pass the
O_NOUMASK flag.  So I think the patch only half-solves the problem.

I have a patch which needs a bit more testing, which I can post if you
think that's helpful, but I don't think it would be acceptable in its
current state.

Rich.

-- 
Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones
Read my programming and virtualization blog: http://rwmj.wordpress.com
libguestfs lets you edit virtual machines.  Supports shell scripting,
bindings from many languages.  http://libguestfs.org

  reply	other threads:[~2016-04-18  9:14 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
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 [this message]
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=20160418091412.GD11600@redhat.com \
    --to=rjones-h+wxahxf7alqt0dzr+alfa@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=hpa-YMNOUZJC4hwAvxtiuMwx3w@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=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.