scsi_debug: take sdebug_host_list_lock when changing capacity
authorEwan D. Milne <emilne@redhat.com>
Thu, 4 Dec 2014 16:49:26 +0000 (11:49 -0500)
committerChristoph Hellwig <hch@lst.de>
Mon, 15 Dec 2014 12:34:26 +0000 (13:34 +0100)
All other traversals of the sdebug_host_list take the lock.

Signed-off-by: Ewan D. Milne <emilne@redhat.com>
Acked-by: Douglas Gilbert <dgilbert@interlog.com>
Signed-off-by: Christoph Hellwig <hch@lst.de>
drivers/scsi/scsi_debug.c

index 2e32a4c..0d0e059 100644 (file)
@@ -4438,6 +4438,7 @@ static ssize_t virtual_gb_store(struct device_driver *ddp, const char *buf,
                        struct sdebug_host_info *sdhp;
                        struct sdebug_dev_info *dp;
 
+                       spin_lock(&sdebug_host_list_lock);
                        list_for_each_entry(sdhp, &sdebug_host_list,
                                            host_list) {
                                list_for_each_entry(dp, &sdhp->dev_info_list,
@@ -4446,6 +4447,7 @@ static ssize_t virtual_gb_store(struct device_driver *ddp, const char *buf,
                                                dp->uas_bm);
                                }
                        }
+                       spin_unlock(&sdebug_host_list_lock);
                }
                return count;
        }