hpsa: remove incorrect BUG_ONs checking for raid offload enable
In set_encrypt_ioaccel2() and in hpsa_scsi_ioaccel_raid_map there were BUG_ONs that looked like this: BUG_ON(!(dev->offload_config && dev->offload_enabled)); But, In hpsa_ack_ctlr_events() we have this, /* Stop sending new RAID offload reqs via the IO accelerator */ scsi_block_requests(h->scsi_host); for (i = 0; i < h->ndevices; i++) h->dev[i]->offload_enabled = 0; hpsa_drain_accel_commands(h); So, we set offload_enabled = 0 for all drives, then do this drain_accel_commands, so that means accel commands could still be in flight, ie. perhaps having just been submitted into hpsa_scsi_ioaccel_raid_map concurrent with ->offload_enabled having just been set to zero. Reviewed-by: Scott Teel <scott.teel@pmcs.com> Signed-off-by: Don Brace <don.brace@pmcs.com> Signed-off-by: Christoph Hellwig <hch@lst.de>
This commit is contained in:
Родитель
c2b0acde06
Коммит
6f99a9160f
|
@ -3456,8 +3456,6 @@ static void set_encrypt_ioaccel2(struct ctlr_info *h,
|
|||
struct raid_map_data *map = &dev->raid_map;
|
||||
u64 first_block;
|
||||
|
||||
BUG_ON(!(dev->offload_config && dev->offload_enabled));
|
||||
|
||||
/* Are we doing encryption on this device */
|
||||
if (!(le16_to_cpu(map->flags) & RAID_MAP_FLAG_ENCRYPT_ON))
|
||||
return;
|
||||
|
@ -3688,8 +3686,6 @@ static int hpsa_scsi_ioaccel_raid_map(struct ctlr_info *h,
|
|||
#endif
|
||||
int offload_to_mirror;
|
||||
|
||||
BUG_ON(!(dev->offload_config && dev->offload_enabled));
|
||||
|
||||
/* check for valid opcode, get LBA and block count */
|
||||
switch (cmd->cmnd[0]) {
|
||||
case WRITE_6:
|
||||
|
|
Загрузка…
Ссылка в новой задаче