[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-devel] [PATCH] remove use of get_gendisk in blkfront



remove use of get_gendisk in blkfront
gen_gendisk is no long exported by 2.6 kernel. this patch remove the call of get_gendisk by saving the gd point in blkfront_info in vbd.c so that blkfront can be built as kerenl module.

Signed-off-by: Xiaofeng Ling <xiaofeng.ling@xxxxxxxxx>

diff -r 864434653dab linux-2.6-xen-sparse/drivers/xen/blkfront/blkfront.c
--- a/linux-2.6-xen-sparse/drivers/xen/blkfront/blkfront.c      
+++ b/linux-2.6-xen-sparse/drivers/xen/blkfront/blkfront.c
@@ -660,6 +651,7 @@
        info->vdevice = vdevice;
        info->connected = BLKIF_STATE_DISCONNECTED;
        info->mi = NULL;
+       info->gd = NULL;
        INIT_WORK(&info->work, blkif_restart_queue, (void *)info);
 
        info->shadow_free = 0;
diff -r 864434653dab linux-2.6-xen-sparse/drivers/xen/blkfront/block.h
--- a/linux-2.6-xen-sparse/drivers/xen/blkfront/block.h 
+++ b/linux-2.6-xen-sparse/drivers/xen/blkfront/block.h
@@ -115,6 +115,7 @@
        /* We watch the backend */
        struct xenbus_watch watch;
        dev_t dev;
+       struct gendisk *gd;
        int vdevice;
        blkif_vdev_t handle;
        int connected;
diff -r 864434653dab linux-2.6-xen-sparse/drivers/xen/blkfront/vbd.c
--- a/linux-2.6-xen-sparse/drivers/xen/blkfront/vbd.c
+++ b/linux-2.6-xen-sparse/drivers/xen/blkfront/vbd.c
@@ -266,6 +257,7 @@
                gd->flags |= GENHD_FL_CD;
 
        add_disk(gd);
+       info->gd = gd;
 
        return 0;
 
@@ -298,23 +290,19 @@
 void
 xlvbd_del(struct blkfront_info *info)
 {
-       struct block_device *bd;
        struct gendisk *gd;
        int unused;
        request_queue_t *rq;
 
-       bd = bdget(info->dev);
-       if (bd == NULL)
+       gd = info->gd;
+       if (gd == NULL)
                return;
 
-       gd = get_gendisk(info->dev, &unused);
        rq = gd->queue;
-
        del_gendisk(gd);
        put_disk(gd);
        xlbd_put_major_info(info->mi);
        info->mi = NULL;
        blk_cleanup_queue(rq);
 
-       bdput(bd);
-}
+}
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.