cciss: simplify parameters to deregister_disk function
Simplify parameters to deregister_disk function. Signed-off-by: Stephen M. Cameron <scameron@beardog.cca.cpqcorp.net> Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
This commit is contained in:
parent
62c1fe9d9f
commit
a0ea862291
1 changed files with 9 additions and 7 deletions
|
@ -164,7 +164,7 @@ static int cciss_getgeo(struct block_device *bdev, struct hd_geometry *geo);
|
||||||
|
|
||||||
static int cciss_revalidate(struct gendisk *disk);
|
static int cciss_revalidate(struct gendisk *disk);
|
||||||
static int rebuild_lun_table(ctlr_info_t *h, int first_time);
|
static int rebuild_lun_table(ctlr_info_t *h, int first_time);
|
||||||
static int deregister_disk(struct gendisk *disk, drive_info_struct *drv,
|
static int deregister_disk(ctlr_info_t *h, int drv_index,
|
||||||
int clear_all);
|
int clear_all);
|
||||||
|
|
||||||
static void cciss_read_capacity(int ctlr, int logvol, int withirq,
|
static void cciss_read_capacity(int ctlr, int logvol, int withirq,
|
||||||
|
@ -1479,8 +1479,7 @@ static void cciss_update_drive_info(int ctlr, int drv_index, int first_time)
|
||||||
* which keeps the interrupt handler from starting
|
* which keeps the interrupt handler from starting
|
||||||
* the queue.
|
* the queue.
|
||||||
*/
|
*/
|
||||||
ret = deregister_disk(h->gendisk[drv_index],
|
ret = deregister_disk(h, drv_index, 0);
|
||||||
&h->drv[drv_index], 0);
|
|
||||||
h->drv[drv_index].busy_configuring = 0;
|
h->drv[drv_index].busy_configuring = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1698,8 +1697,7 @@ static int rebuild_lun_table(ctlr_info_t *h, int first_time)
|
||||||
spin_lock_irqsave(CCISS_LOCK(h->ctlr), flags);
|
spin_lock_irqsave(CCISS_LOCK(h->ctlr), flags);
|
||||||
h->drv[i].busy_configuring = 1;
|
h->drv[i].busy_configuring = 1;
|
||||||
spin_unlock_irqrestore(CCISS_LOCK(h->ctlr), flags);
|
spin_unlock_irqrestore(CCISS_LOCK(h->ctlr), flags);
|
||||||
return_code = deregister_disk(h->gendisk[i],
|
return_code = deregister_disk(h, i, 1);
|
||||||
&h->drv[i], 1);
|
|
||||||
h->drv[i].busy_configuring = 0;
|
h->drv[i].busy_configuring = 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1769,15 +1767,19 @@ static int rebuild_lun_table(ctlr_info_t *h, int first_time)
|
||||||
* the highest_lun should be left unchanged and the LunID
|
* the highest_lun should be left unchanged and the LunID
|
||||||
* should not be cleared.
|
* should not be cleared.
|
||||||
*/
|
*/
|
||||||
static int deregister_disk(struct gendisk *disk, drive_info_struct *drv,
|
static int deregister_disk(ctlr_info_t *h, int drv_index,
|
||||||
int clear_all)
|
int clear_all)
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
ctlr_info_t *h = get_host(disk);
|
struct gendisk *disk;
|
||||||
|
drive_info_struct *drv;
|
||||||
|
|
||||||
if (!capable(CAP_SYS_RAWIO))
|
if (!capable(CAP_SYS_RAWIO))
|
||||||
return -EPERM;
|
return -EPERM;
|
||||||
|
|
||||||
|
drv = &h->drv[drv_index];
|
||||||
|
disk = h->gendisk[drv_index];
|
||||||
|
|
||||||
/* make sure logical volume is NOT is use */
|
/* make sure logical volume is NOT is use */
|
||||||
if (clear_all || (h->gendisk[0] == disk)) {
|
if (clear_all || (h->gendisk[0] == disk)) {
|
||||||
if (drv->usage_count > 1)
|
if (drv->usage_count > 1)
|
||||||
|
|
Loading…
Reference in a new issue