On (23/03/24 13:28), Namjae Jeon wrote: > > By the way, ksmbd_tcp_readv() calls kvec_array_init() on each iteration. > > Shouldn't we call it only if length > 0? That is only if the most recent > > call to kernel_recvmsg() has read some data. > If length == to_read is equal then it is not called. And in case > length < to_read, we have to call it which reinitialize io vec again > for reading the rest of the data. What I'm saying is: if length == 0 on the previous iteration then we don't need to kvec_array_init(). But maybe I'm missing something.