+ } else {
+ sgio_hdr_init(sd, hdr, io_u, 0);
+
+ hdr->dxfer_direction = SG_DXFER_NONE;
+ hdr->cmdp[0] = 0x35;
+ }
+
+ if (hdr->dxfer_direction != SG_DXFER_NONE) {
+ nr_blocks = io_u->buflen / sd->bs;
+ lba = io_u->offset / sd->bs;
+ hdr->cmdp[2] = (lba >> 24) & 0xff;
+ hdr->cmdp[3] = (lba >> 16) & 0xff;
+ hdr->cmdp[4] = (lba >> 8) & 0xff;
+ hdr->cmdp[5] = lba & 0xff;
+ hdr->cmdp[7] = (nr_blocks >> 8) & 0xff;
+ hdr->cmdp[8] = nr_blocks & 0xff;