WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-devel

[Xen-devel] [PATCH 7 of 7] blktap: Remove passthrough mode

To: Xen <xen-devel@xxxxxxxxxxxxxxxxxxx>
Subject: [Xen-devel] [PATCH 7 of 7] blktap: Remove passthrough mode
From: Daniel Stodden <daniel.stodden@xxxxxxxxxx>
Date: Thu, 03 Jun 2010 03:12:39 -0000
Cc: Jeremy Fitzhardinge <jeremy@xxxxxxxx>
Delivery-date: Wed, 02 Jun 2010 20:19:15 -0700
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
In-reply-to: <patchbomb.1275534752@xxxxxxxxxxxxxxxxxxxxxxx>
List-help: <mailto:xen-devel-request@lists.xensource.com?subject=help>
List-id: Xen developer discussion <xen-devel.lists.xensource.com>
List-post: <mailto:xen-devel@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=unsubscribe>
References: <patchbomb.1275534752@xxxxxxxxxxxxxxxxxxxxxxx>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
User-agent: Mercurial-patchbomb/1.4.3
blktap: Remove passthrough mode.

Signed-off-by: Jake Wires <jake.wires@xxxxxxxxxx>
Signed-off-by: Daniel Stodden <daniel.stodden@xxxxxxxxxx>

diff -r 152ee0de9646 -r cc3749a5f7e9 drivers/xen/blktap/blktap.h
--- a/drivers/xen/blktap/blktap.h       Wed Jun 02 19:45:25 2010 -0700
+++ b/drivers/xen/blktap/blktap.h       Wed Jun 02 19:45:25 2010 -0700
@@ -9,8 +9,6 @@
 #include <xen/blkif.h>
 #include <xen/grant_table.h>
 
-//#define ENABLE_PASSTHROUGH
-
 extern int blktap_debug_level;
 
 #define BTPRINTK(level, tag, force, _f, _a...)                         \
diff -r 152ee0de9646 -r cc3749a5f7e9 drivers/xen/blktap/device.c
--- a/drivers/xen/blktap/device.c       Wed Jun 02 19:45:25 2010 -0700
+++ b/drivers/xen/blktap/device.c       Wed Jun 02 19:45:25 2010 -0700
@@ -646,98 +646,6 @@
        return err;
 }
 
-#ifdef ENABLE_PASSTHROUGH
-#define rq_for_each_bio_safe(_bio, _tmp, _req)                         \
-       if ((_req)->bio)                                                \
-               for (_bio = (_req)->bio;                                \
-                    _bio && ((_tmp = _bio->bi_next) || 1);             \
-                    _bio = _tmp)
-
-static void
-blktap_device_forward_request(struct blktap *tap, struct request *req)
-{
-       struct bio *bio, *tmp;
-       struct blktap_device *dev;
-
-       dev = &tap->device;
-
-       rq_for_each_bio_safe(bio, tmp, req) {
-               bio->bi_bdev = dev->bdev;
-               submit_bio(bio->bi_rw, bio);
-       }
-}
-
-static void
-blktap_device_close_bdev(struct blktap *tap)
-{
-       struct blktap_device *dev;
-
-       dev = &tap->device;
-
-       if (dev->bdev)
-               blkdev_put(dev->bdev);
-
-       dev->bdev = NULL;
-       clear_bit(BLKTAP_PASSTHROUGH, &tap->dev_inuse);
-}
-
-static int
-blktap_device_open_bdev(struct blktap *tap, u32 pdev)
-{
-       struct block_device *bdev;
-       struct blktap_device *dev;
-
-       dev = &tap->device;
-
-       bdev = open_by_devnum(pdev, FMODE_WRITE);
-       if (IS_ERR(bdev)) {
-               BTERR("opening device %x:%x failed: %ld\n",
-                     MAJOR(pdev), MINOR(pdev), PTR_ERR(bdev));
-               return PTR_ERR(bdev);
-       }
-
-       if (!bdev->bd_disk) {
-               BTERR("device %x:%x doesn't exist\n",
-                     MAJOR(pdev), MINOR(pdev));
-               blkdev_put(dev->bdev);
-               return -ENOENT;
-       }
-
-       dev->bdev = bdev;
-       set_bit(BLKTAP_PASSTHROUGH, &tap->dev_inuse);
-
-       /* TODO: readjust queue parameters */
-
-       BTINFO("set device %d to passthrough on %x:%x\n",
-              tap->minor, MAJOR(pdev), MINOR(pdev));
-
-       return 0;
-}
-
-int
-blktap_device_enable_passthrough(struct blktap *tap,
-                                unsigned major, unsigned minor)
-{
-       u32 pdev;
-       struct blktap_device *dev;
-
-       dev  = &tap->device;
-       pdev = MKDEV(major, minor);
-
-       if (!test_bit(BLKTAP_PAUSED, &tap->dev_inuse))
-               return -EINVAL;
-
-       if (dev->bdev) {
-               if (pdev)
-                       return -EINVAL;
-               blktap_device_close_bdev(tap);
-               return 0;
-       }
-
-       return blktap_device_open_bdev(tap, pdev);
-}
-#endif
-
 /*
  * called from tapdisk context
  */
