From: "Aneesh Kumar K. V" <aneesh.kumar@linux.vnet.ibm.com>
To: Neil Brown <neilb@suse.de>, Andreas Dilger <andreas.dilger@oracle.com>
Cc: Al Viro <viro@ZenIV.linux.org.uk>,
Christoph Hellwig <hch@infradead.org>,
"adilger\@sun.com" <adilger@sun.com>,
"corbet\@lwn.net" <corbet@lwn.net>,
"npiggin\@kernel.dk" <npiggin@kernel.dk>,
"hooanon05\@yahoo.co.jp" <hooanon05@yahoo.co.jp>,
"bfields\@fieldses.org" <bfields@fieldses.org>,
"miklos\@szeredi.hu" <miklos@szeredi.hu>,
"linux-fsdevel\@vger.kernel.org" <linux-fsdevel@vger.kernel.org>,
"sfrench\@us.ibm.com" <sfrench@us.ibm.com>,
"philippe.deniel\@CEA.FR" <philippe.deniel@CEA.FR>,
"linux-kernel\@vger.kernel.org" <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH -V18 04/13] vfs: Allow handle based open on symlinks
Date: Mon, 23 Aug 2010 06:54:03 +0530 [thread overview]
Message-ID: <m3wrrijf4c.fsf@linux.vnet.ibm.com> (raw)
In-Reply-To: <20100823090604.6c735c80@notabene>
On Mon, 23 Aug 2010 09:06:04 +1000, Neil Brown <neilb@suse.de> wrote:
> On Sat, 21 Aug 2010 01:13:52 -0600
> Andreas Dilger <andreas.dilger@oracle.com> wrote:
>
> > On 2010-08-20, at 18:09, Neil Brown <neilb@suse.de> wrote:
> > > How about a new AT flag: AT_FILE_HANDLE
> > >
> > > Meaning is that the 'dirfd' is used only to identify a filesystem (vfsmnt) and
> > > the 'name' pointer actually points to a filehandle fragment interpreted in
> > > that filesystem.
> > >
> > > One problem is that there is no way to pass the length...
> > > Options:
> > > fragment is at most 64 bytes nul padded at the end
> > > fragment is hex encoded and nul terminated
> > > ??
> > >
> > > I think I prefer the hex encoding, but I'm hoping someone else has a better
> > > idea.
> >
> > That makes it ugly for the kernel to stringify and parse the file handles.
>
> We already parse filenames into components separated by '/'. Is HEX decoding
> that much more ugly.
>
> Filehandles are currently passed between the kernel and mountd as HEX
> strings, so at least there is some precedent.
>
> >
> > How about for AT_FILE_HANDLE THE FIRST __u32 (maybe with an extra __u32 for alignment) is the length and the rest of the binary file handle follows this? In fact, doesn't the handle itself already encode the length in the header?
>
> That part of a filehandle that nfsd gives to the filesystem is one byte out
> of a 4-byte header, plus the tail of the filehandle after the part that
> identifies the filesystem.
> This 'one byte' does imply the length, but it doesn't necessarily encode it.
> Rather it is a 'type'. So it cannot really be used to determine the length
> at the point when the filehandle would need to be copied from userspace into
> the kernel.
>
>
> I don't think there is any precedent for passing a 4-byte length followed by
> a binary string, while there is plenty of precedent for passing a
> nul-terminated ASCII string.
>
> [[ Following this approach I would like to avoid any filehandle-specific
> syscalls altogether.
> Just use a *at syscall with AT_FILE_HANDLE for filehandle lookup, and use
> getxattr('system:linux.file_handle') to get the filehandle for a given path.
>
> Ofcourse we would need to at *at versions of the *xattr syscalls, but that is
> probably a good idea anyway.
> ]]
There are at* syscalls that doesn't take the additional flags as the
argument, like openat, readlinkat. How will handle based open and
readlink work with the above interface ?
-aneesh
next prev parent reply other threads:[~2010-08-23 1:24 UTC|newest]
Thread overview: 46+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-08-20 1:51 [PATCH -V18 0/13] Generic name to handle and open by handle syscalls Aneesh Kumar K.V
2010-08-20 1:51 ` [PATCH -V18 01/13] exportfs: Return the minimum required handle size Aneesh Kumar K.V
2010-08-20 1:51 ` [PATCH -V18 02/13] vfs: Add name to file handle conversion support Aneesh Kumar K.V
2010-08-20 1:51 ` [PATCH -V18 03/13] vfs: Add open by file handle support Aneesh Kumar K.V
2010-08-20 1:51 ` [PATCH -V18 04/13] vfs: Allow handle based open on symlinks Aneesh Kumar K.V
2010-08-20 2:13 ` Aneesh Kumar K. V
2010-08-20 6:53 ` Aneesh Kumar K. V
2010-08-20 8:30 ` Christoph Hellwig
2010-08-20 9:53 ` Neil Brown
2010-08-20 11:51 ` Al Viro
2010-08-21 0:09 ` Neil Brown
2010-08-21 7:13 ` Andreas Dilger
2010-08-21 9:32 ` Aneesh Kumar K. V
2010-08-22 23:06 ` Neil Brown
2010-08-23 1:24 ` Aneesh Kumar K. V [this message]
2010-08-23 1:52 ` Neil Brown
2010-08-24 10:40 ` Aneesh Kumar K. V
2010-08-23 2:49 ` Aneesh Kumar K. V
2010-08-25 2:06 ` Neil Brown
2010-08-24 9:41 ` Bastien ROUCARIES
2010-08-25 2:04 ` Neil Brown
2010-08-25 9:13 ` Bastien ROUCARIES
2010-08-21 8:30 ` Nick Piggin
2010-08-21 9:42 ` Aneesh Kumar K. V
2010-08-22 2:02 ` Aneesh Kumar K. V
2010-08-24 7:21 ` Nick Piggin
2010-08-24 10:34 ` Aneesh Kumar K. V
2010-08-24 13:19 ` J. Bruce Fields
2010-08-22 23:17 ` Neil Brown
2010-08-24 7:29 ` Nick Piggin
2010-08-21 9:31 ` Aneesh Kumar K. V
2010-08-20 13:25 ` Peter Zijlstra
2010-08-20 23:47 ` Neil Brown
2010-08-20 14:38 ` Aneesh Kumar K. V
2010-08-20 1:51 ` [PATCH -V18 05/13] vfs: Support null pathname in readlink Aneesh Kumar K.V
2010-08-20 8:32 ` Christoph Hellwig
2010-08-20 10:04 ` Neil Brown
2010-08-20 14:43 ` Aneesh Kumar K. V
2010-08-20 1:51 ` [PATCH -V18 06/13] vfs: Support null pathname in faccessat Aneesh Kumar K.V
2010-08-20 1:51 ` [PATCH -V18 07/13] vfs: Support null pathname in linkat Aneesh Kumar K.V
2010-08-20 1:51 ` [PATCH -V18 08/13] x86: Add new syscalls for x86_32 Aneesh Kumar K.V
2010-08-20 1:51 ` [PATCH -V18 09/13] x86: Add new syscalls for x86_64 Aneesh Kumar K.V
2010-08-20 1:51 ` [PATCH -V18 10/13] unistd.h: Add new syscalls numbers to asm-generic Aneesh Kumar K.V
2010-08-20 1:51 ` [PATCH -V18 11/13] vfs: Export file system uuid via /proc/<pid>/mountinfo Aneesh Kumar K.V
2010-08-20 1:51 ` [PATCH -V18 12/13] ext3: Copy fs UUID to superblock Aneesh Kumar K.V
2010-08-20 1:51 ` [PATCH -V18 13/13] ext4: " 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=m3wrrijf4c.fsf@linux.vnet.ibm.com \
--to=aneesh.kumar@linux.vnet.ibm.com \
--cc=adilger@sun.com \
--cc=andreas.dilger@oracle.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=miklos@szeredi.hu \
--cc=neilb@suse.de \
--cc=npiggin@kernel.dk \
--cc=philippe.deniel@CEA.FR \
--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).