Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 107917
b: refs/heads/master
c: eece695
h: refs/heads/master
i:
  107915: ba0b2be
v: v3
  • Loading branch information
Mike Miller authored and Jens Axboe committed Aug 6, 2008
1 parent e1e40c2 commit 4593de7
Show file tree
Hide file tree
Showing 2 changed files with 10 additions and 7 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 6ae5ce8e8d4de666f31286808d2285aa6a50fa40
refs/heads/master: eece695f8bf9d1aacf3a119ab8e21db31948e40b
15 changes: 9 additions & 6 deletions trunk/drivers/block/cciss.c
Original file line number Diff line number Diff line change
Expand Up @@ -1533,15 +1533,18 @@ static void cciss_update_drive_info(int ctlr, int drv_index, int first_time)
* where new drives will be added. If the index to be returned is greater
* than the highest_lun index for the controller then highest_lun is set
* to this new index. If there are no available indexes then -1 is returned.
* "controller_node" is used to know if this is a real logical drive, or just
* the controller node, which determines if this counts towards highest_lun.
*/
static int cciss_find_free_drive_index(int ctlr)
static int cciss_find_free_drive_index(int ctlr, int controller_node)
{
int i;

for (i = 0; i < CISS_MAX_LUN; i++) {
if (hba[ctlr]->drv[i].raid_level == -1) {
if (i > hba[ctlr]->highest_lun)
hba[ctlr]->highest_lun = i;
if (!controller_node)
hba[ctlr]->highest_lun = i;
return i;
}
}
Expand All @@ -1557,11 +1560,11 @@ static int cciss_find_free_drive_index(int ctlr)
* a means to talk to the controller in case no logical
* drives have yet been configured.
*/
static int cciss_add_gendisk(ctlr_info_t *h, __u32 lunid)
static int cciss_add_gendisk(ctlr_info_t *h, __u32 lunid, int controller_node)
{
int drv_index;

drv_index = cciss_find_free_drive_index(h->ctlr);
drv_index = cciss_find_free_drive_index(h->ctlr, controller_node);
if (drv_index == -1)
return -1;
/*Check if the gendisk needs to be allocated */
Expand Down Expand Up @@ -1598,7 +1601,7 @@ static void cciss_add_controller_node(ctlr_info_t *h)
if (h->gendisk[0] != NULL) /* already did this? Then bail. */
return;

drv_index = cciss_add_gendisk(h, 0);
drv_index = cciss_add_gendisk(h, 0, 1);
if (drv_index == -1) {
printk(KERN_WARNING "cciss%d: could not "
"add disk 0.\n", h->ctlr);
Expand Down Expand Up @@ -1732,7 +1735,7 @@ static int rebuild_lun_table(ctlr_info_t *h, int first_time)

/* check if the drive was found already in the array */
if (!drv_found) {
drv_index = cciss_add_gendisk(h, lunid);
drv_index = cciss_add_gendisk(h, lunid, 0);
if (drv_index == -1)
goto freeret;
}
Expand Down

0 comments on commit 4593de7

Please sign in to comment.