cciss: Don't check h->busy_initializing in cciss_open().
Don't check h->busy_initializing in cciss_open(). Open won't be called before things are ready, but h->busy_initializing won't be unset until after the initial rebuild_lun_table is finished. But, to read the partitions, cciss_open will be called for each logical drive during rebuild_lun_table. If cciss_open checks h->busy_initializing, then the reading of the partition information during the initial rebuild_lun_table will fail, which is especially bad news if it happens to be your boot device. Signed-off-by: Stephen M. Cameron <scameron@beardog.cce.hp.com> Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
This commit is contained in:
Родитель
39ccf9a645
Коммит
2e043986d5
|
@ -830,7 +830,7 @@ static int cciss_open(struct block_device *bdev, fmode_t mode)
|
||||||
printk(KERN_DEBUG "cciss_open %s\n", bdev->bd_disk->disk_name);
|
printk(KERN_DEBUG "cciss_open %s\n", bdev->bd_disk->disk_name);
|
||||||
#endif /* CCISS_DEBUG */
|
#endif /* CCISS_DEBUG */
|
||||||
|
|
||||||
if (host->busy_initializing || drv->busy_configuring)
|
if (drv->busy_configuring)
|
||||||
return -EBUSY;
|
return -EBUSY;
|
||||||
/*
|
/*
|
||||||
* Root is allowed to open raw volume zero even if it's not configured
|
* Root is allowed to open raw volume zero even if it's not configured
|
||||||
|
|
Загрузка…
Ссылка в новой задаче