@@ -769,14 +677,6 @@
                        continue;
                }
 
-#ifdef ENABLE_PASSTHROUGH
-               if (test_bit(BLKTAP_PASSTHROUGH, &tap->dev_inuse)) {
-                       blkdev_dequeue_request(req);
-                       blktap_device_forward_request(tap, req);
-                       continue;
-               }
-#endif
-
                if (RING_FULL(&ring->ring)) {
                wait:
                        /* Avoid pointless unplugs. */
@@ -927,11 +827,6 @@
        dev->gd = NULL;
        spin_unlock_irq(&dev->lock);
 
-#ifdef ENABLE_PASSTHROUGH
-       if (dev->bdev)
-               blktap_device_close_bdev(tap);
-#endif
-
        del_gendisk(gd);
        blk_cleanup_queue(gd->queue);
        put_disk(gd);
diff -r 152ee0de9646 -r cc3749a5f7e9 drivers/xen/blktap/sysfs.c
--- a/drivers/xen/blktap/sysfs.c        Wed Jun 02 19:45:25 2010 -0700
+++ b/drivers/xen/blktap/sysfs.c        Wed Jun 02 19:45:25 2010 -0700
@@ -114,50 +114,6 @@
 }
 CLASS_DEVICE_ATTR(remove, S_IWUSR, NULL, blktap_sysfs_remove_device);
 
-#ifdef ENABLE_PASSTHROUGH
-static ssize_t
-blktap_sysfs_enable_passthrough(struct device *dev,
-                               const char *buf, size_t size)
-{
-       int err;
-       unsigned major, minor;
-       struct blktap *tap = (struct blktap *)dev_get_drvdata(dev);
-
-       BTINFO("passthrough request enabled\n");
-
-       blktap_sysfs_enter(tap);
-
-       if (!tap->ring.dev ||
-           test_bit(BLKTAP_SHUTDOWN_REQUESTED, &tap->dev_inuse)) {
-               err = -ENODEV;
-               goto out;
-       }
-
-       if (!test_bit(BLKTAP_PAUSED, &tap->dev_inuse)) {
-               err = -EINVAL;
-               goto out;
-       }
-
-       if (test_bit(BLKTAP_PASSTHROUGH, &tap->dev_inuse)) {
-               err = -EINVAL;
-               goto out;
-       }
-
-       err = sscanf(buf, "%x:%x", &major, &minor);
-       if (err != 2) {
-               err = -EINVAL;
-               goto out;
-       }
-
-       err = blktap_device_enable_passthrough(tap, major, minor);
-
-out:
-       blktap_sysfs_exit(tap);
-       BTDBG("returning %d\n", (err ? err : size));
-       return (err ? err : size);
-}
-#endif
-
 static ssize_t
 blktap_sysfs_debug_device(struct device *dev, struct device_attribute *attr, 
char *buf)
 {
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel