Message ID | 0ad3bdc1e5e4ccef2ee0b36fb3b068e61b1b1a53.1684501922.git.asml.silence@gmail.com (mailing list archive) |
---|---|
State | Changes Requested |
Delegated to: | Netdev Maintainers |
Headers | show |
Series | TCP splice improvements | expand |
Context | Check | Description |
---|---|---|
netdev/series_format | success | Posting correctly formatted |
netdev/tree_selection | success | Clearly marked for net-next |
netdev/fixes_present | success | Fixes tag not required for -next series |
netdev/header_inline | success | No static functions without inline keyword in header files |
netdev/build_32bit | success | Errors and warnings before: 10 this patch: 10 |
netdev/cc_maintainers | success | CCed 6 of 6 maintainers |
netdev/build_clang | success | Errors and warnings before: 8 this patch: 8 |
netdev/verify_signedoff | success | Signed-off-by tag matches author and committer |
netdev/deprecated_api | success | None detected |
netdev/check_selftest | success | No net selftest shell script |
netdev/verify_fixes | success | No Fixes tag |
netdev/build_allmodconfig_warn | success | Errors and warnings before: 10 this patch: 10 |
netdev/checkpatch | success | total: 0 errors, 0 warnings, 0 checks, 12 lines checked |
netdev/kdoc | success | Errors and warnings before: 0 this patch: 0 |
netdev/source_inline | success | Was 0 now: 0 |
diff --git a/net/ipv4/tcp.c b/net/ipv4/tcp.c index bf7627f37e69..0139b2c70ed4 100644 --- a/net/ipv4/tcp.c +++ b/net/ipv4/tcp.c @@ -799,9 +799,9 @@ ssize_t tcp_splice_read(struct socket *sock, loff_t *ppos, timeo = sock_rcvtimeo(sk, sock->file->f_flags & O_NONBLOCK); while (true) { ret = __tcp_splice_read(sk, &tss); - if (ret < 0) - break; - else if (!ret) { + if (ret <= 0) { + if (unlikely(ret < 0)) + break; if (spliced) break; if (sock_flag(sk, SOCK_DONE))
Move post __tcp_splice_read() error checking inside the "nothing to read" block. That removes an extra if from the path where it has successfully spliced some bytes. Signed-off-by: Pavel Begunkov <asml.silence@gmail.com> --- net/ipv4/tcp.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-)