Sysfs entries for logical drives need to be removed when a drive is
deleted during driver cleanup.
Signed-off-by: Andrew Patterson <andrew.patterson@hp.com>
Signed-off-by: Stephen M. Cameron <scameron@beardog.cce.hp.com>
Acked-by: Mike Miller <mike.miller@hp.com>
Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
                        h->drv[i].busy_configuring = 1;
                        spin_unlock_irqrestore(CCISS_LOCK(h->ctlr), flags);
                        return_code = deregister_disk(h, i, 1);
-                       cciss_destroy_ld_sysfs_entry(&h->drv[i]);
                        h->drv[i].busy_configuring = 0;
                }
        }
                                 * indicate that this element of the drive
                                 * array is free.
                                 */
+       cciss_destroy_ld_sysfs_entry(drv);
 
        if (clear_all) {
                /* check to see if it was the last disk */
                        if (q)
                                blk_cleanup_queue(q);
                }
+               if (hba[i]->drv[j].raid_level != -1)
+                       cciss_destroy_ld_sysfs_entry(&hba[i]->drv[j]);
+
        }
 
 #ifdef CONFIG_CISS_SCSI_TAPE