net/smc: Cork when sendpage with MSG_SENDPAGE_NOTLAST flag
authorTony Lu <tonylu@linux.alibaba.com>
Sun, 30 Jan 2022 18:02:57 +0000 (02:02 +0800)
committerDavid S. Miller <davem@davemloft.net>
Mon, 31 Jan 2022 15:08:20 +0000 (15:08 +0000)
commitbe9a16cccaefac23cb16909e04bb65e62e09d515
tree40e63b65ccddea554af2587c9f18d8fb8f9c59e8
parent139653bc6635bcf0923a1d4fa06d3ac594528dd9
net/smc: Cork when sendpage with MSG_SENDPAGE_NOTLAST flag

This introduces a new corked flag, MSG_SENDPAGE_NOTLAST, which is
involved in syscall sendfile() [1], it indicates this is not the last
page. So we can cork the data until the page is not specify this flag.
It has the same effect as MSG_MORE, but existed in sendfile() only.

This patch adds a option MSG_SENDPAGE_NOTLAST for corking data, try to
cork more data before sending when using sendfile(), which acts like
TCP's behaviour. Also, this reimplements the default sendpage to inform
that it is supported to some extent.

[1] https://man7.org/linux/man-pages/man2/sendfile.2.html

Signed-off-by: Tony Lu <tonylu@linux.alibaba.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/smc/af_smc.c
net/smc/smc_tx.c
net/smc/smc_tx.h