|
@@ -1582,38 +1582,36 @@ static int deregister_disk(struct gendisk *disk, drive_info_struct *drv,
|
|
* allows us to delete disk zero but keep the controller registered.
|
|
* allows us to delete disk zero but keep the controller registered.
|
|
*/
|
|
*/
|
|
if (h->gendisk[0] != disk) {
|
|
if (h->gendisk[0] != disk) {
|
|
- if (disk) {
|
|
|
|
- struct request_queue *q = disk->queue;
|
|
|
|
- if (disk->flags & GENHD_FL_UP)
|
|
|
|
- del_gendisk(disk);
|
|
|
|
- if (q) {
|
|
|
|
- blk_cleanup_queue(q);
|
|
|
|
- /* Set drv->queue to NULL so that we do not try
|
|
|
|
- * to call blk_start_queue on this queue in the
|
|
|
|
- * interrupt handler
|
|
|
|
- */
|
|
|
|
- drv->queue = NULL;
|
|
|
|
- }
|
|
|
|
- /* If clear_all is set then we are deleting the logical
|
|
|
|
- * drive, not just refreshing its info. For drives
|
|
|
|
- * other than disk 0 we will call put_disk. We do not
|
|
|
|
- * do this for disk 0 as we need it to be able to
|
|
|
|
- * configure the controller.
|
|
|
|
|
|
+ struct request_queue *q = disk->queue;
|
|
|
|
+ if (disk->flags & GENHD_FL_UP)
|
|
|
|
+ del_gendisk(disk);
|
|
|
|
+ if (q) {
|
|
|
|
+ blk_cleanup_queue(q);
|
|
|
|
+ /* Set drv->queue to NULL so that we do not try
|
|
|
|
+ * to call blk_start_queue on this queue in the
|
|
|
|
+ * interrupt handler
|
|
|
|
+ */
|
|
|
|
+ drv->queue = NULL;
|
|
|
|
+ }
|
|
|
|
+ /* If clear_all is set then we are deleting the logical
|
|
|
|
+ * drive, not just refreshing its info. For drives
|
|
|
|
+ * other than disk 0 we will call put_disk. We do not
|
|
|
|
+ * do this for disk 0 as we need it to be able to
|
|
|
|
+ * configure the controller.
|
|
|
|
+ */
|
|
|
|
+ if (clear_all){
|
|
|
|
+ /* This isn't pretty, but we need to find the
|
|
|
|
+ * disk in our array and NULL our the pointer.
|
|
|
|
+ * This is so that we will call alloc_disk if
|
|
|
|
+ * this index is used again later.
|
|
*/
|
|
*/
|
|
- if (clear_all){
|
|
|
|
- /* This isn't pretty, but we need to find the
|
|
|
|
- * disk in our array and NULL our the pointer.
|
|
|
|
- * This is so that we will call alloc_disk if
|
|
|
|
- * this index is used again later.
|
|
|
|
- */
|
|
|
|
- for (i=0; i < CISS_MAX_LUN; i++){
|
|
|
|
- if(h->gendisk[i] == disk){
|
|
|
|
- h->gendisk[i] = NULL;
|
|
|
|
- break;
|
|
|
|
- }
|
|
|
|
|
|
+ for (i=0; i < CISS_MAX_LUN; i++){
|
|
|
|
+ if(h->gendisk[i] == disk){
|
|
|
|
+ h->gendisk[i] = NULL;
|
|
|
|
+ break;
|
|
}
|
|
}
|
|
- put_disk(disk);
|
|
|
|
}
|
|
}
|
|
|
|
+ put_disk(disk);
|
|
}
|
|
}
|
|
} else {
|
|
} else {
|
|
set_capacity(disk, 0);
|
|
set_capacity(disk, 0);
|