From: "Aneesh Kumar K. V" <aneesh.kumar@linux.vnet.ibm.com>
To: Andreas Dilger <adilger@sun.com>
Cc: hch@infradead.org, viro@zeniv.linux.org.uk,
linux-fsdevel@vger.kernel.org
Subject: Re: [RFC PATCH] Generic name to handle and open by handle syscalls
Date: Fri, 19 Feb 2010 15:19:55 +0530 [thread overview]
Message-ID: <87zl35imgs.fsf@linux.vnet.ibm.com> (raw)
In-Reply-To: <74B8CBFE-B15E-4677-8C83-522AB1524EDA@sun.com>
On Fri, 19 Feb 2010 02:34:29 -0700, Andreas Dilger <adilger@sun.com> wrote:
> On 2010-02-18, at 22:42, Aneesh Kumar K.V wrote:
> > The below set of patches implement open by handle support using
> > exportfs
> > operations. This allows user space application to map a file name to
> > file
> > handle and later open the file using handle. This should be usable
> > for userspace NFS and 9P server. XFS already support this with the
> > ioctls
> > XFS_IOC_PATH_TO_HANDLE and XFS_IOC_OPEN_BY_HANDLE.
> >
> > struct file_handle {
> > int handle_size;
> > int handle_type;
> > void *f_handle;
> > };
>
> What is the required size of the f_handle field? It seems that either
> this
> should be a well-defined structure size in the header, or the syscall
> will return an error like EOVERFLOW if the handle will not fit into
> the supplied handle_size, and it returns the required size in
> handle_size.
The patch already does that. I have made the syscall return with
-EAGAIN with handle_size containing the required value. May be
EOVERFLOW is the right error value. I will update in the next iteration.
>
> > fh.handle_type = 0;
> > fh.handle = malloc(100);
> > fh.handle_size = 100/sizeof(int);
>
> It seems strange to define the handle_size in terms of ints instead of
> bytes?
If we agree with size in bytes. I can update the kernel to work in bytes.
>
> > ret = syscall(338, argv[1], &fh);
> > fd = syscall(339, &fh, O_RDONLY);
>
> What is the expected lifespan of "fh" to remain valid in the kernel?
> Presumably this is not just the encoding of the inode number into a
> buffer, or it would be too easy to forge from userspace. That means
> there needs to be some unguessable state in the kernel for each file
> handle, that may potentially need to be kept indefinitely if there is
> no expiry.
>
> Will "fh" be portable between processes? I assume that is the intent,
> but good to declare the actual semantics of the syscalls before they
> go into the kernel.
Life time rule and uniqueness rule should be same as the NFS file
handle. My understanding is there is no expiry. I am not sure what
would be the issues if one could guess the file handle ? It should
be looked at as another way to identify a file. The open call takes
the mode and normal permissions checks are done during open.
If you are worried about limiting file access by controlling the
permissions of directories i guess the below mail explained that
we cannot depend on directory permissions for such access restrictions
http://article.gmane.org/gmane.linux.file-systems/37419 ?
-aneesh
next prev parent reply other threads:[~2010-02-19 9:50 UTC|newest]
Thread overview: 36+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-02-19 5:42 [RFC PATCH] Generic name to handle and open by handle syscalls Aneesh Kumar K.V
2010-02-19 5:42 ` [RFC PATCH 1/3] vfs: Add name to file handle conversion support Aneesh Kumar K.V
2010-02-20 18:15 ` Andreas Dilger
2010-02-22 5:15 ` Aneesh Kumar K. V
2010-02-19 5:42 ` [RFC PATCH 2/3] vfs: Add open by file handle support Aneesh Kumar K.V
2010-02-20 18:58 ` Andreas Dilger
2010-02-20 20:13 ` Brad Boyer
[not found] ` <FB88A140-C2EB-4E62-9769-D2524C874C8C@sun.com>
2010-02-22 2:46 ` Brad Boyer
2010-02-26 19:21 ` J. Bruce Fields
2010-02-28 17:55 ` Andreas Dilger
2010-02-28 19:00 ` J. Bruce Fields
2010-03-01 18:25 ` Oleg Drokin
2010-03-01 21:25 ` J. Bruce Fields
2010-02-22 6:13 ` Aneesh Kumar K. V
2010-02-22 6:31 ` Dave Chinner
2010-02-26 19:24 ` J. Bruce Fields
2010-02-19 5:42 ` [RFC PATCH 3/3] x86: Add new syscalls for x86_32 Aneesh Kumar K.V
2010-02-19 9:34 ` [RFC PATCH] Generic name to handle and open by handle syscalls Andreas Dilger
2010-02-19 9:49 ` Aneesh Kumar K. V [this message]
2010-02-20 19:01 ` Andreas Dilger
2010-02-22 6:27 ` Aneesh Kumar K. V
2010-02-22 23:06 ` Jonathan Corbet
2010-02-23 0:56 ` James Morris
2010-02-23 8:58 ` Aneesh Kumar K. V
2010-02-23 19:46 ` Jonathan Corbet
2010-02-24 0:49 ` Dave Chinner
2010-02-25 4:53 ` Serge E. Hallyn
2010-02-25 14:30 ` Jonathan Corbet
2010-02-25 15:19 ` Serge E. Hallyn
2010-02-25 17:55 ` Aneesh Kumar K. V
2010-02-25 18:11 ` Serge E. Hallyn
2010-02-25 18:20 ` Aneesh Kumar K. V
2010-02-25 19:05 ` Serge E. Hallyn
2010-02-26 9:12 ` Andreas Dilger
2010-02-26 19:56 ` Serge E. Hallyn
-- strict thread matches above, loose matches on Subject: below --
2010-03-11 13:14 DENIEL Philippe
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=87zl35imgs.fsf@linux.vnet.ibm.com \
--to=aneesh.kumar@linux.vnet.ibm.com \
--cc=adilger@sun.com \
--cc=hch@infradead.org \
--cc=linux-fsdevel@vger.kernel.org \
--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 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.