From: Christian Schoenebeck <qemu_oss@crudebyte.com>
To: qemu-devel@nongnu.org
Cc: Latchesar Ionkov <lucho@ionkov.net>,
Eric Van Hensbergen <ericvh@gmail.com>,
linux-kernel@vger.kernel.org, qemu-devel@nongnu.org,
Greg Kurz <groug@kaod.org>,
Keno Fischer <keno@juliacomputing.com>,
Michael Roitzsch <reactorcontrol@icloud.com>,
Will Cohen <wwcohen@gmail.com>,
netdev@vger.kernel.org, v9fs-developer@lists.sourceforge.net,
Dominique Martinet <asmadeus@codewreck.org>
Subject: Re: [RFC PATCH] 9p: case-insensitive host filesystems
Date: Mon, 23 May 2022 19:59:55 +0200 [thread overview]
Message-ID: <6485122.aT25ngTQys@silver> (raw)
In-Reply-To: <YmMItCb97KqegQw5@codewreck.org>
On Freitag, 22. April 2022 21:57:40 CEST Dominique Martinet wrote:
> Christian Schoenebeck wrote on Fri, Apr 22, 2022 at 08:02:46PM +0200:
> > So maybe it's better to handle case-insensitivity entirely on client side?
> > I've read that some generic "case fold" code has landed in the Linux
> > kernel
> > recently that might do the trick?
>
> I haven't tried, but settings S_CASEFOLD on every inodes i_flags might do
> what you want client-side.
> That's easy enough to test and could be a mount option
I just made a quick test using:
diff --git a/fs/9p/vfs_inode.c b/fs/9p/vfs_inode.c
index 08f48b70a741..5d8e77daed53 100644
--- a/fs/9p/vfs_inode.c
+++ b/fs/9p/vfs_inode.c
@@ -257,6 +257,7 @@ int v9fs_init_inode(struct v9fs_session_info *v9ses,
inode->i_atime = inode->i_mtime = inode->i_ctime =
current_time(inode);
inode->i_mapping->a_ops = &v9fs_addr_operations;
inode->i_private = NULL;
+ inode->i_flags |= S_CASEFOLD;
switch (mode & S_IFMT) {
case S_IFIFO:
Unfortunately that did not help much. I still get EEXIST error e.g. when
trying 'ln -s foo FOO'.
I am not sure though whether there would be more code places to touch or
whether that's even the expected behaviour with S_CASEFOLD for some reason.
> Even with that it's possible to do a direct open without readdir first
> if one knows the path and I that would only be case-insensitive if the
> backing server is case insensitive though, so just setting the option
> and expecting it to work all the time might be a little bit
> optimistic... I believe guess that should be an optimization at best.
>
> Ideally the server should tell the client they are casefolded somehow,
> but 9p doesn't have any capability/mount time negotiation besides msize
> so that's difficult with the current protocol.
prev parent reply other threads:[~2022-05-23 18:28 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-04-22 18:02 [RFC PATCH] 9p: case-insensitive host filesystems Christian Schoenebeck
2022-04-22 19:57 ` Dominique Martinet
2022-04-22 19:57 ` Dominique Martinet
2022-05-23 17:59 ` Christian Schoenebeck [this message]
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=6485122.aT25ngTQys@silver \
--to=qemu_oss@crudebyte.com \
--cc=asmadeus@codewreck.org \
--cc=ericvh@gmail.com \
--cc=groug@kaod.org \
--cc=keno@juliacomputing.com \
--cc=linux-kernel@vger.kernel.org \
--cc=lucho@ionkov.net \
--cc=netdev@vger.kernel.org \
--cc=qemu-devel@nongnu.org \
--cc=reactorcontrol@icloud.com \
--cc=v9fs-developer@lists.sourceforge.net \
--cc=wwcohen@gmail.com \
/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.