From: Dominique Martinet <asmadeus@codewreck.org>
To: "Toke Høiland-Jørgensen" <toke@redhat.com>
Cc: Eric Van Hensbergen <ericvh@gmail.com>,
Latchesar Ionkov <lucho@ionkov.net>,
v9fs-developer@lists.sourceforge.net,
linux-kernel@vger.kernel.org
Subject: Re: [PATCH] fs: 9p: add generic splice_read file operations
Date: Tue, 1 Dec 2020 15:57:28 +0100 [thread overview]
Message-ID: <20201201145728.GA11144@nautica> (raw)
In-Reply-To: <20201201135409.55510-1-toke@redhat.com>
Toke Høiland-Jørgensen wrote on Tue, Dec 01, 2020:
> The v9fs file operations were missing the splice_read operations, which
> breaks sendfile() of files on such a filesystem. I discovered this while
> trying to load an eBPF program using iproute2 inside a 'virtme' environment
> which uses 9pfs for the virtual file system. iproute2 relies on sendfile()
> with an AF_ALG socket to hash files, which was erroring out in the virtual
> environment.
>
> Since generic_file_splice_read() seems to just implement splice_read in
> terms of the read_iter operation, I simply added the generic implementation
> to the file operations, which fixed the error I was seeing. A quick grep
> indicates that this is what most other file systems do as well.
Good catch, might as well do that.
I'm surprised you didn't hit the same problem with splice_write?
I see iter_file_splice_write being used for it on many filesystems,
it's probably better to add both?
> The only caveat is that my test case was only hitting the
> v9fs_file_operations_dotl implementation. I added it to the other file
> operations structs as well because it seemed like the sensible thing to do
> given that they all implement read_iter, but those are only compile tested.
The logic is close enough that it should work, I'll run it through in
cached mode at least first though (just mount with cache=loose or
cache=fscache to hit v9fs_cached_file_operations_dotl yourself if you
want to)
non-dotl operations are harder to test, I don't have any server
compatible either so we'll have to trust it works close enough...
(note you can write comments such as this one after the three dashes
line before the diff chunk so maintainers can reply without having it in
commit message itself)
--
Dominique
next prev parent reply other threads:[~2020-12-01 14:58 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-12-01 13:54 [PATCH] fs: 9p: add generic splice_read file operations Toke Høiland-Jørgensen
2020-12-01 14:57 ` Dominique Martinet [this message]
2020-12-01 15:16 ` [V9fs-developer] " Dominique Martinet
2020-12-01 15:23 ` Toke Høiland-Jørgensen
2020-12-01 15:39 ` Dominique Martinet
2020-12-01 20:37 ` Toke Høiland-Jørgensen
2020-12-01 15:44 ` [PATCH] fs: 9p: add generic splice_write file operation Dominique Martinet
2020-12-01 19:25 ` Christoph Hellwig
2020-12-01 20:37 ` Toke Høiland-Jørgensen
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=20201201145728.GA11144@nautica \
--to=asmadeus@codewreck.org \
--cc=ericvh@gmail.com \
--cc=linux-kernel@vger.kernel.org \
--cc=lucho@ionkov.net \
--cc=toke@redhat.com \
--cc=v9fs-developer@lists.sourceforge.net \
/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