lkml.org 
[lkml]   [2008]   [Jul]   [22]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 37/79] block: make proc files seq_start use the class_find_device()
    Date
    Use the proper class iterator function instead of mucking around in the
    internals of the class structures.

    Cc: Kay Sievers <kay.sievers@vrfy.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
    ---
    block/genhd.c | 31 +++++++++++++++++--------------
    1 files changed, 17 insertions(+), 14 deletions(-)

    diff --git a/block/genhd.c b/block/genhd.c
    index 68a5f28..f03bdad 100644
    --- a/block/genhd.c
    +++ b/block/genhd.c
    @@ -291,18 +291,25 @@ void __init printk_all_partitions(void)

    #ifdef CONFIG_PROC_FS
    /* iterator */
    +static int find_start(struct device *dev, void *data)
    +{
    + loff_t k = *(loff_t *)data;
    +
    + if (dev->type != &disk_type)
    + return 0;
    + if (!k--)
    + return 1;
    + return 0;
    +}
    +
    static void *part_start(struct seq_file *part, loff_t *pos)
    {
    - loff_t k = *pos;
    struct device *dev;

    mutex_lock(&block_class_lock);
    - list_for_each_entry(dev, &block_class.devices, node) {
    - if (dev->type != &disk_type)
    - continue;
    - if (!k--)
    - return dev_to_disk(dev);
    - }
    + dev = class_find_device(&block_class, NULL, (void *)pos, find_start);
    + if (dev)
    + return dev_to_disk(dev);
    return NULL;
    }

    @@ -555,16 +562,12 @@ static struct device_type disk_type = {

    static void *diskstats_start(struct seq_file *part, loff_t *pos)
    {
    - loff_t k = *pos;
    struct device *dev;

    mutex_lock(&block_class_lock);
    - list_for_each_entry(dev, &block_class.devices, node) {
    - if (dev->type != &disk_type)
    - continue;
    - if (!k--)
    - return dev_to_disk(dev);
    - }
    + dev = class_find_device(&block_class, NULL, (void *)pos, find_start);
    + if (dev)
    + return dev_to_disk(dev);
    return NULL;
    }

    --
    1.5.6.3


    \
     
     \ /
      Last update: 2008-07-22 07:37    [W:0.022 / U:0.412 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site