diff options
Diffstat (limited to 'xlators/features/changelog/src/changelog-barrier.c')
| -rw-r--r-- | xlators/features/changelog/src/changelog-barrier.c | 140 | 
1 files changed, 69 insertions, 71 deletions
diff --git a/xlators/features/changelog/src/changelog-barrier.c b/xlators/features/changelog/src/changelog-barrier.c index ac1eb0e4397..e8d742404df 100644 --- a/xlators/features/changelog/src/changelog-barrier.c +++ b/xlators/features/changelog/src/changelog-barrier.c @@ -14,121 +14,119 @@  /* Enqueue a stub*/  void -__chlog_barrier_enqueue (xlator_t *this, call_stub_t *stub) +__chlog_barrier_enqueue(xlator_t *this, call_stub_t *stub)  { -        changelog_priv_t *priv    = NULL; +    changelog_priv_t *priv = NULL; -        priv = this->private; -        GF_ASSERT (priv); +    priv = this->private; +    GF_ASSERT(priv); -        list_add_tail (&stub->list, &priv->queue); -        priv->queue_size++; +    list_add_tail(&stub->list, &priv->queue); +    priv->queue_size++; -        return; +    return;  }  /* Dequeue a stub */  call_stub_t * -__chlog_barrier_dequeue (xlator_t *this, struct list_head *queue) +__chlog_barrier_dequeue(xlator_t *this, struct list_head *queue)  { -        call_stub_t      *stub            = NULL; -        changelog_priv_t *priv            = NULL; +    call_stub_t *stub = NULL; +    changelog_priv_t *priv = NULL; -        priv = this->private; -        GF_ASSERT (priv); +    priv = this->private; +    GF_ASSERT(priv); -        if (list_empty (queue)) -                goto out; +    if (list_empty(queue)) +        goto out; -        stub = list_entry (queue->next, call_stub_t, list); -        list_del_init (&stub->list); +    stub = list_entry(queue->next, call_stub_t, list); +    list_del_init(&stub->list);  out: -        return stub; +    return stub;  }  /* Dequeue all the stubs and call corresponding resume functions */  void -chlog_barrier_dequeue_all (xlator_t *this, struct list_head *queue) +chlog_barrier_dequeue_all(xlator_t *this, struct list_head *queue)  { -        call_stub_t            *stub    = NULL; +    call_stub_t *stub = NULL; -        gf_msg (this->name, GF_LOG_INFO, 0, -                CHANGELOG_MSG_BARRIER_INFO, -                "Dequeuing all the changelog barriered fops"); +    gf_msg(this->name, GF_LOG_INFO, 0, CHANGELOG_MSG_BARRIER_INFO, +           "Dequeuing all the changelog barriered fops"); -        while ((stub = __chlog_barrier_dequeue (this, queue))) -                call_resume (stub); +    while ((stub = __chlog_barrier_dequeue(this, queue))) +        call_resume(stub); -        gf_msg (this->name, GF_LOG_INFO, 0, -                CHANGELOG_MSG_BARRIER_INFO, -                "Dequeuing changelog barriered fops is finished"); -        return; +    gf_msg(this->name, GF_LOG_INFO, 0, CHANGELOG_MSG_BARRIER_INFO, +           "Dequeuing changelog barriered fops is finished"); +    return;  }  /* Function called on changelog barrier timeout */  void -chlog_barrier_timeout (void *data) +chlog_barrier_timeout(void *data)  { -        xlator_t               *this    = NULL; -        changelog_priv_t       *priv    = NULL; -        struct list_head        queue   = {0,}; +    xlator_t *this = NULL; +    changelog_priv_t *priv = NULL; +    struct list_head queue = { +        0, +    }; -        this = data; -        THIS = this; -        priv = this->private; +    this = data; +    THIS = this; +    priv = this->private; -        INIT_LIST_HEAD (&queue); +    INIT_LIST_HEAD(&queue); -        gf_msg (this->name, GF_LOG_ERROR, 0, -                CHANGELOG_MSG_BARRIER_ERROR, -                "Disabling changelog barrier because of the timeout."); +    gf_msg(this->name, GF_LOG_ERROR, 0, CHANGELOG_MSG_BARRIER_ERROR, +           "Disabling changelog barrier because of the timeout."); -        LOCK (&priv->lock); -        { -                __chlog_barrier_disable (this, &queue); -        } -        UNLOCK (&priv->lock); +    LOCK(&priv->lock); +    { +        __chlog_barrier_disable(this, &queue); +    } +    UNLOCK(&priv->lock); -        chlog_barrier_dequeue_all (this, &queue); +    chlog_barrier_dequeue_all(this, &queue); -        return; +    return;  }  /* Disable changelog barrier enable flag */  void -__chlog_barrier_disable (xlator_t *this, struct list_head *queue) +__chlog_barrier_disable(xlator_t *this, struct list_head *queue)  { -        changelog_priv_t  *priv   = this->private; -        GF_ASSERT (priv); +    changelog_priv_t *priv = this->private; +    GF_ASSERT(priv); -        if (priv->timer) { -                gf_timer_call_cancel (this->ctx, priv->timer); -                priv->timer = NULL; -        } +    if (priv->timer) { +        gf_timer_call_cancel(this->ctx, priv->timer); +        priv->timer = NULL; +    } -        list_splice_init (&priv->queue, queue); -        priv->queue_size = 0; -        priv->barrier_enabled = _gf_false; +    list_splice_init(&priv->queue, queue); +    priv->queue_size = 0; +    priv->barrier_enabled = _gf_false;  }  /* Enable chagelog barrier enable with timer */  int -__chlog_barrier_enable (xlator_t *this, changelog_priv_t *priv) +__chlog_barrier_enable(xlator_t *this, changelog_priv_t *priv)  { -        int             ret     = -1; - -        priv->timer = gf_timer_call_after (this->ctx, priv->timeout, -                                           chlog_barrier_timeout, (void *)this); -        if (!priv->timer) { -                gf_msg (this->name, GF_LOG_CRITICAL, 0, -                        CHANGELOG_MSG_BARRIER_ERROR, -                        "Couldn't add changelog barrier timeout event."); -                goto out; -        } - -        priv->barrier_enabled = _gf_true; -        ret = 0; +    int ret = -1; + +    priv->timer = gf_timer_call_after(this->ctx, priv->timeout, +                                      chlog_barrier_timeout, (void *)this); +    if (!priv->timer) { +        gf_msg(this->name, GF_LOG_CRITICAL, 0, CHANGELOG_MSG_BARRIER_ERROR, +               "Couldn't add changelog barrier timeout event."); +        goto out; +    } + +    priv->barrier_enabled = _gf_true; +    ret = 0;  out: -        return ret; +    return ret;  }  | 
