If the client is looping until it sees ENODATA, shouldn't we also return that if !truncated? (obviously that would have to happen a bit farther down)