target: lock => unlock typo in transport_lun_wait_for_tasks
authorDan Carpenter <dan.carpenter@oracle.com>
Tue, 8 May 2012 10:28:59 +0000 (13:28 +0300)
committerNicholas Bellinger <nab@linux-iscsi.org>
Wed, 9 May 2012 22:07:44 +0000 (15:07 -0700)
target_stop_cmd() returns with the lock held and IRQs disabled.  The
intent was to unlock here.  This bug was originally added with:

commit cf572a9627c9ae86082216de109780c1d2e2ee28
Author: Christoph Hellwig <hch@infradead.org>
Date:   Tue Apr 24 00:25:05 2012 -0400

    target: move the state and execute lists to the command

Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>
drivers/target/target_core_transport.c

index a10d784..85f14e0 100644 (file)
@@ -3768,7 +3768,7 @@ static int transport_lun_wait_for_tasks(struct se_cmd *cmd, struct se_lun *lun)
            (cmd->transport_state & CMD_T_SENT)) {
                if (!target_stop_cmd(cmd, &flags))
                        ret++;
-               spin_lock_irqsave(&cmd->t_state_lock, flags);
+               spin_unlock_irqrestore(&cmd->t_state_lock, flags);
        } else {
                spin_unlock_irqrestore(&cmd->t_state_lock,
                                flags);