linux-fsdevel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Nick Piggin <npiggin@suse.de>
To: "Aneesh Kumar K.V" <aneesh.kumar@linux.vnet.ibm.com>
Cc: hch@infradead.org, viro@zeniv.linux.org.uk, adilger@sun.com,
	corbet@lwn.net, serue@us.ibm.com, neilb@suse.de,
	hooanon05@yahoo.co.jp, bfields@fieldses.org,
	linux-fsdevel@vger.kernel.org, sfrench@us.ibm.com,
	philippe.deniel@CEA.FR, linux-kernel@vger.kernel.org
Subject: Re: [PATCH -V14 05/11] vfs: Support null pathname in readlink
Date: Thu, 8 Jul 2010 01:27:06 +1000	[thread overview]
Message-ID: <20100707152706.GT11732@laptop> (raw)
In-Reply-To: <1276621981-2774-6-git-send-email-aneesh.kumar@linux.vnet.ibm.com>

On Tue, Jun 15, 2010 at 10:42:55PM +0530, Aneesh Kumar K.V wrote:
> From: NeilBrown <neilb@suse.de>
> 
> This enables to use readlink to get the link target name
> from a file descriptor point to the link. This can be used
> with open_by_handle syscall that returns a file descriptor for a link.
> We can then use this file descriptor to get the target name.
> 
> Signed-off-by: NeilBrown <neilb@suse.de>
> Signed-off-by: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
> ---
>  fs/stat.c |   30 ++++++++++++++++++++++--------
>  1 files changed, 22 insertions(+), 8 deletions(-)
> 
> diff --git a/fs/stat.c b/fs/stat.c
> index c4ecd52..49b95a7 100644
> --- a/fs/stat.c
> +++ b/fs/stat.c
> @@ -284,26 +284,40 @@ SYSCALL_DEFINE2(newfstat, unsigned int, fd, struct stat __user *, statbuf)
>  SYSCALL_DEFINE4(readlinkat, int, dfd, const char __user *, pathname,
>  		char __user *, buf, int, bufsiz)
>  {
> -	struct path path;
> -	int error;
> +	int error = 0;
> +	struct path path, *pp;
> +	struct file *file = NULL;
>  
>  	if (bufsiz <= 0)
>  		return -EINVAL;
>  
> -	error = user_path_at(dfd, pathname, 0, &path);
> +	if (pathname == NULL && dfd != AT_FDCWD) {
> +		file = fget(dfd);
> +
> +		if (file)
> +			pp = &file->f_path;
> +		else
> +			error = -EBADF;
> +	} else {
> +		error = user_path_at(dfd, pathname, 0, &path);
> +		pp = &path;
> +	}

This (and all the others) is really ugly overloading of syscall
arguments IMO, and the changelog is seriously lacking for such changes.

This also changes the the syscall API of existing calls; from reading
the path at NULL, to switching to a completely different syscall.
Perhaps you're assuming nobody relies on SIGSEGV / mmapped NULL address
there, but even then you surely need to document the changed semantics
somewhere (and document the new syscall semantics properly).

  reply	other threads:[~2010-07-07 15:27 UTC|newest]

Thread overview: 65+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-06-15 17:12 [PATCH -V14 0/11] Generic name to handle and open by handle syscalls Aneesh Kumar K.V
2010-06-15 17:12 ` [PATCH -V14 01/11] exportfs: Return the minimum required handle size Aneesh Kumar K.V
2010-06-15 17:12 ` [PATCH -V14 02/11] vfs: Add name to file handle conversion support Aneesh Kumar K.V
2010-06-15 17:12 ` [PATCH -V14 03/11] vfs: Add open by file handle support Aneesh Kumar K.V
2010-07-07 15:17   ` Nick Piggin
2010-07-07 16:16     ` Aneesh Kumar K. V
2010-06-15 17:12 ` [PATCH -V14 04/11] vfs: Allow handle based open on symlinks Aneesh Kumar K.V
2010-07-07 15:23   ` Nick Piggin
2010-07-07 16:24     ` Aneesh Kumar K. V
2010-07-07 16:57       ` Nick Piggin
2010-07-07 17:53         ` Aneesh Kumar K. V
2010-07-07 18:20           ` Nick Piggin
2010-07-07 16:48   ` Nick Piggin
2010-07-08 10:42     ` Aneesh Kumar K. V
2010-06-15 17:12 ` [PATCH -V14 05/11] vfs: Support null pathname in readlink Aneesh Kumar K.V
2010-07-07 15:27   ` Nick Piggin [this message]
2010-07-07 16:32     ` Aneesh Kumar K. V
2010-07-07 17:03       ` Nick Piggin
2010-06-15 17:12 ` [PATCH -V14 06/11] ext4: Copy fs UUID to superblock Aneesh Kumar K.V
2010-06-15 17:12 ` [PATCH -V14 07/11] x86: Add new syscalls for x86_32 Aneesh Kumar K.V
2010-06-15 17:12 ` [PATCH -V14 08/11] x86: Add new syscalls for x86_64 Aneesh Kumar K.V
2010-06-15 17:12 ` [PATCH -V14 09/11] ext3: Copy fs UUID to superblock Aneesh Kumar K.V
2010-06-15 17:13 ` [PATCH -V14 10/11] vfs: Support null pathname in faccessat Aneesh Kumar K.V
2010-06-15 17:13 ` [PATCH -V14 11/11] vfs: Support null pathname in linkat Aneesh Kumar K.V
2010-07-01 16:28 ` [PATCH -V14 0/11] Generic name to handle and open by handle syscalls Aneesh Kumar K. V
2010-07-01 20:41   ` Neil Brown
2010-07-01 21:15     ` Aneesh Kumar K. V
2010-07-06 16:10       ` J. Bruce Fields
2010-07-06 17:09         ` Aneesh Kumar K. V
2010-07-06 23:23           ` Dave Chinner
2010-07-06 23:36             ` Neil Brown
2010-07-07  2:11               ` Dave Chinner
2010-07-07  2:57                 ` Neil Brown
2010-07-07 12:44                   ` Miklos Szeredi
2010-07-07 12:57                   ` J. Bruce Fields
2010-07-07 13:10                     ` Miklos Szeredi
2010-07-07 13:17                       ` J. Bruce Fields
2010-07-07 13:35                         ` Miklos Szeredi
2010-07-07 14:45                           ` J. Bruce Fields
2010-07-07 16:33                             ` Aneesh Kumar K. V
2010-07-07 16:39                               ` J. Bruce Fields
2010-07-07 22:21                             ` Neil Brown
2010-07-07 22:25                               ` J. Bruce Fields
2010-07-08  0:03                               ` Andreas Dilger
2010-07-08  5:03                                 ` Neil Brown
2010-07-08 10:40                               ` Aneesh Kumar K. V
2010-07-08 11:52                                 ` Miklos Szeredi
2010-07-08 12:21                                 ` Neil Brown
2010-07-09 18:42                                   ` Andreas Dilger
2010-07-10  4:58                                     ` Aneesh Kumar K. V
2010-07-07  7:40           ` Andreas Dilger
2010-07-07 15:05             ` J. Bruce Fields
2010-07-07 17:02               ` Andreas Dilger
2010-07-07 17:37                 ` J. Bruce Fields
2010-07-07 18:05                 ` Nick Piggin
2010-07-07 23:49                   ` Andreas Dilger
2010-07-07 18:18                 ` Aneesh Kumar K. V
2010-07-07 20:39                 ` Alan Cox
2010-07-07 23:54                   ` Andreas Dilger
2010-07-02  4:02     ` Andreas Dilger
2010-07-02  7:05       ` hch
2010-07-02 16:12         ` Andreas Dilger
2010-07-02 22:09           ` Neil Brown
2010-07-02 22:47             ` Andreas Dilger
2010-07-03 16:04             ` Aneesh Kumar K. V

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=20100707152706.GT11732@laptop \
    --to=npiggin@suse.de \
    --cc=adilger@sun.com \
    --cc=aneesh.kumar@linux.vnet.ibm.com \
    --cc=bfields@fieldses.org \
    --cc=corbet@lwn.net \
    --cc=hch@infradead.org \
    --cc=hooanon05@yahoo.co.jp \
    --cc=linux-fsdevel@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=neilb@suse.de \
    --cc=philippe.deniel@CEA.FR \
    --cc=serue@us.ibm.com \
    --cc=sfrench@us.ibm.com \
    --cc=viro@zeniv.linux.org.uk \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).