cmd->back = &lun->urq; 
cmd->back = rq; 
static int ub_request_fn_1(struct ub_lun *lun, struct request *rq){	struct ub_dev *sc = lun->udev;	struct ub_scsi_cmd *cmd;	int rc;	if (atomic_read(&sc->poison) || lun->changed) {		blkdev_dequeue_request(rq);		ub_end_rq(rq, 0);		return 0;	}	if (lun->urq.rq != NULL)		return -1;	if ((cmd = ub_get_cmd(lun)) == NULL)		return -1;	memset(cmd, 0, sizeof(struct ub_scsi_cmd));	blkdev_dequeue_request(rq);	if (blk_pc_request(rq)) {		rc = ub_cmd_build_packet(sc, lun, cmd, rq);	} else {		rc = ub_cmd_build_block(sc, lun, cmd, rq);	}	if (rc != 0) {		ub_put_cmd(lun, cmd);		ub_end_rq(rq, 0);		return 0;	}	cmd->state = UB_CMDST_INIT;	cmd->lun = lun;	cmd->done = ub_rw_cmd_done;	cmd->back = &lun->urq;	cmd->tag = sc->tagcnt++;	if (ub_submit_scsi(sc, cmd) != 0) {		ub_put_cmd(lun, cmd);		ub_end_rq(rq, 0);		return 0;	}	return 0;}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/a1cf96efbabac2f8af6f75286ffcefd40b0a466c/ub.c/buggy/drivers/block/ub.c