From: Ingo Molnar <mingo@elte.hu>
To: Christoph Hellwig <hch@infradead.org>,
Steven Whitehouse <swhiteho@redhat.com>,
Linus Torvalds <torvalds@osdl.org>,
David Teigland <teigland@redhat.com>,
Patrick Caulfield <pcaulfie@redhat.com>,
Kevin Anderson <kanderso@redhat.com>,
Andrew Morton <akpm@osdl.org>,
linux-kernel@vger.kernel.org
Subject: Re: GFS2 and DLM
Date: Tue, 27 Jun 2006 10:31:04 +0200 [thread overview]
Message-ID: <20060627083104.GA550@elte.hu> (raw)
In-Reply-To: <20060627075033.GA21066@infradead.org>
* Christoph Hellwig <hch@infradead.org> wrote:
> ->follow_link needs exactly the same locking as ->readlink. The whole
> point of using generic_readlink is to avoid having the filesystem
> reimplement almost the same code twice, once copying to a kernel
> buffer and once to a user buffer.
yeah, you are right, i confused it with ->follow_link() and was wrong
about the locking: generic_readlink() is just a wrapper around
->follow_link() and vfs_readlink().
Still, as far as i can see the gfs2 implementation of readlink is faster
(and hence a valid solution), because it knows the length of the symlink
buffer and hence can avoid the strlen() call in vfs_readlink():
int vfs_readlink(struct dentry *dentry, char __user *buffer, int buflen, const char *link)
{
int len;
len = PTR_ERR(link);
if (IS_ERR(link))
goto out;
len = strlen(link); <============= [this one]
while gfs2 can do a straight copy to userspace:
error = gfs2_readlinki(ip, &buf, &len);
if (error)
return error;
if (user_size > len - 1)
user_size = len - 1;
if (copy_to_user(user_buf, buf, user_size))
error = -EFAULT;
else
error = user_size;
btw., ocfs2 does not use generic_readlink() either.
> Please read the code before giving such useless comments.
thank you for the encouragement to participate in VFS review activities,
it's really appreciated! It's always a joy taking part in lkml
discussions.
Ingo
prev parent reply other threads:[~2006-06-27 8:35 UTC|newest]
Thread overview: 46+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-06-20 12:17 GFS2 and DLM Steven Whitehouse
2006-06-20 12:32 ` Nick Piggin
2006-06-20 12:47 ` Steven Whitehouse
2006-06-20 14:04 ` Nick Piggin
2006-06-20 15:40 ` Steven Whitehouse
2006-06-20 19:55 ` Andrew Morton
2006-06-21 11:20 ` Steven Whitehouse
2006-06-23 14:45 ` Christoph Hellwig
2006-06-26 21:03 ` Ingo Molnar
2006-06-27 7:52 ` Christoph Hellwig
2006-06-20 12:33 ` Christoph Hellwig
2006-06-20 12:55 ` Steven Whitehouse
2006-06-20 15:55 ` Ingo Molnar
2006-06-23 14:49 ` Christoph Hellwig
2006-06-23 20:46 ` Andrew Morton
2006-06-26 20:03 ` Ingo Molnar
2006-06-26 20:12 ` Arjan van de Ven
2006-06-27 7:08 ` Ingo Molnar
2006-06-27 6:33 ` Ingo Molnar
2006-06-27 6:43 ` Arjan van de Ven
2006-06-27 7:07 ` Ingo Molnar
2006-06-27 7:06 ` Andrew Morton
2006-06-27 8:35 ` Ingo Molnar
2006-06-27 8:50 ` Andrew Morton
2006-06-27 9:04 ` Ingo Molnar
2006-06-27 9:23 ` Andrew Morton
2006-07-03 13:40 ` Steven Whitehouse
2006-06-27 8:16 ` Nathan Scott
2006-06-27 8:22 ` Ingo Molnar
2006-06-27 8:41 ` Pekka Enberg
2006-06-27 10:33 ` Ingo Molnar
2006-06-27 8:42 ` Nathan Scott
2006-06-27 8:51 ` Ingo Molnar
2006-06-23 14:54 ` Christoph Hellwig
2006-06-23 15:54 ` Steven Whitehouse
2006-06-23 15:54 ` Christoph Hellwig
2006-06-23 16:09 ` Steven Whitehouse
2006-06-23 14:55 ` Christoph Hellwig
2006-06-23 14:57 ` Christoph Hellwig
2006-06-23 15:26 ` Steven Whitehouse
2006-06-23 15:00 ` Christoph Hellwig
2006-06-23 16:29 ` Steven Whitehouse
2006-06-23 16:48 ` Christoph Hellwig
2006-06-26 20:58 ` Ingo Molnar
2006-06-27 7:50 ` Christoph Hellwig
2006-06-27 8:31 ` Ingo Molnar [this message]
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=20060627083104.GA550@elte.hu \
--to=mingo@elte.hu \
--cc=akpm@osdl.org \
--cc=hch@infradead.org \
--cc=kanderso@redhat.com \
--cc=linux-kernel@vger.kernel.org \
--cc=pcaulfie@redhat.com \
--cc=swhiteho@redhat.com \
--cc=teigland@redhat.com \
--cc=torvalds@osdl.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.