Re: [PATCH net-next] libceph: Partially revert changes to support MSG_SPLICE_PAGES

From: Ilya Dryomov
Date: Mon Jun 26 2023 - 17:01:57 EST


On Mon, Jun 26, 2023 at 10:44 PM David Howells <dhowells@xxxxxxxxxx> wrote:
>
> Ilya Dryomov <idryomov@xxxxxxxxx> wrote:
>
> > if (sendpage_ok(bv.bv_page))
> > msg.msg_flags |= MSG_SPLICE_PAGES;
> > else
> > msg.msg_flags &= ~MSG_SPLICE_PAGES;
>
> Hmmm... I'm not sure there's any guarantee that msg, including msg_flags,
> won't get altered by ->sendmsg().

If this is indeed an issue, do_sendmsg() should be fixed too. I would
like to avoid having do_try_sendpage() do one thing and do_sendmsg() do
something subtly different.

But then, even with the current patch, only msg_flags is reinitialized
on the next loop iteration, not the entire message. Should the entire
message be reinitialized?

Thanks,

Ilya