sg: 16-byte cdb support and lots of fixes
-- Fixed prob with queue depths > 1 (usually would work at qd = 2,
but had fundimental prob with retrieving multiple events)
Only works up to QD 16 due to kernel limitation.
-- Fix problem with check and report scsi operation errors.
There was no check, so op errors were being ignored.
Added support to retrieve and print sense data to output.
-- Fix problem with op timeouts. No timeouts op time out was being set.
Hardcoded to 30 seconds.
-- Support switch to 16 Byte operations when LBA range needed.
-- Set default size based on maxlba of device retrieved
from ReadCapacity command.
Updated by Jens to:
- ->errdetails() must be reentrant. Return an allocated buffer, have
the caller free it when done.
- Bump io engine version number, the ops have changed.
- Add strlcat() as a real helper, don't stuff it in sg.c
- Lots of style cleanups
Signed-off-by: Jens Axboe <axboe@fb.com>