MODULE_VERSION(DRIVER_VERSION);
 MODULE_LICENSE("GPL");
 
+struct pqi_cmd_priv {
+       int this_residual;
+};
+
+static struct pqi_cmd_priv *pqi_cmd_priv(struct scsi_cmnd *cmd)
+{
+       return scsi_cmd_priv(cmd);
+}
+
 static void pqi_verify_structures(void);
 static void pqi_take_ctrl_offline(struct pqi_ctrl_info *ctrl_info,
        enum pqi_ctrl_shutdown_reason ctrl_shutdown_reason);
        scsi_dma_unmap(scmd);
        if (io_request->status == -EAGAIN || pqi_raid_bypass_retry_needed(io_request)) {
                set_host_byte(scmd, DID_IMM_RETRY);
-               scmd->SCp.this_residual++;
+               pqi_cmd_priv(scmd)->this_residual++;
        }
 
        pqi_free_io_request(io_request);
        if (blk_rq_is_passthrough(scsi_cmd_to_rq(scmd)))
                return false;
 
-       return scmd->SCp.this_residual == 0;
+       return pqi_cmd_priv(scmd)->this_residual == 0;
 }
 
 /*
        .map_queues = pqi_map_queues,
        .sdev_groups = pqi_sdev_groups,
        .shost_groups = pqi_shost_groups,
+       .cmd_size = sizeof(struct pqi_cmd_priv),
 };
 
 static int pqi_register_scsi(struct pqi_ctrl_info *ctrl_info)