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

From: Aneesh Kumar K. V
Date: Wed Jul 07 2010 - 13:53:46 EST


On Thu, 8 Jul 2010 02:57:19 +1000, Nick Piggin <npiggin@xxxxxxx> wrote:
> 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.


We need to be able to read the link target using file handle. The exact
usecase i have is with respect to implementing READLINK operation on a
userspace NFS server. The request contain the file handle and the
response include target name.

Similarly we need to able to get file attribute based on file handle.
I was using readlinkat and fstat to obtain both the above information
using the descriptor returned by open_by_handle on a file handle
representing symlink

-aneesh
--
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/