public inbox for linux-scsi@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH] ipr: Fix a race on multiple configuration changes
@ 2011-02-14 22:19 Kleber Sacilotto de Souza
  2011-02-15 14:00 ` Brian King
  0 siblings, 1 reply; 2+ messages in thread
From: Kleber Sacilotto de Souza @ 2011-02-14 22:19 UTC (permalink / raw)
  To: linux-scsi@vger.kernel.org

In a multiple configuration change scenario a remove notification can be
followed by an immediate add notification for the same device, which
will cause the device to be removed but never added back. This patch
fixes the problem by ensuring that in such situations the device will be
added back.

Signed-off-by: Kleber Sacilotto de Souza <klebers@linux.vnet.ibm.com>
---
 drivers/scsi/ipr.c |    7 +++++--
 1 files changed, 5 insertions(+), 2 deletions(-)

diff --git a/drivers/scsi/ipr.c b/drivers/scsi/ipr.c
index a8e24f0..1485767 100644
--- a/drivers/scsi/ipr.c
+++ b/drivers/scsi/ipr.c
@@ -1301,7 +1301,7 @@ static void ipr_handle_config_change(struct ipr_ioa_cfg *ioa_cfg,
 			ipr_clear_res_target(res);
 			list_move_tail(&res->queue, &ioa_cfg->free_res_q);
 		}
-	} else if (!res->sdev) {
+	} else if (!res->sdev || res->del_from_ml) {
 		res->add_to_ml = 1;
 		if (ioa_cfg->allow_ml_add_del)
 			schedule_work(&ioa_cfg->work_q);
@@ -3104,7 +3104,10 @@ restart:
 				did_work = 1;
 				sdev = res->sdev;
 				if (!scsi_device_get(sdev)) {
-					list_move_tail(&res->queue, &ioa_cfg->free_res_q);
+					if (!res->add_to_ml)
+						list_move_tail(&res->queue, &ioa_cfg->free_res_q);
+					else
+						res->del_from_ml = 0;
 					spin_unlock_irqrestore(ioa_cfg->host->host_lock, lock_flags);
 					scsi_remove_device(sdev);
 					scsi_device_put(sdev);
-- 
1.7.1


-- 
Kleber S. Souza
IBM Linux Technology Center


^ permalink raw reply related	[flat|nested] 2+ messages in thread

* Re: [PATCH] ipr: Fix a race on multiple configuration changes
  2011-02-14 22:19 [PATCH] ipr: Fix a race on multiple configuration changes Kleber Sacilotto de Souza
@ 2011-02-15 14:00 ` Brian King
  0 siblings, 0 replies; 2+ messages in thread
From: Brian King @ 2011-02-15 14:00 UTC (permalink / raw)
  To: Kleber Sacilotto de Souza; +Cc: linux-scsi@vger.kernel.org

Acked-by: Brian King <brking@linux.vnet.ibm.com>

-- 
Brian King
Linux on Power Virtualization
IBM Linux Technology Center



^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2011-02-15 14:00 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-02-14 22:19 [PATCH] ipr: Fix a race on multiple configuration changes Kleber Sacilotto de Souza
2011-02-15 14:00 ` Brian King

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox