lkml.org 
[lkml]   [2009]   [Sep]   [17]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 06/20] cciss: Rearrange logical drive sysfs code to make the "changing a disk" path work.
    Date
    Rearrange logical drive sysfs code to make the "changing a disk" path work.

    Signed-off-by: Stephen M. Cameron <scameron@beardog.cce.hp.com>
    ---

    drivers/block/cciss.c | 20 ++++++++++----------
    1 files changed, 10 insertions(+), 10 deletions(-)

    diff --git a/drivers/block/cciss.c b/drivers/block/cciss.c
    index 4f9ef49..557b958 100644
    --- a/drivers/block/cciss.c
    +++ b/drivers/block/cciss.c
    @@ -1915,9 +1915,10 @@ static int cciss_add_gendisk(ctlr_info_t *h, __u32 lunid, int controller_node)
    }
    }
    h->drv[drv_index].LunID = lunid;
    - if (cciss_create_ld_sysfs_entry(h, drv_index))
    - goto err_free_disk;
    -
    + if (h->drv[drv_index].dev == NULL) {
    + if (cciss_create_ld_sysfs_entry(h, drv_index))
    + goto err_free_disk;
    + }
    /* Don't need to mark this busy because nobody */
    /* else knows about this disk yet to contend */
    /* for access to it. */
    @@ -2144,8 +2145,10 @@ static int deregister_disk(ctlr_info_t *h, int drv_index,
    */
    if (h->gendisk[0] != disk) {
    struct request_queue *q = disk->queue;
    - if (disk->flags & GENHD_FL_UP)
    + if (disk->flags & GENHD_FL_UP) {
    + cciss_destroy_ld_sysfs_entry(h, drv_index);
    del_gendisk(disk);
    + }
    if (q) {
    blk_cleanup_queue(q);
    /* Set drv->queue to NULL so that we do not try
    @@ -2189,7 +2192,6 @@ static int deregister_disk(ctlr_info_t *h, int drv_index,
    * indicate that this element of the drive
    * array is free.
    */
    - cciss_destroy_ld_sysfs_entry(h, drv_index);

    if (clear_all) {
    /* check to see if it was the last disk */
    @@ -4307,15 +4309,13 @@ static void __devexit cciss_remove_one(struct pci_dev *pdev)
    if (disk) {
    struct request_queue *q = disk->queue;

    - if (disk->flags & GENHD_FL_UP)
    + if (disk->flags & GENHD_FL_UP) {
    + cciss_destroy_ld_sysfs_entry(hba[i], j);
    del_gendisk(disk);
    + }
    if (q)
    blk_cleanup_queue(q);
    }
    - if (hba[i]->drv[j].dev != NULL &&
    - (j == 0 || hba[i]->drv[j].raid_level != -1))
    - cciss_destroy_ld_sysfs_entry(hba[i], j);
    -
    }

    #ifdef CONFIG_CISS_SCSI_TAPE


    \
     
     \ /
      Last update: 2009-09-17 20:49    [W:0.024 / U:29.180 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site