All of the kernel dump implementations keep track of the current offset
within the dump device. However, except for textdumps, they all write
the dump sequentially, so we can simplify the implementations by having
the MI kernel dump code keep track of the current offset. Thus,
dump_write() is modified to exclude the offset. dump_raw_write() is now
exported, so there still exists an API for writing at a given offset. It
is used by the textdump code, and the graid dump code.
This is necessary for a reasonable implementation of compressed kernel
dumps, since with compression enabled a call to dump_write() does not
necessarily result in a write to disk.
Also simplify dump_encrypted_write() somewhat: use dump_raw_write()
instead of calling the dumper directly, which lets us remove some
duplicated checks; don't bother keeping track of the current offset,
since that's maintained in kern_shutdown.c now too.