From: Neil Brown <neilb@suse.de>
To: Christoph Hellwig <hch@infradead.org>
Cc: Andreas Dilger <adilger@sun.com>, Theodore Tso <tytso@mit.edu>,
"Aneesh Kumar K.V" <aneesh.kumar@linux.vnet.ibm.com>,
viro@zeniv.linux.org.uk, corbet@lwn.net,
linux-fsdevel@vger.kernel.org, sfrench@us.ibm.com
Subject: Re: [PATCH -V3] Generic name to handle and open by handle syscalls
Date: Mon, 26 Apr 2010 20:16:33 +1000 [thread overview]
Message-ID: <20100426201633.0989254f@notabene.brown> (raw)
In-Reply-To: <20100426095658.GD23020@infradead.org>
On Mon, 26 Apr 2010 05:56:58 -0400
Christoph Hellwig <hch@infradead.org> wrote:
> On Sat, Apr 24, 2010 at 11:08:12AM +1000, Neil Brown wrote:
> > Maybe map the filesystem part of the handle from UUID (or whatever) to devno
> > in userspace, then pass the devno+file-part-of-handle to the kernel to
> > perform, the final mapping.
>
> The device number is not a useful kernel interface at all. Getting a
> uuid really is easy in kernelspace as it's available in the superblock
> for every reasonable fs. What's more difficult is finding the right
> vfsmount instance of a superblock to use - not just due to read only
> but also things like no* per-vfsmount flags.
>
> If you look at libhandle in xfsprogs which wraps the existing xfs handle
> ioctls for use in application you'll see such a hash table to map to
> open file descriptors per filesystems due to the limits of the ioctl
> interface. Doing the uuid lookup in kernelspace sounds much saner as
> we have a list of mounts there anyway.
'device number' is useful in that it is guaranteed to be unique,
and fairly trivial to simply generate a unique one in the kernel with no real
cost for any lack of stability.
Don't think of it as a device number - think of it as a system-wide
filesystem-descriptor. You mount a filesystem and then use lstat to find
out what fsd was allocated and use that. Sometimes it will be based on
the major/minor of a related device, other times it will not.
It is already the key that is used for accessing the per-filesystem bdi via
/sys/class/bdi/XX:XX/... for setting e.g. read_ahead_kb and {min,max}_ratio.
uuids - as Ted as shown - are not necessarily unique (despite the name),
so using them to perform a lookup will either be imperfect (not good for a
kernel interface) or will impose extra uniqueness which would break current
configurations.
Surely the imperfection of the mapping is best handled in user-space, with
policy such as "prefer writeable snapshot" etc.
NeilBrown
next prev parent reply other threads:[~2010-04-26 10:16 UTC|newest]
Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-04-22 18:15 [PATCH -V3] Generic name to handle and open by handle syscalls Aneesh Kumar K.V
2010-04-22 18:15 ` [PATCH -V3 1/5] exportfs: Return the minimum required handle size Aneesh Kumar K.V
2010-04-22 18:15 ` [PATCH -V3 2/5] vfs: Add name to file handle conversion support Aneesh Kumar K.V
2010-04-22 18:15 ` [PATCH -V3 3/5] vfs: Add open by file handle support Aneesh Kumar K.V
2010-04-22 19:22 ` Andreas Dilger
2010-04-23 11:40 ` Aneesh Kumar K. V
2010-04-22 18:15 ` [PATCH -V3 4/5] x86: Add new syscalls for x86_32 Aneesh Kumar K.V
2010-04-22 18:15 ` [PATCH -V3 5/5] ext4: Add get_fsid callback Aneesh Kumar K.V
2010-04-22 19:07 ` [PATCH -V3] Generic name to handle and open by handle syscalls Andreas Dilger
2010-04-22 22:49 ` Serge E. Hallyn
2010-04-23 11:45 ` Aneesh Kumar K. V
2010-04-23 13:49 ` Serge E. Hallyn
2010-04-23 13:23 ` Theodore Tso
2010-04-24 0:19 ` Andreas Dilger
2010-04-24 1:08 ` Neil Brown
2010-04-25 18:21 ` Aneesh Kumar K. V
2010-04-26 9:56 ` Christoph Hellwig
2010-04-26 10:16 ` Neil Brown [this message]
2010-04-26 10:28 ` Christoph Hellwig
2010-04-26 11:16 ` Neil Brown
2010-04-26 14:53 ` Theodore Tso
2010-04-26 14:56 ` Christoph Hellwig
2010-04-25 18:07 ` 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=20100426201633.0989254f@notabene.brown \
--to=neilb@suse.de \
--cc=adilger@sun.com \
--cc=aneesh.kumar@linux.vnet.ibm.com \
--cc=corbet@lwn.net \
--cc=hch@infradead.org \
--cc=linux-fsdevel@vger.kernel.org \
--cc=sfrench@us.ibm.com \
--cc=tytso@mit.edu \
--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).