seq_read() is usually called in a loop because the destination buffer might be smaller than the source. The caller relies on the updated position to read what is next.
We also use memcpy() instead of strscpy() because we don't need to append a NUL character.
Sponsored by: The FreeBSD Foundation