From: Juergen Gross Date: Mon, 8 Feb 2016 14:30:18 +0000 (+0100) Subject: xen/scsiback: correct frontend counting X-Git-Tag: v4.1.12-92~158^2~11^2~2 X-Git-Url: https://www.infradead.org/git/?a=commitdiff_plain;h=49c97a3e1e4fa61d7ccd042a9a4eaf68fd0d270c;p=users%2Fjedix%2Flinux-maple.git xen/scsiback: correct frontend counting When adding a new frontend to xen-scsiback don't decrement the number of active frontends in case of no error. Doing so results in a failure when trying to remove the xen-pvscsi nexus even if no domain is using it. Signed-off-by: Juergen Gross Reviewed-by: Boris Ostrovsky Cc: stable@vger.kernel.org Signed-off-by: David Vrabel (cherry picked from commit f285aa8db7cc4432c1a03f8b55ff34fe96317c11) Signed-off-by: Daniel Kiper --- diff --git a/drivers/xen/xen-scsiback.c b/drivers/xen/xen-scsiback.c index 5099fdfba55b9..24094882b98ce 100644 --- a/drivers/xen/xen-scsiback.c +++ b/drivers/xen/xen-scsiback.c @@ -941,12 +941,12 @@ out: spin_unlock_irqrestore(&info->v2p_lock, flags); out_free: - mutex_lock(&tpg->tv_tpg_mutex); - tpg->tv_tpg_fe_count--; - mutex_unlock(&tpg->tv_tpg_mutex); - - if (err) + if (err) { + mutex_lock(&tpg->tv_tpg_mutex); + tpg->tv_tpg_fe_count--; + mutex_unlock(&tpg->tv_tpg_mutex); kfree(new); + } return err; }