All of lore.kernel.org
 help / color / mirror / Atom feed
From: Greg KH <greg-U8xfFu+wG4EAvxtiuMwx3w@public.gmane.org>
To: "Richard W.M. Jones" <rjones-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
Cc: linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	tglx-hfZtesqFncYOwBW4kG4KsQ@public.gmane.org,
	mingo-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org,
	hpa-YMNOUZJC4hwAvxtiuMwx3w@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: Wed, 13 Apr 2016 06:59:50 -0700	[thread overview]
Message-ID: <20160413135950.GA12128@kroah.com> (raw)
In-Reply-To: <1460552272-15985-1-git-send-email-rjones-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>

On Wed, Apr 13, 2016 at 01:57:50PM +0100, Richard W.M. Jones wrote:
> v1 -> v2:
> 
>  - Use current_umask() instead of current->fs->umask.
> 
>  - Retested it.
> 
> ----------------------------------------------------------------------
> 
> 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.
> 
> This patch series adds a trivial system call "getumask" which returns
> the umask of the current process.
> 
> Another approach to this has been attempted before, adding something
> to /proc, although it didn't go anywhere.  See:
> 
>   http://comments.gmane.org/gmane.linux.kernel/1292109
> 
> Another way to solve this would be to add a thread-safe getumask to
> glibc.  Since glibc could own the mutex, this would permit libraries
> linked to this glibc to read umask safely.
> 
> I should also note that man-pages documents getumask(3), but no
> version of glibc has ever implemented it.
> 
> Typical test script:
> 
> #include <stdio.h>
> #include <stdlib.h>
> #include <linux/unistd.h>
> #include <sys/syscall.h>
> 
> int main(int argc, char *argv[])
> {
>   int r = syscall(329);
>   if (r == -1) {
>     perror("getumask");
>     exit(1);
>   }
>   printf("umask = %o\n", r);
>   exit(0);
> }

Why not add this to the ktest infrastructure, we strongly encourage that
for new syscalls, along with a man page patch.

thanks,

greg k-h

WARNING: multiple messages have this Message-ID (diff)
From: Greg KH <greg@kroah.com>
To: "Richard W.M. Jones" <rjones@redhat.com>
Cc: linux-kernel@vger.kernel.org, tglx@linutronix.de,
	mingo@redhat.com, hpa@zytor.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: Wed, 13 Apr 2016 06:59:50 -0700	[thread overview]
Message-ID: <20160413135950.GA12128@kroah.com> (raw)
In-Reply-To: <1460552272-15985-1-git-send-email-rjones@redhat.com>

On Wed, Apr 13, 2016 at 01:57:50PM +0100, Richard W.M. Jones wrote:
> v1 -> v2:
> 
>  - Use current_umask() instead of current->fs->umask.
> 
>  - Retested it.
> 
> ----------------------------------------------------------------------
> 
> 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.
> 
> This patch series adds a trivial system call "getumask" which returns
> the umask of the current process.
> 
> Another approach to this has been attempted before, adding something
> to /proc, although it didn't go anywhere.  See:
> 
>   http://comments.gmane.org/gmane.linux.kernel/1292109
> 
> Another way to solve this would be to add a thread-safe getumask to
> glibc.  Since glibc could own the mutex, this would permit libraries
> linked to this glibc to read umask safely.
> 
> I should also note that man-pages documents getumask(3), but no
> version of glibc has ever implemented it.
> 
> Typical test script:
> 
> #include <stdio.h>
> #include <stdlib.h>
> #include <linux/unistd.h>
> #include <sys/syscall.h>
> 
> int main(int argc, char *argv[])
> {
>   int r = syscall(329);
>   if (r == -1) {
>     perror("getumask");
>     exit(1);
>   }
>   printf("umask = %o\n", r);
>   exit(0);
> }

Why not add this to the ktest infrastructure, we strongly encourage that
for new syscalls, along with a man page patch.

thanks,

greg k-h

  parent reply	other threads:[~2016-04-13 13:59 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   ` Greg KH [this message]
2016-04-13 13:59     ` [PATCH v2 0/2] vfs: Define new syscall getumask 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
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=20160413135950.GA12128@kroah.com \
    --to=greg-u8xffu+wg4eavxtiumwx3w@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=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=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.