From: Al Viro <viro@ZenIV.linux.org.uk>
To: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
linux-fsdevel <linux-fsdevel@vger.kernel.org>
Subject: Re: [RFC] ->get_link(), ->put_link() and cookies
Date: Sun, 3 Jan 2016 20:21:21 +0000 [thread overview]
Message-ID: <20160103202121.GM9938@ZenIV.linux.org.uk> (raw)
In-Reply-To: <CA+55aFx4H1uuDU9JST26FOwi6LBU9nJUPYvX7479DEk1tVaZ3w@mail.gmail.com>
On Sun, Jan 03, 2016 at 11:53:21AM -0800, Linus Torvalds wrote:
> On Thu, Dec 31, 2015 at 10:36 PM, Al Viro <viro@zeniv.linux.org.uk> wrote:
> > In cases when we need to pin the symlink body in some manner, we
> > need to undo whatever we'd done once the caller is done with the body.
> > That went through several variants, the latest (in -next right now) being
> > "have non-NULL ->put_link() and leave an argument for it in void *cookie,
> > address of which is passed to ->get_link()".
>
> The series looks ok to me, even if I still am not a fan of the cookie.
> I suspect the remaining users could easily embed the returned string
> at the end of a structure, and get their data with container_of(). It
> would complicate their unusual behavior for sure, but make the common
> case much more understandable.
>
> Oh well. I won't insist - it may be too painful to be worth it. And
> it's a fairly separate issue anyway.
>
> So no objections to this series.
Just to make sure - that does include 13/13, presumably? IOW, ->put_link()
is gone and the final calling conventions for ->get_link() are
const char *(*get_link)(struct dentry *dentry,
struct inode *inode,
struct delayed_call *done);
with dentry == NULL <=> call in RCU mode, ERR_PTR(-E...) returned on error
and set_delayed_call(done, destructor, arg) done if destructor(arg) should
be done once pathname resolution is through with the body returned by
->get_link().
next prev parent reply other threads:[~2016-01-03 20:21 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-01-01 6:36 [RFC] ->get_link(), ->put_link() and cookies Al Viro
2016-01-01 6:38 ` [PATCH 01/13] switch befs long symlinks to page_symlink_operations Al Viro
2016-01-01 6:38 ` [PATCH 02/13] logfs: don't duplicate page_symlink_inode_operations Al Viro
2016-01-01 6:38 ` [PATCH 03/13] udf: " Al Viro
2016-01-05 16:27 ` Jan Kara
2016-01-01 6:38 ` [PATCH 04/13] ufs: get rid of ->setattr() for symlinks Al Viro
2016-01-01 6:38 ` [PATCH 05/13] namei: page_getlink() and page_follow_link_light() are the same thing Al Viro
2016-01-01 6:38 ` [PATCH 06/13] don't put symlink bodies in pagecache into highmem Al Viro
2016-01-01 6:38 ` [PATCH 07/13] replace ->follow_link() with new method that could stay in RCU mode Al Viro
2016-01-01 6:38 ` [PATCH 08/13] teach page_get_link() to work " Al Viro
2016-01-01 6:38 ` [PATCH 09/13] teach shmem_get_link() " Al Viro
2016-01-01 6:38 ` [PATCH 10/13] teach proc_self_get_link()/proc_thread_self_get_link() " Al Viro
2016-01-01 6:38 ` [PATCH 11/13] teach nfs_get_link() " Al Viro
2016-01-01 6:38 ` [PATCH 12/13] kill free_page_put_link() Al Viro
2016-01-01 6:38 ` [PATCH 13/13] switch ->get_link() to delayed_call, kill ->put_link() Al Viro
2016-01-03 19:53 ` [RFC] ->get_link(), ->put_link() and cookies Linus Torvalds
2016-01-03 20:21 ` Al Viro [this message]
2016-01-03 20:41 ` Linus Torvalds
2016-01-03 21:40 ` Al Viro
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=20160103202121.GM9938@ZenIV.linux.org.uk \
--to=viro@zeniv.linux.org.uk \
--cc=linux-fsdevel@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=torvalds@linux-foundation.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.