Re: [PATCH -V14 04/11] vfs: Allow handle based open on symlinks

From: Nick Piggin
Date: Wed Jul 07 2010 - 12:57:28 EST


On Wed, Jul 07, 2010 at 09:54:52PM +0530, Aneesh Kumar K. V wrote:
> On Thu, 8 Jul 2010 01:23:03 +1000, Nick Piggin <npiggin@xxxxxxx> wrote:
> > On Tue, Jun 15, 2010 at 10:42:54PM +0530, Aneesh Kumar K.V wrote:
> > > The patch update may_open to allow handle based open on symlinks.
> > > The file handle based API use file descritor returned from open_by_handle_at
> > > to do different file system operations. To find the link target name we
> > > need to get a file descriptor on symlinks.
> >
> > This is a pretty big change, isn't it?
>
> Yes
>
> > Have you looked through vfs to
> > ensure this is actually OK? I was just looking at remount,ro code, for
> > example, and it seems to assume only writable open files on ISREG
> > files.
>
> I verified that write and read returns an error on that descriptor. I
> will look at rest of code to ensure the it doesn't break assumptions in
> the rest of VFS.
>
> >
> > Is this restricted to RDONLY? Really, it should be O_NONE...
> >
> >
>
> we need the interface so that we can do fstat(lstat) and readlink using the
> handle. If we are against the idea of allowing an fd on symlink, how about
> adding stat_by_handle and readlink_by_handle syscall ? That way we can
> drop "vfs: Support null pathname in readlink" patch

It would be nice to avoid introducing open files to symlinks, but
I don't know about really the *right* thing to do though. I think
avoiding adding any by-handle syscalls except for open by handle
may be a good idea... OTOH if this is really a special case for
handles...

I haven't followed this thread closely, so can you just go back
and explain to me why you need this? Ie. that you can't achieve with
a path-to-handle follow/nofollow option.


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/