if (!done) { eprintk("%s\n", "Null done function!"); return -EINVAL; }  work = tgt_init_work(session, queuecommand, cmnd); if (!work) return -ENOMEM;  tgt_queue_work(session->target, work);
INIT_WORK(&cmnd->work, queuecommand, cmnd); queue_work(session->target->twq, &cmnd->work);
int tgt_cmnd_queue(struct tgt_cmnd *cmnd, void (*done)(struct tgt_cmnd *)){	struct tgt_work *work;	struct tgt_session *session = cmnd->session;	BUG_ON(cmnd->done);	cmnd->done = done;	if (!done) {		eprintk("%s\n", "Null done function!");		return -EINVAL;	}	work = tgt_init_work(session, queuecommand, cmnd);	if (!work)		return -ENOMEM;	tgt_queue_work(session->target, work);	return 0;}