0. User wants to send 2 * 1K bytes with sendmsg() 1. Kernel already sent the first 1K successfully 2. Kernel got some error when sending the 2nd 1K In this scenario, we should return 1K instead of the error to the caller to indicate this partial transmission situation, otherwise we could not distinguish it with a compete failure (that is, 0 byte sent). Do I miss anything? Thanks.