summaryrefslogtreecommitdiff
path: root/kernel/spinlock.c
diff options
context:
space:
mode:
authorJames Bottomley <James.Bottomley@suse.de>2009-11-20 01:48:29 +0300
committerJames Bottomley <James.Bottomley@suse.de>2009-11-26 18:43:39 +0300
commit860dc73608a091e0b325218acc2701709d5f221a (patch)
tree2527b226e1991c459ac02de4a6ba5c98a4639add /kernel/spinlock.c
parent3bf3583b6a49c318f7ed350862d7a217b500e71c (diff)
downloadlinux-860dc73608a091e0b325218acc2701709d5f221a.tar.xz
[SCSI] fix async scan add/remove race resulting in an oops
Async scanning introduced a very wide window where the SCSI device is up and running but has not yet been added to sysfs. We delay the adding until all scans have completed to retain the same ordering as sync scanning. This delay in visibility causes an oops if a device is removed before we make it visible because the SCSI removal routines have an inbuilt assumption that if a device is in SDEV_RUNNING state, it must be visible (which is not necessarily true in the async scanning case). Fix this by introducing an additional is_visible flag which we can use to condition the tear down so we do the right thing for running but not yet made visible. Reported-by: Alexey Kuznetsov <kuznet@ms2.inr.ac.ru> Signed-off-by: James Bottomley <James.Bottomley@suse.de>
Diffstat (limited to 'kernel/spinlock.c')
0 files changed, 0 insertions, 0 deletions