On Thu, 2016-04-28 at 21:43 -0700, Alexei Starovoitov wrote: > > I don't understand the logic completely, but isn't it > safer to do 'goto wait_for_memory;' here if we happened > to hit this in the middle of the loop?
Well, the wait_for_memory pushes data, and could early return to user space with short writes (non blocking IO). This would break things... After processing backlog, tcp_send_mss() needs to be called again, and we also need to check sk_err and sk_shutdown. A goto looks fine to me. > Also does it make sense to rename __release_sock to > something like _ _ _sk_flush_backlog, since that's > what it's doing and not doing any 'release' ? Well, I guess it could be renamed, but this has been named like that for decades ? Why changing now, while this patch does not touch it ?