aboutsummaryrefslogtreecommitdiffstats
path: root/lib/mpi/mpi-pow.c
diff options
context:
space:
mode:
authorSreekanth Reddy <[email protected]>2016-10-28 04:39:12 +0000
committerMartin K. Petersen <[email protected]>2016-11-01 17:31:22 +0000
commit6d3a56ed098566bc83d6c2afa74b4199c12ea074 (patch)
tree9521099c878b861cdf965a6bae0c48dbe9ab00e3 /lib/mpi/mpi-pow.c
parentscsi: scsi_dh_alua: fix missing kref_put() in alua_rtpg_work() (diff)
downloadkernel-6d3a56ed098566bc83d6c2afa74b4199c12ea074.tar.gz
kernel-6d3a56ed098566bc83d6c2afa74b4199c12ea074.zip
scsi: mpt3sas: Fix for block device of raid exists even after deleting raid disk
While merging mpt3sas & mpt2sas code, we added the is_warpdrive check condition on the wrong line --------------------------------------------------------------------------- scsih_target_alloc(struct scsi_target *starget) sas_target_priv_data->handle = raid_device->handle; sas_target_priv_data->sas_address = raid_device->wwid; sas_target_priv_data->flags |= MPT_TARGET_FLAGS_VOLUME; - raid_device->starget = starget; + sas_target_priv_data->raid_device = raid_device; + if (ioc->is_warpdrive) + raid_device->starget = starget; } spin_unlock_irqrestore(&ioc->raid_device_lock, flags); return 0; ------------------------------------------------------------------------------ That check should be for the line sas_target_priv_data->raid_device = raid_device; Due to above hunk, we are not initializing raid_device's starget for raid volumes, and so during raid disk deletion driver is not calling scsi_remove_target() API as driver observes starget field of raid_device's structure as NULL. Signed-off-by: Sreekanth Reddy <[email protected]> Cc: <[email protected]> # v4.4+ Fixes: 7786ab6aff9 ("mpt3sas: Ported WarpDrive product SSS6200 support") Signed-off-by: Martin K. Petersen <[email protected]>
Diffstat (limited to 'lib/mpi/mpi-pow.c')
0 files changed, 0 insertions, 0 deletions