From 16d26a8ba17617a459c0306d899461e7ea3f000d Mon Sep 17 00:00:00 2001 From: Bart Van Assche Date: Mon, 10 Oct 2011 08:27:27 +0000 Subject: [PATCH] scst_vdisk, vdev_sysfs_process_get_filename(): Make sure that dev->dev_unregistering is reread from memory in each loop iteration. Note: the now removed "(volatile bool)" cast did not have any effect. git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@3894 d57e44dd-8a1f-0410-8b47-8ef2f437770f --- scst/src/dev_handlers/scst_vdisk.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/scst/src/dev_handlers/scst_vdisk.c b/scst/src/dev_handlers/scst_vdisk.c index 8c351f193..f7db37243 100644 --- a/scst/src/dev_handlers/scst_vdisk.c +++ b/scst/src/dev_handlers/scst_vdisk.c @@ -4432,7 +4432,8 @@ static int vdev_sysfs_process_get_filename(struct scst_sysfs_work_item *work) * under scst_vdisk_mutex. */ while (!mutex_trylock(&scst_vdisk_mutex)) { - if ((volatile bool)(dev->dev_unregistering)) { + smp_mb(); + if (dev->dev_unregistering) { TRACE_MGMT_DBG("Skipping being unregistered dev %s", dev->virt_name); res = -ENOENT;