target: Fix exception path pr_reg put regression for PR RELEASE
authorNicholas Bellinger <nab@linux-iscsi.org>
Tue, 6 Nov 2012 23:46:25 +0000 (15:46 -0800)
committerNicholas Bellinger <nab@linux-iscsi.org>
Thu, 8 Nov 2012 04:12:06 +0000 (20:12 -0800)
Fix a regression bug in core_scsi3_emulate_pro_release() where
should still be getting released via core_scsi3_put_pr_reg() during
No persistent reservation, with returing GOOD status.

Use goto statement here to follow converted code from hch.

Cc: Christoph Hellwig <hch@lst.de>
Cc: Roland Dreier <roland@purestorage.com>
Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>
drivers/target/target_core_pr.c

index ffbe0ea..d7101a4 100644 (file)
@@ -2604,7 +2604,7 @@ core_scsi3_emulate_pro_release(struct se_cmd *cmd, int type, int scope,
                 * No persistent reservation, return GOOD status.
                 */
                spin_unlock(&dev->dev_reservation_lock);
-               return 0;
+               goto out_put_pr_reg;
        }
        if ((pr_res_holder->pr_res_type == PR_TYPE_WRITE_EXCLUSIVE_ALLREG) ||
            (pr_res_holder->pr_res_type == PR_TYPE_EXCLUSIVE_ACCESS_ALLREG))