lkml.org 
[lkml]   [2012]   [Jun]   [19]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subject[PATCH 09/10] zcache: introduce get_zcache_client
    Introduce get_zcache_client to remove the common code

    Signed-off-by: Xiao Guangrong <xiaoguangrong@linux.vnet.ibm.com>
    ---
    drivers/staging/zcache/zcache-main.c | 46 +++++++++++++++++-----------------
    1 files changed, 23 insertions(+), 23 deletions(-)

    diff --git a/drivers/staging/zcache/zcache-main.c b/drivers/staging/zcache/zcache-main.c
    index 2ee55c4..542f181 100644
    --- a/drivers/staging/zcache/zcache-main.c
    +++ b/drivers/staging/zcache/zcache-main.c
    @@ -70,6 +70,17 @@ static inline uint16_t get_client_id_from_client(struct zcache_client *cli)
    return cli - &zcache_clients[0];
    }

    +static struct zcache_client *get_zcache_client(uint16_t cli_id)
    +{
    + if (cli_id == LOCAL_CLIENT)
    + return &zcache_host;
    +
    + if ((unsigned int)cli_id < MAX_CLIENTS)
    + return &zcache_clients[cli_id];
    +
    + return NULL;
    +}
    +
    static inline bool is_local_client(struct zcache_client *cli)
    {
    return cli == &zcache_host;
    @@ -929,15 +940,9 @@ static struct tmem_pool *zcache_get_pool_by_id(uint16_t cli_id, uint16_t poolid)
    struct tmem_pool *pool = NULL;
    struct zcache_client *cli = NULL;

    - if (cli_id == LOCAL_CLIENT)
    - cli = &zcache_host;
    - else {
    - if (cli_id >= MAX_CLIENTS)
    - goto out;
    - cli = &zcache_clients[cli_id];
    - if (cli == NULL)
    - goto out;
    - }
    + cli = get_zcache_client(cli_id);
    + if (!cli)
    + goto out;

    atomic_inc(&cli->refcount);
    if (poolid < MAX_POOLS_PER_CLIENT) {
    @@ -962,13 +967,11 @@ static void zcache_put_pool(struct tmem_pool *pool)

    int zcache_new_client(uint16_t cli_id)
    {
    - struct zcache_client *cli = NULL;
    + struct zcache_client *cli;
    int ret = -1;

    - if (cli_id == LOCAL_CLIENT)
    - cli = &zcache_host;
    - else if ((unsigned int)cli_id < MAX_CLIENTS)
    - cli = &zcache_clients[cli_id];
    + cli = get_zcache_client(cli_id);
    +
    if (cli == NULL)
    goto out;
    if (cli->allocated)
    @@ -1644,17 +1647,16 @@ static int zcache_flush_object(int cli_id, int pool_id,
    static int zcache_destroy_pool(int cli_id, int pool_id)
    {
    struct tmem_pool *pool = NULL;
    - struct zcache_client *cli = NULL;
    + struct zcache_client *cli;
    int ret = -1;

    if (pool_id < 0)
    goto out;
    - if (cli_id == LOCAL_CLIENT)
    - cli = &zcache_host;
    - else if ((unsigned int)cli_id < MAX_CLIENTS)
    - cli = &zcache_clients[cli_id];
    +
    + cli = get_zcache_client(cli_id);
    if (cli == NULL)
    goto out;
    +
    atomic_inc(&cli->refcount);
    pool = cli->tmem_pools[pool_id];
    if (pool == NULL)
    @@ -1680,12 +1682,10 @@ static int zcache_new_pool(uint16_t cli_id, uint32_t flags)
    struct tmem_pool *pool;
    struct zcache_client *cli = NULL;

    - if (cli_id == LOCAL_CLIENT)
    - cli = &zcache_host;
    - else if ((unsigned int)cli_id < MAX_CLIENTS)
    - cli = &zcache_clients[cli_id];
    + cli = get_zcache_client(cli_id);
    if (cli == NULL)
    goto out;
    +
    atomic_inc(&cli->refcount);
    pool = kmalloc(sizeof(struct tmem_pool), GFP_ATOMIC);
    if (pool == NULL) {
    --
    1.7.7.6


    \
     
     \ /
      Last update: 2012-06-19 11:21    [W:0.028 / U:60.828 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site