Linux Headquarters
[ Register ]
[ About us ] [ Home Page ]

Advertisement
[ Kernel ] [ Documentation ] [ Links ] [ Books ]

Advertisement

Kernel v2.6.25 /block/blktrace.c

Filename:/block/blktrace.c
Lines Added:14
Lines Deleted:10
Also changed in: (Previous) 2.6.25-rc9  2.6.25-rc8  2.6.25-rc7  2.6.25-rc6  2.6.25-rc5  2.6.25-rc4 
(Following) 2.6.26-rc2-git3  2.6.26-rc2-git4  2.6.26-rc2-git5  2.6.26-rc3  2.6.26-rc4  2.6.26-rc4-git2 

Location
[  2.6.25
  [  block
     o  blktrace.c

Patch

diff --git a/block/blktrace.c b/block/blktrace.c
index 9b4da4a..568588c 100644
--- a/block/blktrace.c
+++ b/block/blktrace.c
@@ -235,7 +235,7 @@ static void blk_trace_cleanup(struct blk_trace *bt)
    kfree(bt);
 }
 
-static int blk_trace_remove(struct request_queue *q)
+int blk_trace_remove(struct request_queue *q)
 {
    struct blk_trace *bt;
 
@@ -249,6 +249,7 @@ static int blk_trace_remove(struct request_queue *q)
 
    return 0;
 }
+EXPORT_SYMBOL_GPL(blk_trace_remove);
 
 static int blk_dropped_open(struct inode *inode, struct file *filp)
 {
@@ -316,18 +317,17 @@ static struct rchan_callbacks blk_relay_callbacks = {
 /*
  * Setup everything required to start tracing
  */
-int do_blk_trace_setup(struct request_queue *q, struct block_device *bdev,
+int do_blk_trace_setup(struct request_queue *q, char *name, dev_t dev,
          struct blk_user_trace_setup *buts)
 {
    struct blk_trace *old_bt, *bt = NULL;
    struct dentry *dir = NULL;
-   char b[BDEVNAME_SIZE];
    int ret, i;
 
    if (!buts->buf_size || !buts->buf_nr)
       return -EINVAL;
 
-   strcpy(buts->name, bdevname(bdev, b));
+   strcpy(buts->name, name);
 
    /*
     * some device names have larger paths - convert the slashes
@@ -352,7 +352,7 @@ int do_blk_trace_setup(struct request_queue *q, struct block_device *bdev,
       goto err;
 
    bt->dir = dir;
-   bt->dev = bdev->bd_dev;
+   bt->dev = dev;
    atomic_set(&bt->dropped, 0);
 
    ret = -EIO;
@@ -399,8 +399,8 @@ err:
    return ret;
 }
 
-static int blk_trace_setup(struct request_queue *q, struct block_device *bdev,
-            char __user *arg)
+int blk_trace_setup(struct request_queue *q, char *name, dev_t dev,
+          char __user *arg)
 {
    struct blk_user_trace_setup buts;
    int ret;
@@ -409,7 +409,7 @@ static int blk_trace_setup(struct request_queue *q, struct block_device *bdev,
    if (ret)
       return -EFAULT;
 
-   ret = do_blk_trace_setup(q, bdev, &buts);
+   ret = do_blk_trace_setup(q, name, dev, &buts);
    if (ret)
       return ret;
 
@@ -418,8 +418,9 @@ static int blk_trace_setup(struct request_queue *q, struct block_device *bdev,
 
    return 0;
 }
+EXPORT_SYMBOL_GPL(blk_trace_setup);
 
-static int blk_trace_startstop(struct request_queue *q, int start)
+int blk_trace_startstop(struct request_queue *q, int start)
 {
    struct blk_trace *bt;
    int ret;
@@ -452,6 +453,7 @@ static int blk_trace_startstop(struct request_queue *q, int start)
 
    return ret;
 }
+EXPORT_SYMBOL_GPL(blk_trace_startstop);
 
 /**
  * blk_trace_ioctl: - handle the ioctls associated with tracing
@@ -464,6 +466,7 @@ int blk_trace_ioctl(struct block_device *bdev, unsigned cmd, char __user *arg)
 {
    struct request_queue *q;
    int ret, start = 0;
+   char b[BDEVNAME_SIZE];
 
    q = bdev_get_queue(bdev);
    if (!q)
@@ -473,7 +476,8 @@ int blk_trace_ioctl(struct block_device *bdev, unsigned cmd, char __user *arg)
 
    switch (cmd) {
    case BLKTRACESETUP:
-      ret = blk_trace_setup(q, bdev, arg);
+      strcpy(b, bdevname(bdev, b));
+      ret = blk_trace_setup(q, b, bdev->bd_dev, arg);
       break;
    case BLKTRACESTART:
       start = 1;


Comments: webmaster (at) linuxhq.com.
Advertising: banners (at) linuxhq.com.
Compilation ©1998-2008 Linux Headquarters, Inc.