lkml.org 
[lkml]   [2005]   [Nov]   [7]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subject[PATCH 6/8] Cleanup slabinfo_write()
    Cleanup slabinfo_write().

    mcd@arrakis:~/linux/source/linux-2.6.14+slab_cleanup/patches $ diffstat
    slabinfo_write.patch
    slab.c | 23 +++++++++--------------
    1 files changed, 9 insertions(+), 14 deletions(-)

    -Matt
    Some cleanup for slabinfo_write():

    * Set 'res' at declaration instead of later in the function.
    * Move an if statement that clearly only needs to be evaluated once
    above and outside the loop where it was.
    * Move a second if statement into a loop, where it belongs.

    Index: linux-2.6.14+slab_cleanup/mm/slab.c
    ===================================================================
    --- linux-2.6.14+slab_cleanup.orig/mm/slab.c 2005-11-07 15:59:14.091887752 -0800
    +++ linux-2.6.14+slab_cleanup/mm/slab.c 2005-11-07 16:00:09.005539608 -0800
    @@ -3533,7 +3533,7 @@ ssize_t slabinfo_write(struct file *file
    size_t count, loff_t *ppos)
    {
    char kbuf[MAX_SLABINFO_WRITE+1], *tmp;
    - int limit, batchcount, shared, res;
    + int limit, batchcount, shared, res = -EINVAL;
    struct list_head *p;

    if (count > MAX_SLABINFO_WRITE)
    @@ -3549,27 +3549,22 @@ ssize_t slabinfo_write(struct file *file
    tmp++;
    if (sscanf(tmp, " %d %d %d", &limit, &batchcount, &shared) != 3)
    return -EINVAL;
    + if (limit < 1 || batchcount < 1 || batchcount > limit || shared < 0)
    + return 0;

    /* Find the cache in the chain of caches. */
    down(&cache_chain_sem);
    - res = -EINVAL;
    list_for_each(p,&cache_chain) {
    kmem_cache_t *cachep = list_entry(p, kmem_cache_t, next);
    + if (strcmp(cachep->name, kbuf))
    + continue;

    - if (!strcmp(cachep->name, kbuf)) {
    - if (limit < 1 || batchcount < 1 ||
    - batchcount > limit || shared < 0) {
    - res = 0;
    - } else {
    - res = do_tune_cpucache(cachep, limit,
    - batchcount, shared);
    - }
    - break;
    - }
    + res = do_tune_cpucache(cachep, limit, batchcount, shared);
    + if (res >= 0)
    + res = count;
    + break;
    }
    up(&cache_chain_sem);
    - if (res >= 0)
    - res = count;
    return res;
    }
    #endif /* CONFIG_PROC_FS */
    \
     
     \ /
      Last update: 2005-11-08 01:59    [W:0.020 / U:93.736 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site