diff options
Diffstat (limited to 'xlators/features/sdfs/src/sdfs.c')
| -rw-r--r-- | xlators/features/sdfs/src/sdfs.c | 2188 | 
1 files changed, 1062 insertions, 1126 deletions
diff --git a/xlators/features/sdfs/src/sdfs.c b/xlators/features/sdfs/src/sdfs.c index 57c1cbb581b..5dbe0653cbc 100644 --- a/xlators/features/sdfs/src/sdfs.c +++ b/xlators/features/sdfs/src/sdfs.c @@ -11,1514 +11,1450 @@  #include "sdfs.h"  static int -sdfs_frame_return (call_frame_t *frame) +sdfs_frame_return(call_frame_t *frame)  { -        sdfs_local_t *local             = NULL; +    sdfs_local_t *local = NULL; -        if (!frame) -                return -1; +    if (!frame) +        return -1; -        local = frame->local; +    local = frame->local; -        return GF_ATOMIC_DEC (local->call_cnt); +    return GF_ATOMIC_DEC(local->call_cnt);  }  static void -sdfs_lock_free (sdfs_entry_lock_t *entrylk) +sdfs_lock_free(sdfs_entry_lock_t *entrylk)  { -        if (entrylk == NULL) -                goto out; +    if (entrylk == NULL) +        goto out; -        loc_wipe (&entrylk->parent_loc); -        GF_FREE (entrylk->basename); +    loc_wipe(&entrylk->parent_loc); +    GF_FREE(entrylk->basename);  out: -        return; +    return;  }  static void -sdfs_lock_array_free (sdfs_lock_t *lock) +sdfs_lock_array_free(sdfs_lock_t *lock)  { -        sdfs_entry_lock_t       *entrylk = NULL; -        int                      i       = 0; +    sdfs_entry_lock_t *entrylk = NULL; +    int i = 0; -        if (lock == NULL) -                goto out; +    if (lock == NULL) +        goto out; -        for (i = 0; i < lock->lock_count; i++) { -                entrylk = &lock->entrylk[i]; -                sdfs_lock_free (entrylk); -        } +    for (i = 0; i < lock->lock_count; i++) { +        entrylk = &lock->entrylk[i]; +        sdfs_lock_free(entrylk); +    }  out: -        return; +    return;  }  static void -sdfs_local_cleanup (sdfs_local_t *local) +sdfs_local_cleanup(sdfs_local_t *local)  { -        if (!local) -                return; +    if (!local) +        return; -        loc_wipe (&local->loc); -        loc_wipe (&local->parent_loc); +    loc_wipe(&local->loc); +    loc_wipe(&local->parent_loc); -        if (local->stub) { -                call_stub_destroy (local->stub); -                local->stub = NULL; -        } +    if (local->stub) { +        call_stub_destroy(local->stub); +        local->stub = NULL; +    } -        sdfs_lock_array_free (local->lock); -        GF_FREE (local->lock); +    sdfs_lock_array_free(local->lock); +    GF_FREE(local->lock); -        mem_put (local); +    mem_put(local);  }  static int -sdfs_build_parent_loc (loc_t *parent, loc_t *child) +sdfs_build_parent_loc(loc_t *parent, loc_t *child)  { -        int     ret     = -1; -        char    *path   = NULL; - -        if (!child->parent) { -                goto out; -        } -        parent->inode = inode_ref (child->parent); -        path = gf_strdup (child->path); -        if (!path) { -                ret = -ENOMEM; -                goto out; -        } - -        parent->path = dirname(path); -        if (!parent->path) { -                goto out; -        } - -        gf_uuid_copy (parent->gfid, child->pargfid); -        return 0; +    int ret = -1; +    char *path = NULL; + +    if (!child->parent) { +        goto out; +    } +    parent->inode = inode_ref(child->parent); +    path = gf_strdup(child->path); +    if (!path) { +        ret = -ENOMEM; +        goto out; +    } + +    parent->path = dirname(path); +    if (!parent->path) { +        goto out; +    } + +    gf_uuid_copy(parent->gfid, child->pargfid); +    return 0;  out: -        GF_FREE (path); -        return ret; +    GF_FREE(path); +    return ret;  }  static sdfs_local_t * -sdfs_local_init (call_frame_t *frame, xlator_t *this) +sdfs_local_init(call_frame_t *frame, xlator_t *this)  { -        sdfs_local_t *local = NULL; +    sdfs_local_t *local = NULL; -        local = mem_get0 (this->local_pool); -        if (!local) -                goto out; +    local = mem_get0(this->local_pool); +    if (!local) +        goto out; -        frame->local = local; +    frame->local = local;  out: -        return local; +    return local;  }  static int -sdfs_get_new_frame_common (call_frame_t *frame, call_frame_t **new_frame) +sdfs_get_new_frame_common(call_frame_t *frame, call_frame_t **new_frame)  { -        int           ret       = -1; -        sdfs_local_t *local     = NULL; -        client_t     *client    = NULL; +    int ret = -1; +    sdfs_local_t *local = NULL; +    client_t *client = NULL; -        *new_frame = copy_frame (frame); -        if (!*new_frame) { -                goto err; -        } +    *new_frame = copy_frame(frame); +    if (!*new_frame) { +        goto err; +    } -        client = frame->root->client; -        gf_client_ref (client); -        (*new_frame)->root->client = client; +    client = frame->root->client; +    gf_client_ref(client); +    (*new_frame)->root->client = client; -        local = sdfs_local_init (*new_frame, THIS); -        if (!local) { -                goto err; -        } +    local = sdfs_local_init(*new_frame, THIS); +    if (!local) { +        goto err; +    } -        local->main_frame = frame; +    local->main_frame = frame; -        ret = 0; +    ret = 0;  err: -        if ((ret == -1) && (*new_frame)) { -                SDFS_STACK_DESTROY ((*new_frame)); -                *new_frame = NULL; -        } +    if ((ret == -1) && (*new_frame)) { +        SDFS_STACK_DESTROY((*new_frame)); +        *new_frame = NULL; +    } -        return ret; +    return ret;  }  static int -sdfs_get_new_frame (call_frame_t *frame, loc_t *loc, call_frame_t **new_frame) +sdfs_get_new_frame(call_frame_t *frame, loc_t *loc, call_frame_t **new_frame)  { -        int           ret   = -1; -        sdfs_local_t *local = NULL; +    int ret = -1; +    sdfs_local_t *local = NULL; -        ret = sdfs_get_new_frame_common (frame, new_frame); -        if (ret < 0) { -                goto err; -        } +    ret = sdfs_get_new_frame_common(frame, new_frame); +    if (ret < 0) { +        goto err; +    } -        local = (*new_frame)->local; +    local = (*new_frame)->local; -        ret = sdfs_build_parent_loc (&local->parent_loc, loc); -        if (ret) { -                goto err; -        } +    ret = sdfs_build_parent_loc(&local->parent_loc, loc); +    if (ret) { +        goto err; +    } -        ret = loc_copy (&local->loc, loc); -        if (ret == -1) { -                goto err; -        } +    ret = loc_copy(&local->loc, loc); +    if (ret == -1) { +        goto err; +    } -        ret = 0; +    ret = 0;  err: -        if ((ret < 0) && (*new_frame != NULL)) { -                SDFS_STACK_DESTROY ((*new_frame)); -                *new_frame = NULL; -        } +    if ((ret < 0) && (*new_frame != NULL)) { +        SDFS_STACK_DESTROY((*new_frame)); +        *new_frame = NULL; +    } -        return ret; +    return ret;  }  static int -sdfs_get_new_frame_readdirp (call_frame_t *frame, fd_t *fd, -                             call_frame_t **new_frame) +sdfs_get_new_frame_readdirp(call_frame_t *frame, fd_t *fd, +                            call_frame_t **new_frame)  { -        int           ret   = -1; -        sdfs_local_t *local = NULL; +    int ret = -1; +    sdfs_local_t *local = NULL; -        ret = sdfs_get_new_frame_common (frame, new_frame); -        if (ret < 0) { -                goto err; -        } +    ret = sdfs_get_new_frame_common(frame, new_frame); +    if (ret < 0) { +        goto err; +    } -        local = (*new_frame)->local; -        local->parent_loc.inode = inode_ref (fd->inode); -        gf_uuid_copy (local->parent_loc.gfid, fd->inode->gfid); +    local = (*new_frame)->local; +    local->parent_loc.inode = inode_ref(fd->inode); +    gf_uuid_copy(local->parent_loc.gfid, fd->inode->gfid); -        ret = 0; +    ret = 0;  err: -        return ret; +    return ret;  }  int -sdfs_entrylk_cbk (call_frame_t *frame, void *cookie, xlator_t *this, -                  int32_t op_ret, int32_t op_errno, dict_t *xdata) +sdfs_entrylk_cbk(call_frame_t *frame, void *cookie, xlator_t *this, +                 int32_t op_ret, int32_t op_errno, dict_t *xdata)  { -        sdfs_local_t    *local          = NULL; -        call_stub_t     *stub           = NULL; +    sdfs_local_t *local = NULL; +    call_stub_t *stub = NULL; -        local = frame->local; +    local = frame->local; -        local->op_ret = op_ret; -        local->op_errno = op_errno; +    local->op_ret = op_ret; +    local->op_errno = op_errno; -        if (local->stub) { -                stub = local->stub; -                local->stub = NULL; -                call_resume (stub); -        } else { -                if (op_ret < 0) -                        gf_msg (this->name, GF_LOG_ERROR, 0, -                                SDFS_MSG_ENTRYLK_ERROR, -                                "Unlocking entry lock failed for %s", -                                local->loc.name); - -                SDFS_STACK_DESTROY (frame); -        } +    if (local->stub) { +        stub = local->stub; +        local->stub = NULL; +        call_resume(stub); +    } else { +        if (op_ret < 0) +            gf_msg(this->name, GF_LOG_ERROR, 0, SDFS_MSG_ENTRYLK_ERROR, +                   "Unlocking entry lock failed for %s", local->loc.name); -        return 0; +        SDFS_STACK_DESTROY(frame); +    } + +    return 0;  }  int -sdfs_mkdir_cbk (call_frame_t *frame, void *cookie, xlator_t *this, -                int32_t op_ret, int32_t op_errno, inode_t *inode, -                struct iatt *stbuf, struct iatt *preparent, -                struct iatt *postparent, dict_t *xdata) +sdfs_mkdir_cbk(call_frame_t *frame, void *cookie, xlator_t *this, +               int32_t op_ret, int32_t op_errno, inode_t *inode, +               struct iatt *stbuf, struct iatt *preparent, +               struct iatt *postparent, dict_t *xdata)  { -        sdfs_local_t *local = NULL; +    sdfs_local_t *local = NULL; -        local = frame->local; +    local = frame->local; -        STACK_UNWIND_STRICT (mkdir, local->main_frame, op_ret, op_errno, inode, -                             stbuf, preparent, postparent, xdata); +    STACK_UNWIND_STRICT(mkdir, local->main_frame, op_ret, op_errno, inode, +                        stbuf, preparent, postparent, xdata); -        local->main_frame = NULL; -        STACK_WIND (frame, sdfs_entrylk_cbk, FIRST_CHILD (this), -                    FIRST_CHILD(this)->fops->entrylk, -                    this->name, &local->parent_loc, local->loc.name, -                    ENTRYLK_UNLOCK, ENTRYLK_WRLCK, xdata); -        return 0; +    local->main_frame = NULL; +    STACK_WIND(frame, sdfs_entrylk_cbk, FIRST_CHILD(this), +               FIRST_CHILD(this)->fops->entrylk, this->name, &local->parent_loc, +               local->loc.name, ENTRYLK_UNLOCK, ENTRYLK_WRLCK, xdata); +    return 0;  }  int -sdfs_mkdir_helper (call_frame_t *frame, xlator_t *this, loc_t *loc, -                   mode_t mode, mode_t umask, dict_t *xdata) +sdfs_mkdir_helper(call_frame_t *frame, xlator_t *this, loc_t *loc, mode_t mode, +                  mode_t umask, dict_t *xdata)  { -        sdfs_local_t    *local                  = NULL; -        char             gfid[GF_UUID_BUF_SIZE] = {0}; -        int              op_errno               = -1; +    sdfs_local_t *local = NULL; +    char gfid[GF_UUID_BUF_SIZE] = {0}; +    int op_errno = -1; -        local = frame->local; +    local = frame->local; -        gf_uuid_unparse(loc->pargfid, gfid); +    gf_uuid_unparse(loc->pargfid, gfid); -        if (local->op_ret < 0) { -                gf_msg (this->name, GF_LOG_ERROR, 0, -                        SDFS_MSG_ENTRYLK_ERROR, -                        "Acquiring entry lock failed for directory %s " -                        "with parent gfid %s", local->loc.name, gfid); -                op_errno = local->op_errno; -                goto err; -        } +    if (local->op_ret < 0) { +        gf_msg(this->name, GF_LOG_ERROR, 0, SDFS_MSG_ENTRYLK_ERROR, +               "Acquiring entry lock failed for directory %s " +               "with parent gfid %s", +               local->loc.name, gfid); +        op_errno = local->op_errno; +        goto err; +    } -        STACK_WIND (frame, sdfs_mkdir_cbk, FIRST_CHILD(this), -                    FIRST_CHILD(this)->fops->mkdir, loc, -                    mode, umask, xdata); +    STACK_WIND(frame, sdfs_mkdir_cbk, FIRST_CHILD(this), +               FIRST_CHILD(this)->fops->mkdir, loc, mode, umask, xdata); -        return 0; +    return 0;  err: -        STACK_UNWIND_STRICT (mkdir, local->main_frame, -1, op_errno, -                             NULL, NULL, NULL, NULL, NULL); +    STACK_UNWIND_STRICT(mkdir, local->main_frame, -1, op_errno, NULL, NULL, +                        NULL, NULL, NULL); -        local->main_frame = NULL; -        SDFS_STACK_DESTROY (frame); -        return 0; +    local->main_frame = NULL; +    SDFS_STACK_DESTROY(frame); +    return 0;  }  int -sdfs_mkdir (call_frame_t *frame, xlator_t *this, loc_t *loc, mode_t mode, -            mode_t umask, dict_t *xdata) +sdfs_mkdir(call_frame_t *frame, xlator_t *this, loc_t *loc, mode_t mode, +           mode_t umask, dict_t *xdata)  { -        sdfs_local_t    *local      = NULL; -        call_frame_t    *new_frame  = NULL; -        call_stub_t     *stub       = NULL; -        int              op_errno   = 0; - -        if (-1 == sdfs_get_new_frame (frame, loc, &new_frame)) { -                op_errno = ENOMEM; -                goto err; -        } - -        stub = fop_mkdir_stub (new_frame, sdfs_mkdir_helper, loc, mode, -                               umask, xdata); -        if (!stub) { -                op_errno = ENOMEM; -                goto err; -        } - -        local = new_frame->local; -        local->stub = stub; - -        STACK_WIND (new_frame, sdfs_entrylk_cbk, -                    FIRST_CHILD (this), -                    FIRST_CHILD(this)->fops->entrylk, -                    this->name, &local->parent_loc, local->loc.name, -                    ENTRYLK_LOCK, ENTRYLK_WRLCK, xdata); - -        return 0; +    sdfs_local_t *local = NULL; +    call_frame_t *new_frame = NULL; +    call_stub_t *stub = NULL; +    int op_errno = 0; + +    if (-1 == sdfs_get_new_frame(frame, loc, &new_frame)) { +        op_errno = ENOMEM; +        goto err; +    } + +    stub = fop_mkdir_stub(new_frame, sdfs_mkdir_helper, loc, mode, umask, +                          xdata); +    if (!stub) { +        op_errno = ENOMEM; +        goto err; +    } + +    local = new_frame->local; +    local->stub = stub; + +    STACK_WIND(new_frame, sdfs_entrylk_cbk, FIRST_CHILD(this), +               FIRST_CHILD(this)->fops->entrylk, this->name, &local->parent_loc, +               local->loc.name, ENTRYLK_LOCK, ENTRYLK_WRLCK, xdata); + +    return 0;  err: -        STACK_UNWIND_STRICT (mkdir, frame, -1, op_errno, NULL, NULL, -                             NULL, NULL, NULL); +    STACK_UNWIND_STRICT(mkdir, frame, -1, op_errno, NULL, NULL, NULL, NULL, +                        NULL); -        if (new_frame) -                SDFS_STACK_DESTROY (new_frame); +    if (new_frame) +        SDFS_STACK_DESTROY(new_frame); -        return 0; +    return 0;  }  int -sdfs_rmdir_cbk (call_frame_t *frame, void *cookie, xlator_t *this, -                int32_t op_ret, int32_t op_errno, struct iatt *preparent, -                struct iatt *postparent, dict_t *xdata) +sdfs_rmdir_cbk(call_frame_t *frame, void *cookie, xlator_t *this, +               int32_t op_ret, int32_t op_errno, struct iatt *preparent, +               struct iatt *postparent, dict_t *xdata)  { -        sdfs_local_t *local = NULL; +    sdfs_local_t *local = NULL; -        local = frame->local; +    local = frame->local; -        STACK_UNWIND_STRICT (rmdir, local->main_frame, op_ret, op_errno, -                             preparent, postparent, xdata); +    STACK_UNWIND_STRICT(rmdir, local->main_frame, op_ret, op_errno, preparent, +                        postparent, xdata); -        local->main_frame = NULL; -        STACK_WIND (frame, sdfs_entrylk_cbk, FIRST_CHILD (this), -                    FIRST_CHILD(this)->fops->entrylk, -                    this->name, &local->parent_loc, local->loc.name, -                    ENTRYLK_UNLOCK, ENTRYLK_WRLCK, xdata); -        return 0; +    local->main_frame = NULL; +    STACK_WIND(frame, sdfs_entrylk_cbk, FIRST_CHILD(this), +               FIRST_CHILD(this)->fops->entrylk, this->name, &local->parent_loc, +               local->loc.name, ENTRYLK_UNLOCK, ENTRYLK_WRLCK, xdata); +    return 0;  }  int -sdfs_rmdir_helper (call_frame_t *frame, xlator_t *this, loc_t *loc, -                   int flags, dict_t *xdata) +sdfs_rmdir_helper(call_frame_t *frame, xlator_t *this, loc_t *loc, int flags, +                  dict_t *xdata)  { -        sdfs_local_t    *local                  = NULL; -        char             gfid[GF_UUID_BUF_SIZE] = {0}; +    sdfs_local_t *local = NULL; +    char gfid[GF_UUID_BUF_SIZE] = {0}; -        local = frame->local; +    local = frame->local; -        gf_uuid_unparse(loc->pargfid, gfid); +    gf_uuid_unparse(loc->pargfid, gfid); -        if (local->op_ret < 0) { -                gf_msg (this->name, GF_LOG_ERROR, 0, -                        SDFS_MSG_ENTRYLK_ERROR, -                        "Acquiring entry lock failed for directory %s " -                        "with parent gfid %s", local->loc.name, gfid); -                goto err; -        } +    if (local->op_ret < 0) { +        gf_msg(this->name, GF_LOG_ERROR, 0, SDFS_MSG_ENTRYLK_ERROR, +               "Acquiring entry lock failed for directory %s " +               "with parent gfid %s", +               local->loc.name, gfid); +        goto err; +    } -        STACK_WIND (frame, sdfs_rmdir_cbk, FIRST_CHILD(this), -                    FIRST_CHILD(this)->fops->rmdir, loc, -                    flags, xdata); +    STACK_WIND(frame, sdfs_rmdir_cbk, FIRST_CHILD(this), +               FIRST_CHILD(this)->fops->rmdir, loc, flags, xdata); -        return 0; +    return 0;  err: -        STACK_UNWIND_STRICT (rmdir, local->main_frame, -1, local->op_errno, -                             NULL, NULL, NULL); +    STACK_UNWIND_STRICT(rmdir, local->main_frame, -1, local->op_errno, NULL, +                        NULL, NULL); -        local->main_frame = NULL; -        SDFS_STACK_DESTROY (frame); -        return 0; +    local->main_frame = NULL; +    SDFS_STACK_DESTROY(frame); +    return 0;  }  int -sdfs_rmdir (call_frame_t *frame, xlator_t *this, loc_t *loc, int flags, -            dict_t *xdata) +sdfs_rmdir(call_frame_t *frame, xlator_t *this, loc_t *loc, int flags, +           dict_t *xdata)  { -        sdfs_local_t    *local      = NULL; -        call_frame_t    *new_frame  = NULL; -        call_stub_t     *stub       = NULL; -        int              op_errno   = 0; - -        if (-1 == sdfs_get_new_frame (frame, loc, &new_frame)) { -                op_errno = ENOMEM; -                goto err; -        } - -        stub = fop_rmdir_stub (new_frame, sdfs_rmdir_helper, loc, flags, xdata); -        if (!stub) { -                op_errno = ENOMEM; -                goto err; -        } - -        local = new_frame->local; -        local->stub = stub; - -        STACK_WIND (new_frame, sdfs_entrylk_cbk, -                    FIRST_CHILD (this), -                    FIRST_CHILD(this)->fops->entrylk, -                    this->name, &local->parent_loc, local->loc.name, -                    ENTRYLK_LOCK, ENTRYLK_WRLCK, xdata); - -        return 0; +    sdfs_local_t *local = NULL; +    call_frame_t *new_frame = NULL; +    call_stub_t *stub = NULL; +    int op_errno = 0; + +    if (-1 == sdfs_get_new_frame(frame, loc, &new_frame)) { +        op_errno = ENOMEM; +        goto err; +    } + +    stub = fop_rmdir_stub(new_frame, sdfs_rmdir_helper, loc, flags, xdata); +    if (!stub) { +        op_errno = ENOMEM; +        goto err; +    } + +    local = new_frame->local; +    local->stub = stub; + +    STACK_WIND(new_frame, sdfs_entrylk_cbk, FIRST_CHILD(this), +               FIRST_CHILD(this)->fops->entrylk, this->name, &local->parent_loc, +               local->loc.name, ENTRYLK_LOCK, ENTRYLK_WRLCK, xdata); + +    return 0;  err: -        STACK_UNWIND_STRICT (rmdir, frame, -1, op_errno, NULL, NULL, -                             NULL); +    STACK_UNWIND_STRICT(rmdir, frame, -1, op_errno, NULL, NULL, NULL); -        if (new_frame) -                SDFS_STACK_DESTROY (new_frame); +    if (new_frame) +        SDFS_STACK_DESTROY(new_frame); -        return 0; +    return 0;  }  int -sdfs_create_cbk (call_frame_t *frame, void *cookie, xlator_t *this, -                 int32_t op_ret, int32_t op_errno, -                 fd_t *fd, inode_t *inode, struct iatt *stbuf, -                 struct iatt *preparent, struct iatt *postparent, -                 dict_t *xdata) +sdfs_create_cbk(call_frame_t *frame, void *cookie, xlator_t *this, +                int32_t op_ret, int32_t op_errno, fd_t *fd, inode_t *inode, +                struct iatt *stbuf, struct iatt *preparent, +                struct iatt *postparent, dict_t *xdata)  { -        sdfs_local_t *local = NULL; +    sdfs_local_t *local = NULL; -        local = frame->local; +    local = frame->local; -        STACK_UNWIND_STRICT (create, local->main_frame, op_ret, op_errno, fd, -                             inode, stbuf, preparent, postparent, xdata); +    STACK_UNWIND_STRICT(create, local->main_frame, op_ret, op_errno, fd, inode, +                        stbuf, preparent, postparent, xdata); -        local->main_frame = NULL; -        STACK_WIND (frame, sdfs_entrylk_cbk, FIRST_CHILD (this), -                    FIRST_CHILD(this)->fops->entrylk, -                    this->name, &local->parent_loc, local->loc.name, -                    ENTRYLK_UNLOCK, ENTRYLK_WRLCK, xdata); -        return 0; +    local->main_frame = NULL; +    STACK_WIND(frame, sdfs_entrylk_cbk, FIRST_CHILD(this), +               FIRST_CHILD(this)->fops->entrylk, this->name, &local->parent_loc, +               local->loc.name, ENTRYLK_UNLOCK, ENTRYLK_WRLCK, xdata); +    return 0;  }  int -sdfs_create_helper (call_frame_t *frame, xlator_t *this, loc_t *loc, -                    int32_t flags, mode_t mode, mode_t umask, fd_t *fd, -                    dict_t *xdata) +sdfs_create_helper(call_frame_t *frame, xlator_t *this, loc_t *loc, +                   int32_t flags, mode_t mode, mode_t umask, fd_t *fd, +                   dict_t *xdata)  { -        sdfs_local_t    *local                  = NULL; -        char             gfid[GF_UUID_BUF_SIZE] = {0}; +    sdfs_local_t *local = NULL; +    char gfid[GF_UUID_BUF_SIZE] = {0}; -        local = frame->local; +    local = frame->local; -        gf_uuid_unparse(loc->pargfid, gfid); +    gf_uuid_unparse(loc->pargfid, gfid); -        if (local->op_ret < 0) { -                gf_msg (this->name, GF_LOG_ERROR, 0, -                        SDFS_MSG_ENTRYLK_ERROR, -                        "Acquiring entry lock failed for directory %s " -                        "with parent gfid %s", local->loc.name, gfid); -                goto err; -        } +    if (local->op_ret < 0) { +        gf_msg(this->name, GF_LOG_ERROR, 0, SDFS_MSG_ENTRYLK_ERROR, +               "Acquiring entry lock failed for directory %s " +               "with parent gfid %s", +               local->loc.name, gfid); +        goto err; +    } -        STACK_WIND (frame, sdfs_create_cbk, FIRST_CHILD(this), -                    FIRST_CHILD(this)->fops->create, loc, flags, -                    mode, umask, fd, xdata); +    STACK_WIND(frame, sdfs_create_cbk, FIRST_CHILD(this), +               FIRST_CHILD(this)->fops->create, loc, flags, mode, umask, fd, +               xdata); -        return 0; +    return 0;  err: -        STACK_UNWIND_STRICT (create, local->main_frame, -1, local->op_errno, -                             NULL, NULL, NULL, NULL, NULL, NULL); +    STACK_UNWIND_STRICT(create, local->main_frame, -1, local->op_errno, NULL, +                        NULL, NULL, NULL, NULL, NULL); -        local->main_frame = NULL; -        SDFS_STACK_DESTROY (frame); -        return 0; +    local->main_frame = NULL; +    SDFS_STACK_DESTROY(frame); +    return 0;  }  int -sdfs_create (call_frame_t *frame, xlator_t *this, loc_t *loc, -             int32_t flags, mode_t mode, mode_t umask, -             fd_t *fd, dict_t *xdata) +sdfs_create(call_frame_t *frame, xlator_t *this, loc_t *loc, int32_t flags, +            mode_t mode, mode_t umask, fd_t *fd, dict_t *xdata)  { -        sdfs_local_t    *local      = NULL; -        call_frame_t    *new_frame  = NULL; -        call_stub_t     *stub       = NULL; -        int              op_errno   = 0; - -        if (-1 == sdfs_get_new_frame (frame, loc, &new_frame)) { -                op_errno = ENOMEM; -                goto err; -        } - -        stub = fop_create_stub (new_frame, sdfs_create_helper, loc, -                                flags, mode, umask, fd, xdata); -        if (!stub) { -                op_errno = ENOMEM; -                goto err; -        } - -        local = new_frame->local; -        local->stub = stub; - -        STACK_WIND (new_frame, sdfs_entrylk_cbk, -                    FIRST_CHILD (this), -                    FIRST_CHILD(this)->fops->entrylk, -                    this->name, &local->parent_loc, local->loc.name, -                    ENTRYLK_LOCK, ENTRYLK_WRLCK, xdata); - -        return 0; +    sdfs_local_t *local = NULL; +    call_frame_t *new_frame = NULL; +    call_stub_t *stub = NULL; +    int op_errno = 0; + +    if (-1 == sdfs_get_new_frame(frame, loc, &new_frame)) { +        op_errno = ENOMEM; +        goto err; +    } + +    stub = fop_create_stub(new_frame, sdfs_create_helper, loc, flags, mode, +                           umask, fd, xdata); +    if (!stub) { +        op_errno = ENOMEM; +        goto err; +    } + +    local = new_frame->local; +    local->stub = stub; + +    STACK_WIND(new_frame, sdfs_entrylk_cbk, FIRST_CHILD(this), +               FIRST_CHILD(this)->fops->entrylk, this->name, &local->parent_loc, +               local->loc.name, ENTRYLK_LOCK, ENTRYLK_WRLCK, xdata); + +    return 0;  err: -        STACK_UNWIND_STRICT (create, frame, -1, op_errno, NULL, NULL, -                             NULL, NULL, NULL, NULL); +    STACK_UNWIND_STRICT(create, frame, -1, op_errno, NULL, NULL, NULL, NULL, +                        NULL, NULL); -        if (new_frame) -                SDFS_STACK_DESTROY (new_frame); +    if (new_frame) +        SDFS_STACK_DESTROY(new_frame); -        return 0; +    return 0;  }  int -sdfs_unlink_cbk (call_frame_t *frame, void *cookie, xlator_t *this, -                 int32_t op_ret, int32_t op_errno, struct iatt *preparent, -                 struct iatt *postparent, dict_t *xdata) +sdfs_unlink_cbk(call_frame_t *frame, void *cookie, xlator_t *this, +                int32_t op_ret, int32_t op_errno, struct iatt *preparent, +                struct iatt *postparent, dict_t *xdata)  { -        sdfs_local_t *local = NULL; +    sdfs_local_t *local = NULL; -        local = frame->local; +    local = frame->local; -        STACK_UNWIND_STRICT (unlink, local->main_frame, op_ret, op_errno, -                             preparent, postparent, xdata); +    STACK_UNWIND_STRICT(unlink, local->main_frame, op_ret, op_errno, preparent, +                        postparent, xdata); -        local->main_frame = NULL; -        STACK_WIND (frame, sdfs_entrylk_cbk, FIRST_CHILD (this), -                    FIRST_CHILD(this)->fops->entrylk, -                    this->name, &local->parent_loc, local->loc.name, -                    ENTRYLK_UNLOCK, ENTRYLK_WRLCK, xdata); -        return 0; +    local->main_frame = NULL; +    STACK_WIND(frame, sdfs_entrylk_cbk, FIRST_CHILD(this), +               FIRST_CHILD(this)->fops->entrylk, this->name, &local->parent_loc, +               local->loc.name, ENTRYLK_UNLOCK, ENTRYLK_WRLCK, xdata); +    return 0;  }  int -sdfs_unlink_helper (call_frame_t *frame, xlator_t *this, loc_t *loc, -                    int flags, dict_t *xdata) +sdfs_unlink_helper(call_frame_t *frame, xlator_t *this, loc_t *loc, int flags, +                   dict_t *xdata)  { -        sdfs_local_t    *local                  = NULL; -        char             gfid[GF_UUID_BUF_SIZE] = {0}; +    sdfs_local_t *local = NULL; +    char gfid[GF_UUID_BUF_SIZE] = {0}; -        local = frame->local; +    local = frame->local; -        gf_uuid_unparse(loc->pargfid, gfid); +    gf_uuid_unparse(loc->pargfid, gfid); -        if (local->op_ret < 0) { -                gf_msg (this->name, GF_LOG_ERROR, 0, -                        SDFS_MSG_ENTRYLK_ERROR, -                        "Acquiring entry lock failed for directory %s " -                        "with parent gfid %s", local->loc.name, gfid); -                goto err; -        } +    if (local->op_ret < 0) { +        gf_msg(this->name, GF_LOG_ERROR, 0, SDFS_MSG_ENTRYLK_ERROR, +               "Acquiring entry lock failed for directory %s " +               "with parent gfid %s", +               local->loc.name, gfid); +        goto err; +    } -        STACK_WIND (frame, sdfs_unlink_cbk, FIRST_CHILD(this), -                    FIRST_CHILD(this)->fops->unlink, loc, flags, xdata); +    STACK_WIND(frame, sdfs_unlink_cbk, FIRST_CHILD(this), +               FIRST_CHILD(this)->fops->unlink, loc, flags, xdata); -        return 0; +    return 0;  err: -        STACK_UNWIND_STRICT (unlink, local->main_frame, -1, local->op_errno, -                             NULL, NULL, NULL); +    STACK_UNWIND_STRICT(unlink, local->main_frame, -1, local->op_errno, NULL, +                        NULL, NULL); -        local->main_frame = NULL; -        SDFS_STACK_DESTROY (frame); -        return 0; +    local->main_frame = NULL; +    SDFS_STACK_DESTROY(frame); +    return 0;  }  int -sdfs_unlink (call_frame_t *frame, xlator_t *this, loc_t *loc, -             int flags, dict_t *xdata) +sdfs_unlink(call_frame_t *frame, xlator_t *this, loc_t *loc, int flags, +            dict_t *xdata)  { -        sdfs_local_t    *local      = NULL; -        call_frame_t    *new_frame  = NULL; -        call_stub_t     *stub       = NULL; -        int              op_errno   = 0; - -        if (-1 == sdfs_get_new_frame (frame, loc, &new_frame)) { -                op_errno = ENOMEM; -                goto err; -        } - -        stub = fop_unlink_stub (new_frame, sdfs_unlink_helper, loc, -                                flags, xdata); -        if (!stub) { -                op_errno = ENOMEM; -                goto err; -        } - -        local = new_frame->local; -        local->stub = stub; - -        STACK_WIND (new_frame, sdfs_entrylk_cbk, -                    FIRST_CHILD (this), -                    FIRST_CHILD(this)->fops->entrylk, -                    this->name, &local->parent_loc, local->loc.name, -                    ENTRYLK_LOCK, ENTRYLK_WRLCK, xdata); - -        return 0; +    sdfs_local_t *local = NULL; +    call_frame_t *new_frame = NULL; +    call_stub_t *stub = NULL; +    int op_errno = 0; + +    if (-1 == sdfs_get_new_frame(frame, loc, &new_frame)) { +        op_errno = ENOMEM; +        goto err; +    } + +    stub = fop_unlink_stub(new_frame, sdfs_unlink_helper, loc, flags, xdata); +    if (!stub) { +        op_errno = ENOMEM; +        goto err; +    } + +    local = new_frame->local; +    local->stub = stub; + +    STACK_WIND(new_frame, sdfs_entrylk_cbk, FIRST_CHILD(this), +               FIRST_CHILD(this)->fops->entrylk, this->name, &local->parent_loc, +               local->loc.name, ENTRYLK_LOCK, ENTRYLK_WRLCK, xdata); + +    return 0;  err: -        STACK_UNWIND_STRICT (unlink, frame, -1, op_errno, NULL, NULL, -                             NULL); +    STACK_UNWIND_STRICT(unlink, frame, -1, op_errno, NULL, NULL, NULL); -        if (new_frame) -                SDFS_STACK_DESTROY (new_frame); +    if (new_frame) +        SDFS_STACK_DESTROY(new_frame); -        return 0; +    return 0;  }  int -sdfs_symlink_cbk (call_frame_t *frame, void *cookie, xlator_t *this, -                  int32_t op_ret, int32_t op_errno, inode_t *inode, -                  struct iatt *stbuf, struct iatt *preparent, -                  struct iatt *postparent, dict_t *xdata) +sdfs_symlink_cbk(call_frame_t *frame, void *cookie, xlator_t *this, +                 int32_t op_ret, int32_t op_errno, inode_t *inode, +                 struct iatt *stbuf, struct iatt *preparent, +                 struct iatt *postparent, dict_t *xdata)  { -        sdfs_local_t *local = NULL; +    sdfs_local_t *local = NULL; -        local = frame->local; +    local = frame->local; -        STACK_UNWIND_STRICT (link, local->main_frame, op_ret, op_errno, inode, -                             stbuf, preparent, postparent, xdata); +    STACK_UNWIND_STRICT(link, local->main_frame, op_ret, op_errno, inode, stbuf, +                        preparent, postparent, xdata); -        local->main_frame = NULL; -        STACK_WIND (frame, sdfs_entrylk_cbk, FIRST_CHILD (this), -                    FIRST_CHILD(this)->fops->entrylk, -                    this->name, &local->parent_loc, local->loc.name, -                    ENTRYLK_UNLOCK, ENTRYLK_WRLCK, xdata); -        return 0; +    local->main_frame = NULL; +    STACK_WIND(frame, sdfs_entrylk_cbk, FIRST_CHILD(this), +               FIRST_CHILD(this)->fops->entrylk, this->name, &local->parent_loc, +               local->loc.name, ENTRYLK_UNLOCK, ENTRYLK_WRLCK, xdata); +    return 0;  }  int -sdfs_symlink_helper (call_frame_t *frame, xlator_t *this, -                     const char *linkname, loc_t *loc, mode_t umask, -                     dict_t *xdata) +sdfs_symlink_helper(call_frame_t *frame, xlator_t *this, const char *linkname, +                    loc_t *loc, mode_t umask, dict_t *xdata)  { -        sdfs_local_t    *local                  = NULL; -        char             gfid[GF_UUID_BUF_SIZE] = {0}; +    sdfs_local_t *local = NULL; +    char gfid[GF_UUID_BUF_SIZE] = {0}; -        local = frame->local; +    local = frame->local; -        gf_uuid_unparse(loc->pargfid, gfid); +    gf_uuid_unparse(loc->pargfid, gfid); -        if (local->op_ret < 0) { -                gf_msg (this->name, GF_LOG_ERROR, 0, -                        SDFS_MSG_ENTRYLK_ERROR, -                        "Acquiring entry lock failed for directory %s " -                        "with parent gfid %s", local->loc.name, gfid); -                goto err; -        } +    if (local->op_ret < 0) { +        gf_msg(this->name, GF_LOG_ERROR, 0, SDFS_MSG_ENTRYLK_ERROR, +               "Acquiring entry lock failed for directory %s " +               "with parent gfid %s", +               local->loc.name, gfid); +        goto err; +    } -        STACK_WIND (frame, sdfs_symlink_cbk, FIRST_CHILD(this), -                    FIRST_CHILD(this)->fops->symlink, linkname, loc, -                    umask, xdata); +    STACK_WIND(frame, sdfs_symlink_cbk, FIRST_CHILD(this), +               FIRST_CHILD(this)->fops->symlink, linkname, loc, umask, xdata); -        return 0; +    return 0;  err: -        STACK_UNWIND_STRICT (link, local->main_frame, -1, local->op_errno, -                             NULL, NULL, NULL, NULL, NULL); +    STACK_UNWIND_STRICT(link, local->main_frame, -1, local->op_errno, NULL, +                        NULL, NULL, NULL, NULL); -        local->main_frame = NULL; -        SDFS_STACK_DESTROY (frame); -        return 0; +    local->main_frame = NULL; +    SDFS_STACK_DESTROY(frame); +    return 0;  }  int -sdfs_symlink (call_frame_t *frame, xlator_t *this, const char *linkname, -              loc_t *loc, mode_t umask, dict_t *xdata) +sdfs_symlink(call_frame_t *frame, xlator_t *this, const char *linkname, +             loc_t *loc, mode_t umask, dict_t *xdata)  { -        sdfs_local_t    *local      = NULL; -        call_frame_t    *new_frame  = NULL; -        call_stub_t     *stub       = NULL; -        int              op_errno   = 0; - -        if (-1 == sdfs_get_new_frame (frame, loc, &new_frame)) { -                op_errno = ENOMEM; -                goto err; -        } - -        stub = fop_symlink_stub (new_frame, sdfs_symlink_helper, linkname, loc, -                                 umask, xdata); -        if (!stub) { -                op_errno = ENOMEM; -                goto err; -        } - -        local = new_frame->local; -        local->stub = stub; - -        STACK_WIND (new_frame, sdfs_entrylk_cbk, -                    FIRST_CHILD (this), -                    FIRST_CHILD(this)->fops->entrylk, -                    this->name, &local->parent_loc, local->loc.name, -                    ENTRYLK_LOCK, ENTRYLK_WRLCK, xdata); - -        return 0; +    sdfs_local_t *local = NULL; +    call_frame_t *new_frame = NULL; +    call_stub_t *stub = NULL; +    int op_errno = 0; + +    if (-1 == sdfs_get_new_frame(frame, loc, &new_frame)) { +        op_errno = ENOMEM; +        goto err; +    } + +    stub = fop_symlink_stub(new_frame, sdfs_symlink_helper, linkname, loc, +                            umask, xdata); +    if (!stub) { +        op_errno = ENOMEM; +        goto err; +    } + +    local = new_frame->local; +    local->stub = stub; + +    STACK_WIND(new_frame, sdfs_entrylk_cbk, FIRST_CHILD(this), +               FIRST_CHILD(this)->fops->entrylk, this->name, &local->parent_loc, +               local->loc.name, ENTRYLK_LOCK, ENTRYLK_WRLCK, xdata); + +    return 0;  err: -        STACK_UNWIND_STRICT (link, frame, -1, op_errno, NULL, NULL, -                             NULL, NULL, NULL); +    STACK_UNWIND_STRICT(link, frame, -1, op_errno, NULL, NULL, NULL, NULL, +                        NULL); -        if (new_frame) -                SDFS_STACK_DESTROY (new_frame); +    if (new_frame) +        SDFS_STACK_DESTROY(new_frame); -        return 0; +    return 0;  }  int -sdfs_common_entrylk_cbk (call_frame_t *frame, void *cookie, xlator_t *this, -                         int32_t op_ret, int32_t op_errno, dict_t *xdata) +sdfs_common_entrylk_cbk(call_frame_t *frame, void *cookie, xlator_t *this, +                        int32_t op_ret, int32_t op_errno, dict_t *xdata)  { -        sdfs_local_t    *local          = NULL; -        int              this_call_cnt  = 0; -        int              lk_index       = 0; -        sdfs_lock_t     *locks          = NULL; -        call_stub_t     *stub           = NULL; - -        local = frame->local; -        locks = local->lock; -        lk_index = (long) cookie; - -        if (op_ret < 0) { -                local->op_ret = op_ret; -                local->op_errno = op_errno; -        } else { -                locks->entrylk->locked[lk_index] = _gf_true; -        } +    sdfs_local_t *local = NULL; +    int this_call_cnt = 0; +    int lk_index = 0; +    sdfs_lock_t *locks = NULL; +    call_stub_t *stub = NULL; -        this_call_cnt = sdfs_frame_return (frame); -        if (this_call_cnt > 0) { -                gf_log (this->name, GF_LOG_DEBUG, -                        "As there are more callcnt (%d) returning without WIND", -                        this_call_cnt); -                return 0; -        } - -        if (local->stub) { -                stub = local->stub; -                local->stub = NULL; -                call_resume (stub); -        } else { -                if (local->op_ret < 0) -                        gf_msg (this->name, GF_LOG_ERROR, 0, -                                SDFS_MSG_ENTRYLK_ERROR, -                                "unlocking entry lock failed "); -                SDFS_STACK_DESTROY (frame); -        } +    local = frame->local; +    locks = local->lock; +    lk_index = (long)cookie; +    if (op_ret < 0) { +        local->op_ret = op_ret; +        local->op_errno = op_errno; +    } else { +        locks->entrylk->locked[lk_index] = _gf_true; +    } + +    this_call_cnt = sdfs_frame_return(frame); +    if (this_call_cnt > 0) { +        gf_log(this->name, GF_LOG_DEBUG, +               "As there are more callcnt (%d) returning without WIND", +               this_call_cnt);          return 0; +    } + +    if (local->stub) { +        stub = local->stub; +        local->stub = NULL; +        call_resume(stub); +    } else { +        if (local->op_ret < 0) +            gf_msg(this->name, GF_LOG_ERROR, 0, SDFS_MSG_ENTRYLK_ERROR, +                   "unlocking entry lock failed "); +        SDFS_STACK_DESTROY(frame); +    } + +    return 0;  }  int -sdfs_link_cbk (call_frame_t *frame, void *cookie, xlator_t *this, -               int32_t op_ret, int32_t op_errno, -               inode_t *inode, struct iatt *stbuf, struct iatt *preparent, -               struct iatt *postparent, dict_t *xdata) +sdfs_link_cbk(call_frame_t *frame, void *cookie, xlator_t *this, int32_t op_ret, +              int32_t op_errno, inode_t *inode, struct iatt *stbuf, +              struct iatt *preparent, struct iatt *postparent, dict_t *xdata)  { -        sdfs_local_t             *local          = NULL; -        sdfs_lock_t              *lock           = NULL; -        int                      i              = 0; -        int lock_count = 0; - -        local = frame->local; -        lock  = local->lock; - -        STACK_UNWIND_STRICT (link, local->main_frame, op_ret, op_errno, inode, -                             stbuf, preparent, postparent, xdata); - -        local->main_frame = NULL; -        lock_count = lock->lock_count; -        for (i = 0; i < lock_count; i++) { -                STACK_WIND_COOKIE (frame, sdfs_common_entrylk_cbk, -                                   (void *)(long) i, -                                   FIRST_CHILD (this), -                                   FIRST_CHILD(this)->fops->entrylk, -                                   this->name, &lock->entrylk[i].parent_loc, -                                   lock->entrylk[i].basename, -                                   ENTRYLK_UNLOCK, ENTRYLK_WRLCK, xdata); -        } - -        return 0; +    sdfs_local_t *local = NULL; +    sdfs_lock_t *lock = NULL; +    int i = 0; +    int lock_count = 0; + +    local = frame->local; +    lock = local->lock; + +    STACK_UNWIND_STRICT(link, local->main_frame, op_ret, op_errno, inode, stbuf, +                        preparent, postparent, xdata); + +    local->main_frame = NULL; +    lock_count = lock->lock_count; +    for (i = 0; i < lock_count; i++) { +        STACK_WIND_COOKIE(frame, sdfs_common_entrylk_cbk, (void *)(long)i, +                          FIRST_CHILD(this), FIRST_CHILD(this)->fops->entrylk, +                          this->name, &lock->entrylk[i].parent_loc, +                          lock->entrylk[i].basename, ENTRYLK_UNLOCK, +                          ENTRYLK_WRLCK, xdata); +    } + +    return 0;  }  int -sdfs_link_helper (call_frame_t *frame, xlator_t *this, loc_t *oldloc, -                  loc_t *newloc, dict_t *xdata) +sdfs_link_helper(call_frame_t *frame, xlator_t *this, loc_t *oldloc, +                 loc_t *newloc, dict_t *xdata)  { -        sdfs_local_t            *local                  = NULL; -        sdfs_lock_t             *locks                  = NULL; -        gf_boolean_t             stack_destroy          = _gf_true; -        int                      lock_count             = 0; -        int                      i                      = 0; - -        local = frame->local; -        locks = local->lock; - -        if (local->op_ret < 0) { -                gf_msg (this->name, GF_LOG_ERROR, 0, -                        SDFS_MSG_ENTRYLK_ERROR, -                        "Acquiring entry lock failed"); -                goto err; -        } +    sdfs_local_t *local = NULL; +    sdfs_lock_t *locks = NULL; +    gf_boolean_t stack_destroy = _gf_true; +    int lock_count = 0; +    int i = 0; -        STACK_WIND (frame, sdfs_link_cbk, FIRST_CHILD(this), -                    FIRST_CHILD(this)->fops->link, oldloc, newloc, -                    xdata); +    local = frame->local; +    locks = local->lock; -        return 0; -err: -        STACK_UNWIND_STRICT (link, local->main_frame, -1, local->op_errno, -                             NULL, NULL, NULL, NULL, NULL); +    if (local->op_ret < 0) { +        gf_msg(this->name, GF_LOG_ERROR, 0, SDFS_MSG_ENTRYLK_ERROR, +               "Acquiring entry lock failed"); +        goto err; +    } -        local->main_frame = NULL; -        for (i = 0; i < locks->lock_count && locks->entrylk->locked[i]; i++) { -                lock_count++; -        } -        GF_ATOMIC_INIT (local->call_cnt, lock_count); - -        for (i = 0; i < lock_count; i++) { -                if (!locks->entrylk->locked[i]) { -                        lock_count++; -                        continue; -                } - -                stack_destroy = _gf_false; -                STACK_WIND (frame, sdfs_common_entrylk_cbk, -                            FIRST_CHILD (this), -                            FIRST_CHILD(this)->fops->entrylk, -                            this->name, &locks->entrylk[i].parent_loc, -                            locks->entrylk[i].basename, -                            ENTRYLK_UNLOCK, ENTRYLK_WRLCK, xdata); +    STACK_WIND(frame, sdfs_link_cbk, FIRST_CHILD(this), +               FIRST_CHILD(this)->fops->link, oldloc, newloc, xdata); + +    return 0; +err: +    STACK_UNWIND_STRICT(link, local->main_frame, -1, local->op_errno, NULL, +                        NULL, NULL, NULL, NULL); + +    local->main_frame = NULL; +    for (i = 0; i < locks->lock_count && locks->entrylk->locked[i]; i++) { +        lock_count++; +    } +    GF_ATOMIC_INIT(local->call_cnt, lock_count); + +    for (i = 0; i < lock_count; i++) { +        if (!locks->entrylk->locked[i]) { +            lock_count++; +            continue;          } -        if (stack_destroy) -                SDFS_STACK_DESTROY (frame); +        stack_destroy = _gf_false; +        STACK_WIND(frame, sdfs_common_entrylk_cbk, FIRST_CHILD(this), +                   FIRST_CHILD(this)->fops->entrylk, this->name, +                   &locks->entrylk[i].parent_loc, locks->entrylk[i].basename, +                   ENTRYLK_UNLOCK, ENTRYLK_WRLCK, xdata); +    } -        return 0; +    if (stack_destroy) +        SDFS_STACK_DESTROY(frame); + +    return 0;  }  static int -sdfs_init_entry_lock (sdfs_entry_lock_t *lock, loc_t *loc) +sdfs_init_entry_lock(sdfs_entry_lock_t *lock, loc_t *loc)  { -        int ret = 0; +    int ret = 0; -        ret = sdfs_build_parent_loc (&lock->parent_loc, loc); -        if (ret) -                return -1; +    ret = sdfs_build_parent_loc(&lock->parent_loc, loc); +    if (ret) +        return -1; -        lock->basename = gf_strdup (loc->name); -        if (!lock->basename) -                return -1; +    lock->basename = gf_strdup(loc->name); +    if (!lock->basename) +        return -1; -        return 0; +    return 0;  }  int -sdfs_entry_lock_cmp (const void *l1, const void *l2) +sdfs_entry_lock_cmp(const void *l1, const void *l2)  { -        const sdfs_entry_lock_t        *r1      = l1; -        const sdfs_entry_lock_t        *r2      = l2; -        int                             ret     = 0; -        uuid_t                          gfid1   = {0}; -        uuid_t                          gfid2   = {0}; - -        loc_gfid ((loc_t *)&r1->parent_loc, gfid1); -        loc_gfid ((loc_t *)&r2->parent_loc, gfid2); -        ret = gf_uuid_compare (gfid1, gfid2); -        /*Entrylks with NULL basename are the 'smallest'*/ -        if (ret == 0) { -                if (!r1->basename) -                        return -1; -                if (!r2->basename) -                        return 1; -                ret = strcmp (r1->basename, r2->basename); -        } - -        if (ret <= 0) -                return -1; -        else -                return 1; +    const sdfs_entry_lock_t *r1 = l1; +    const sdfs_entry_lock_t *r2 = l2; +    int ret = 0; +    uuid_t gfid1 = {0}; +    uuid_t gfid2 = {0}; + +    loc_gfid((loc_t *)&r1->parent_loc, gfid1); +    loc_gfid((loc_t *)&r2->parent_loc, gfid2); +    ret = gf_uuid_compare(gfid1, gfid2); +    /*Entrylks with NULL basename are the 'smallest'*/ +    if (ret == 0) { +        if (!r1->basename) +            return -1; +        if (!r2->basename) +            return 1; +        ret = strcmp(r1->basename, r2->basename); +    } + +    if (ret <= 0) +        return -1; +    else +        return 1;  }  int -sdfs_link (call_frame_t *frame, xlator_t *this, loc_t *oldloc, -           loc_t *newloc, dict_t *xdata) +sdfs_link(call_frame_t *frame, xlator_t *this, loc_t *oldloc, loc_t *newloc, +          dict_t *xdata)  { -        sdfs_local_t            *local      = NULL; -        call_frame_t            *new_frame  = NULL; -        call_stub_t             *stub       = NULL; -        sdfs_lock_t             *lock       = NULL; -        client_t                *client     = NULL; -        int                      ret        = 0; -        int                      op_errno   = ENOMEM; - -        new_frame = copy_frame (frame); -        if (!new_frame) { -                op_errno = ENOMEM; -                goto err; -        } - -        gf_client_ref (client); -        new_frame->root->client = client; -        local = sdfs_local_init (new_frame, this); -        if (!local) { -                op_errno = ENOMEM; -                goto err; -        } - -        local->main_frame = frame; - -        lock = GF_CALLOC (1, sizeof (*lock), gf_common_mt_char); -        if (!lock) -                goto err; - -        local->lock = lock; - -        ret = sdfs_init_entry_lock (&lock->entrylk[0], newloc); -        if (ret) -                goto err; - -        ++lock->lock_count; - -        local->lock = lock; -        GF_ATOMIC_INIT (local->call_cnt, lock->lock_count); - -        ret = loc_copy (&local->loc, newloc); -        if (ret == -1) { -                op_errno = ENOMEM; -                goto err; -        } - -        stub = fop_link_stub (new_frame, sdfs_link_helper, oldloc, -                              newloc, xdata); -        if (!stub) { -                op_errno = ENOMEM; -                goto err; -        } - -        local->stub = stub; - -        STACK_WIND_COOKIE (new_frame, sdfs_common_entrylk_cbk, -                           0, FIRST_CHILD (this), -                           FIRST_CHILD(this)->fops->entrylk, -                           this->name, &lock->entrylk[0].parent_loc, -                           lock->entrylk[0].basename, ENTRYLK_LOCK, -                           ENTRYLK_WRLCK, xdata); - -        return 0; +    sdfs_local_t *local = NULL; +    call_frame_t *new_frame = NULL; +    call_stub_t *stub = NULL; +    sdfs_lock_t *lock = NULL; +    client_t *client = NULL; +    int ret = 0; +    int op_errno = ENOMEM; + +    new_frame = copy_frame(frame); +    if (!new_frame) { +        op_errno = ENOMEM; +        goto err; +    } + +    gf_client_ref(client); +    new_frame->root->client = client; +    local = sdfs_local_init(new_frame, this); +    if (!local) { +        op_errno = ENOMEM; +        goto err; +    } + +    local->main_frame = frame; + +    lock = GF_CALLOC(1, sizeof(*lock), gf_common_mt_char); +    if (!lock) +        goto err; + +    local->lock = lock; + +    ret = sdfs_init_entry_lock(&lock->entrylk[0], newloc); +    if (ret) +        goto err; + +    ++lock->lock_count; + +    local->lock = lock; +    GF_ATOMIC_INIT(local->call_cnt, lock->lock_count); + +    ret = loc_copy(&local->loc, newloc); +    if (ret == -1) { +        op_errno = ENOMEM; +        goto err; +    } + +    stub = fop_link_stub(new_frame, sdfs_link_helper, oldloc, newloc, xdata); +    if (!stub) { +        op_errno = ENOMEM; +        goto err; +    } + +    local->stub = stub; + +    STACK_WIND_COOKIE(new_frame, sdfs_common_entrylk_cbk, 0, FIRST_CHILD(this), +                      FIRST_CHILD(this)->fops->entrylk, this->name, +                      &lock->entrylk[0].parent_loc, lock->entrylk[0].basename, +                      ENTRYLK_LOCK, ENTRYLK_WRLCK, xdata); + +    return 0;  err: -        STACK_UNWIND_STRICT (link, frame, -1, op_errno, NULL, NULL, -                             NULL, NULL, NULL); +    STACK_UNWIND_STRICT(link, frame, -1, op_errno, NULL, NULL, NULL, NULL, +                        NULL); -        if (new_frame) -                SDFS_STACK_DESTROY (new_frame); +    if (new_frame) +        SDFS_STACK_DESTROY(new_frame); -        return 0; +    return 0;  }  int -sdfs_mknod_cbk (call_frame_t *frame, void *cookie, xlator_t *this, -                int32_t op_ret, int32_t op_errno, inode_t *inode, -                struct iatt *stbuf, struct iatt *preparent, -                struct iatt *postparent, dict_t *xdata) +sdfs_mknod_cbk(call_frame_t *frame, void *cookie, xlator_t *this, +               int32_t op_ret, int32_t op_errno, inode_t *inode, +               struct iatt *stbuf, struct iatt *preparent, +               struct iatt *postparent, dict_t *xdata)  { -        sdfs_local_t *local = NULL; +    sdfs_local_t *local = NULL; -        local = frame->local; +    local = frame->local; -        STACK_UNWIND_STRICT (mknod, local->main_frame, op_ret, op_errno, inode, -                             stbuf, preparent, postparent, xdata); +    STACK_UNWIND_STRICT(mknod, local->main_frame, op_ret, op_errno, inode, +                        stbuf, preparent, postparent, xdata); -        local->main_frame = NULL; -        STACK_WIND (frame, sdfs_entrylk_cbk, FIRST_CHILD (this), -                    FIRST_CHILD(this)->fops->entrylk, -                    this->name, &local->parent_loc, local->loc.name, -                    ENTRYLK_UNLOCK, ENTRYLK_WRLCK, xdata); -        return 0; +    local->main_frame = NULL; +    STACK_WIND(frame, sdfs_entrylk_cbk, FIRST_CHILD(this), +               FIRST_CHILD(this)->fops->entrylk, this->name, &local->parent_loc, +               local->loc.name, ENTRYLK_UNLOCK, ENTRYLK_WRLCK, xdata); +    return 0;  }  int -sdfs_mknod_helper (call_frame_t *frame, xlator_t *this, loc_t *loc, -                   mode_t mode, dev_t rdev, mode_t umask, dict_t *xdata) +sdfs_mknod_helper(call_frame_t *frame, xlator_t *this, loc_t *loc, mode_t mode, +                  dev_t rdev, mode_t umask, dict_t *xdata)  { -        sdfs_local_t    *local                   = NULL; -        char             gfid[GF_UUID_BUF_SIZE]  = {0}; +    sdfs_local_t *local = NULL; +    char gfid[GF_UUID_BUF_SIZE] = {0}; -        local = frame->local; +    local = frame->local; -        gf_uuid_unparse(loc->pargfid, gfid); +    gf_uuid_unparse(loc->pargfid, gfid); -        if (local->op_ret < 0) { -                gf_msg (this->name, GF_LOG_ERROR, 0, -                        SDFS_MSG_ENTRYLK_ERROR, -                        "Acquiring entry lock failed for directory %s " -                        "with parent gfid %s", local->loc.name, gfid); -                goto err; -        } +    if (local->op_ret < 0) { +        gf_msg(this->name, GF_LOG_ERROR, 0, SDFS_MSG_ENTRYLK_ERROR, +               "Acquiring entry lock failed for directory %s " +               "with parent gfid %s", +               local->loc.name, gfid); +        goto err; +    } -        STACK_WIND (frame, sdfs_mknod_cbk, FIRST_CHILD(this), -                    FIRST_CHILD(this)->fops->mknod, loc, mode, rdev, -                    umask, xdata); +    STACK_WIND(frame, sdfs_mknod_cbk, FIRST_CHILD(this), +               FIRST_CHILD(this)->fops->mknod, loc, mode, rdev, umask, xdata); -        return 0; +    return 0;  err: -        STACK_UNWIND_STRICT (mknod, local->main_frame, -1, local->op_errno, -                             NULL, NULL, NULL, NULL, NULL); +    STACK_UNWIND_STRICT(mknod, local->main_frame, -1, local->op_errno, NULL, +                        NULL, NULL, NULL, NULL); -        local->main_frame = NULL; -        SDFS_STACK_DESTROY (frame); -        return 0; +    local->main_frame = NULL; +    SDFS_STACK_DESTROY(frame); +    return 0;  }  int -sdfs_mknod (call_frame_t *frame, xlator_t *this, loc_t *loc, mode_t mode, -            dev_t rdev, mode_t umask, dict_t *xdata) +sdfs_mknod(call_frame_t *frame, xlator_t *this, loc_t *loc, mode_t mode, +           dev_t rdev, mode_t umask, dict_t *xdata)  { -        sdfs_local_t            *local      = NULL; -        call_frame_t            *new_frame  = NULL; -        call_stub_t             *stub       = NULL; -        int                      op_errno   = 0; - -        if (-1 == sdfs_get_new_frame (frame, loc, &new_frame)) { -                op_errno = ENOMEM; -                goto err; -        } - -        stub = fop_mknod_stub (new_frame, sdfs_mknod_helper, loc, mode, -                               rdev, umask, xdata); -        if (!stub) { -                op_errno = ENOMEM; -                goto err; -        } - -        local = new_frame->local; -        local->stub = stub; - -        STACK_WIND (new_frame, sdfs_entrylk_cbk, -                    FIRST_CHILD (this), -                    FIRST_CHILD(this)->fops->entrylk, -                    this->name, &local->parent_loc, local->loc.name, -                    ENTRYLK_LOCK, ENTRYLK_WRLCK, xdata); - -        return 0; +    sdfs_local_t *local = NULL; +    call_frame_t *new_frame = NULL; +    call_stub_t *stub = NULL; +    int op_errno = 0; + +    if (-1 == sdfs_get_new_frame(frame, loc, &new_frame)) { +        op_errno = ENOMEM; +        goto err; +    } + +    stub = fop_mknod_stub(new_frame, sdfs_mknod_helper, loc, mode, rdev, umask, +                          xdata); +    if (!stub) { +        op_errno = ENOMEM; +        goto err; +    } + +    local = new_frame->local; +    local->stub = stub; + +    STACK_WIND(new_frame, sdfs_entrylk_cbk, FIRST_CHILD(this), +               FIRST_CHILD(this)->fops->entrylk, this->name, &local->parent_loc, +               local->loc.name, ENTRYLK_LOCK, ENTRYLK_WRLCK, xdata); + +    return 0;  err: -        STACK_UNWIND_STRICT (mknod, frame, -1, op_errno, NULL, NULL, -                             NULL, NULL, NULL); +    STACK_UNWIND_STRICT(mknod, frame, -1, op_errno, NULL, NULL, NULL, NULL, +                        NULL); -        if (new_frame) -                SDFS_STACK_DESTROY (new_frame); +    if (new_frame) +        SDFS_STACK_DESTROY(new_frame); -        return 0; +    return 0;  }  int -sdfs_rename_cbk (call_frame_t *frame, void *cookie, xlator_t *this, -                 int32_t op_ret, int32_t op_errno, struct iatt *stbuf, -                 struct iatt *preoldparent, struct iatt *postoldparent, -                 struct iatt *prenewparent, struct iatt *postnewparent, -                 dict_t *xdata) +sdfs_rename_cbk(call_frame_t *frame, void *cookie, xlator_t *this, +                int32_t op_ret, int32_t op_errno, struct iatt *stbuf, +                struct iatt *preoldparent, struct iatt *postoldparent, +                struct iatt *prenewparent, struct iatt *postnewparent, +                dict_t *xdata)  { -        sdfs_local_t    *local = NULL; -        sdfs_lock_t     *lock  = NULL; -        int              i     = 0; -        int              call_cnt = 0; - -        local = frame->local; -        lock = local->lock; -        GF_ATOMIC_INIT (local->call_cnt, lock->lock_count); - -        STACK_UNWIND_STRICT (rename, local->main_frame, op_ret, op_errno, stbuf, -                             preoldparent, postoldparent, prenewparent, -                             postnewparent, xdata); - -        local->main_frame = NULL; -        call_cnt = GF_ATOMIC_GET (local->call_cnt); - -        for (i = 0; i < call_cnt; i++) { -                STACK_WIND_COOKIE (frame, sdfs_common_entrylk_cbk, -                                   (void *)(long) i, -                                   FIRST_CHILD (this), -                                   FIRST_CHILD(this)->fops->entrylk, -                                   this->name, &lock->entrylk[i].parent_loc, -                                   lock->entrylk[i].basename, -                                   ENTRYLK_UNLOCK, ENTRYLK_WRLCK, xdata); -        } - -        return 0; +    sdfs_local_t *local = NULL; +    sdfs_lock_t *lock = NULL; +    int i = 0; +    int call_cnt = 0; + +    local = frame->local; +    lock = local->lock; +    GF_ATOMIC_INIT(local->call_cnt, lock->lock_count); + +    STACK_UNWIND_STRICT(rename, local->main_frame, op_ret, op_errno, stbuf, +                        preoldparent, postoldparent, prenewparent, +                        postnewparent, xdata); + +    local->main_frame = NULL; +    call_cnt = GF_ATOMIC_GET(local->call_cnt); + +    for (i = 0; i < call_cnt; i++) { +        STACK_WIND_COOKIE(frame, sdfs_common_entrylk_cbk, (void *)(long)i, +                          FIRST_CHILD(this), FIRST_CHILD(this)->fops->entrylk, +                          this->name, &lock->entrylk[i].parent_loc, +                          lock->entrylk[i].basename, ENTRYLK_UNLOCK, +                          ENTRYLK_WRLCK, xdata); +    } + +    return 0;  }  int -sdfs_rename_helper (call_frame_t *frame, xlator_t *this, loc_t *oldloc, -                    loc_t *newloc, dict_t *xdata) +sdfs_rename_helper(call_frame_t *frame, xlator_t *this, loc_t *oldloc, +                   loc_t *newloc, dict_t *xdata)  { -        sdfs_local_t            *local                  = NULL; -        sdfs_lock_t             *lock                   = NULL; -        gf_boolean_t             stack_destroy          = _gf_true; -        int                      lock_count             = 0; -        int                      i                      = 0; - -        local = frame->local; -        lock = local->lock; - -        if (local->op_ret < 0) { -                gf_msg (this->name, GF_LOG_ERROR, 0, -                        SDFS_MSG_ENTRYLK_ERROR, -                        "Acquiring entry lock failed "); -               goto err; -        } +    sdfs_local_t *local = NULL; +    sdfs_lock_t *lock = NULL; +    gf_boolean_t stack_destroy = _gf_true; +    int lock_count = 0; +    int i = 0; -        STACK_WIND (frame, sdfs_rename_cbk, FIRST_CHILD(this), -                    FIRST_CHILD(this)->fops->rename, oldloc, newloc, -                    xdata); +    local = frame->local; +    lock = local->lock; -        return 0; +    if (local->op_ret < 0) { +        gf_msg(this->name, GF_LOG_ERROR, 0, SDFS_MSG_ENTRYLK_ERROR, +               "Acquiring entry lock failed "); +        goto err; +    } -err: -        STACK_UNWIND_STRICT (rename, local->main_frame, -1, local->op_errno, -                             NULL, NULL, NULL, NULL, NULL, NULL); +    STACK_WIND(frame, sdfs_rename_cbk, FIRST_CHILD(this), +               FIRST_CHILD(this)->fops->rename, oldloc, newloc, xdata); -        local->main_frame = NULL; -        for (i = 0; i < lock->lock_count && lock->entrylk->locked[i]; i++) { -                lock_count++; -        } -        GF_ATOMIC_INIT (local->call_cnt, lock_count); - -        for (i = 0; i < lock_count; i++) { -                if (!lock->entrylk->locked[i]) { -                        lock_count++; -                        continue; -                } -                stack_destroy = _gf_false; -                STACK_WIND (frame, sdfs_common_entrylk_cbk, -                            FIRST_CHILD (this), -                            FIRST_CHILD(this)->fops->entrylk, -                            this->name, &lock->entrylk[i].parent_loc, -                            lock->entrylk[i].basename, -                            ENTRYLK_UNLOCK, ENTRYLK_WRLCK, xdata); +    return 0; + +err: +    STACK_UNWIND_STRICT(rename, local->main_frame, -1, local->op_errno, NULL, +                        NULL, NULL, NULL, NULL, NULL); + +    local->main_frame = NULL; +    for (i = 0; i < lock->lock_count && lock->entrylk->locked[i]; i++) { +        lock_count++; +    } +    GF_ATOMIC_INIT(local->call_cnt, lock_count); + +    for (i = 0; i < lock_count; i++) { +        if (!lock->entrylk->locked[i]) { +            lock_count++; +            continue;          } +        stack_destroy = _gf_false; +        STACK_WIND(frame, sdfs_common_entrylk_cbk, FIRST_CHILD(this), +                   FIRST_CHILD(this)->fops->entrylk, this->name, +                   &lock->entrylk[i].parent_loc, lock->entrylk[i].basename, +                   ENTRYLK_UNLOCK, ENTRYLK_WRLCK, xdata); +    } -        if (stack_destroy) -                SDFS_STACK_DESTROY (frame); +    if (stack_destroy) +        SDFS_STACK_DESTROY(frame); -        return 0; +    return 0;  }  int -sdfs_rename (call_frame_t *frame, xlator_t *this, loc_t *oldloc, -             loc_t *newloc, dict_t *xdata) +sdfs_rename(call_frame_t *frame, xlator_t *this, loc_t *oldloc, loc_t *newloc, +            dict_t *xdata)  { -        sdfs_local_t    *local      = NULL; -        sdfs_lock_t     *lock       = NULL; -        call_frame_t    *new_frame  = NULL; -        call_stub_t     *stub       = NULL; -        client_t        *client     = NULL; -        int              ret        = 0; -        int              op_errno   = ENOMEM; -        int              i          = 0; -        int              call_cnt   = 0; - -        new_frame = copy_frame (frame); -        if (!new_frame) { -                op_errno = ENOMEM; -                goto err; -        } - -        gf_client_ref (client); -        new_frame->root->client = client; -        local = sdfs_local_init (new_frame, this); -        if (!local) { -                op_errno = ENOMEM; -                goto err; -        } - -        local->main_frame = frame; - -        lock = GF_CALLOC (1, sizeof (*lock), gf_common_mt_char); -        if (!lock) -                goto err; - -        local->lock = lock; - -        ret = sdfs_init_entry_lock (&lock->entrylk[0], oldloc); -        if (ret) -                goto err; -        lock->entrylk->locked[0] = _gf_false; - -        ++lock->lock_count; - -        ret = sdfs_init_entry_lock (&lock->entrylk[1], newloc); -        if (ret) -                goto err; -        lock->entrylk->locked[1] = _gf_false; - -        ++lock->lock_count; - -        qsort (lock->entrylk, lock->lock_count, sizeof (*lock->entrylk), -               sdfs_entry_lock_cmp); - -        local->lock = lock; -        GF_ATOMIC_INIT (local->call_cnt, lock->lock_count); - -        stub = fop_rename_stub (new_frame, sdfs_rename_helper, oldloc, -                                newloc, xdata); -        if (!stub) { -                op_errno = ENOMEM; -                goto err; -        } - -        local->stub = stub; -        call_cnt = GF_ATOMIC_GET (local->call_cnt); -        for (i = 0; i < call_cnt; i++) { -                STACK_WIND_COOKIE (new_frame, sdfs_common_entrylk_cbk, -                                   (void *)(long) i, -                                   FIRST_CHILD (this), -                                   FIRST_CHILD(this)->fops->entrylk, -                                   this->name, &lock->entrylk[i].parent_loc, -                                   lock->entrylk[i].basename, -                                   ENTRYLK_LOCK, ENTRYLK_WRLCK, xdata); -        } - -        return 0; +    sdfs_local_t *local = NULL; +    sdfs_lock_t *lock = NULL; +    call_frame_t *new_frame = NULL; +    call_stub_t *stub = NULL; +    client_t *client = NULL; +    int ret = 0; +    int op_errno = ENOMEM; +    int i = 0; +    int call_cnt = 0; + +    new_frame = copy_frame(frame); +    if (!new_frame) { +        op_errno = ENOMEM; +        goto err; +    } + +    gf_client_ref(client); +    new_frame->root->client = client; +    local = sdfs_local_init(new_frame, this); +    if (!local) { +        op_errno = ENOMEM; +        goto err; +    } + +    local->main_frame = frame; + +    lock = GF_CALLOC(1, sizeof(*lock), gf_common_mt_char); +    if (!lock) +        goto err; + +    local->lock = lock; + +    ret = sdfs_init_entry_lock(&lock->entrylk[0], oldloc); +    if (ret) +        goto err; +    lock->entrylk->locked[0] = _gf_false; + +    ++lock->lock_count; + +    ret = sdfs_init_entry_lock(&lock->entrylk[1], newloc); +    if (ret) +        goto err; +    lock->entrylk->locked[1] = _gf_false; + +    ++lock->lock_count; + +    qsort(lock->entrylk, lock->lock_count, sizeof(*lock->entrylk), +          sdfs_entry_lock_cmp); + +    local->lock = lock; +    GF_ATOMIC_INIT(local->call_cnt, lock->lock_count); + +    stub = fop_rename_stub(new_frame, sdfs_rename_helper, oldloc, newloc, +                           xdata); +    if (!stub) { +        op_errno = ENOMEM; +        goto err; +    } + +    local->stub = stub; +    call_cnt = GF_ATOMIC_GET(local->call_cnt); +    for (i = 0; i < call_cnt; i++) { +        STACK_WIND_COOKIE(new_frame, sdfs_common_entrylk_cbk, (void *)(long)i, +                          FIRST_CHILD(this), FIRST_CHILD(this)->fops->entrylk, +                          this->name, &lock->entrylk[i].parent_loc, +                          lock->entrylk[i].basename, ENTRYLK_LOCK, +                          ENTRYLK_WRLCK, xdata); +    } + +    return 0;  err: -        STACK_UNWIND_STRICT (rename, frame, -1, op_errno, NULL, NULL, -                             NULL, NULL, NULL, NULL); +    STACK_UNWIND_STRICT(rename, frame, -1, op_errno, NULL, NULL, NULL, NULL, +                        NULL, NULL); -        if (new_frame) -                SDFS_STACK_DESTROY (new_frame); +    if (new_frame) +        SDFS_STACK_DESTROY(new_frame); -        return 0; +    return 0;  }  int -sdfs_lookup_cbk (call_frame_t *frame, void *cookie, xlator_t *this, -                 int32_t op_ret, int32_t op_errno, inode_t *inode, -                 struct iatt *stbuf,  dict_t *xdata, -                 struct iatt *postparent) +sdfs_lookup_cbk(call_frame_t *frame, void *cookie, xlator_t *this, +                int32_t op_ret, int32_t op_errno, inode_t *inode, +                struct iatt *stbuf, dict_t *xdata, struct iatt *postparent)  { -        sdfs_local_t *local = NULL; +    sdfs_local_t *local = NULL; -        local = frame->local; +    local = frame->local; -        if (!local->loc.parent) { -                sdfs_local_cleanup (local); -                frame->local = NULL; -                STACK_UNWIND_STRICT (lookup, frame, op_ret, op_errno, -                                     inode, stbuf, xdata, postparent); -                return 0; -        } +    if (!local->loc.parent) { +        sdfs_local_cleanup(local); +        frame->local = NULL; +        STACK_UNWIND_STRICT(lookup, frame, op_ret, op_errno, inode, stbuf, +                            xdata, postparent); +        return 0; +    } -        STACK_UNWIND_STRICT (lookup, local->main_frame, op_ret, op_errno, inode, -                             stbuf, xdata, postparent); +    STACK_UNWIND_STRICT(lookup, local->main_frame, op_ret, op_errno, inode, +                        stbuf, xdata, postparent); -        local->main_frame = NULL; -        STACK_WIND (frame, sdfs_entrylk_cbk, FIRST_CHILD (this), -                    FIRST_CHILD(this)->fops->entrylk, -                    this->name, &local->parent_loc, local->loc.name, -                    ENTRYLK_UNLOCK, ENTRYLK_RDLCK, xdata); -        return 0; +    local->main_frame = NULL; +    STACK_WIND(frame, sdfs_entrylk_cbk, FIRST_CHILD(this), +               FIRST_CHILD(this)->fops->entrylk, this->name, &local->parent_loc, +               local->loc.name, ENTRYLK_UNLOCK, ENTRYLK_RDLCK, xdata); +    return 0;  }  int -sdfs_lookup_helper (call_frame_t *frame, xlator_t *this, loc_t *loc, -                    dict_t *xdata) +sdfs_lookup_helper(call_frame_t *frame, xlator_t *this, loc_t *loc, +                   dict_t *xdata)  { -        sdfs_local_t    *local                  = NULL; -        char             gfid[GF_UUID_BUF_SIZE] = {0}; +    sdfs_local_t *local = NULL; +    char gfid[GF_UUID_BUF_SIZE] = {0}; -        local = frame->local; +    local = frame->local; -        gf_uuid_unparse(loc->pargfid, gfid); +    gf_uuid_unparse(loc->pargfid, gfid); -        if (local->op_ret < 0) { -                gf_msg (this->name, GF_LOG_ERROR, 0, -                        SDFS_MSG_ENTRYLK_ERROR, -                        "Acquiring entry lock failed for directory %s " -                        "with parent gfid %s", local->loc.name, gfid); -                goto err; -        } +    if (local->op_ret < 0) { +        gf_msg(this->name, GF_LOG_ERROR, 0, SDFS_MSG_ENTRYLK_ERROR, +               "Acquiring entry lock failed for directory %s " +               "with parent gfid %s", +               local->loc.name, gfid); +        goto err; +    } -        STACK_WIND (frame, sdfs_lookup_cbk, FIRST_CHILD(this), -                    FIRST_CHILD(this)->fops->lookup, loc, xdata); +    STACK_WIND(frame, sdfs_lookup_cbk, FIRST_CHILD(this), +               FIRST_CHILD(this)->fops->lookup, loc, xdata); -        return 0; +    return 0;  err: -        STACK_UNWIND_STRICT (lookup, local->main_frame, -1, local->op_errno, -                             NULL, NULL, NULL, NULL); -        local->main_frame = NULL; +    STACK_UNWIND_STRICT(lookup, local->main_frame, -1, local->op_errno, NULL, +                        NULL, NULL, NULL); +    local->main_frame = NULL; -        SDFS_STACK_DESTROY (frame); -        return 0; +    SDFS_STACK_DESTROY(frame); +    return 0;  }  int -sdfs_lookup (call_frame_t *frame, xlator_t *this, loc_t *loc, -             dict_t *xdata) +sdfs_lookup(call_frame_t *frame, xlator_t *this, loc_t *loc, dict_t *xdata)  { -        sdfs_local_t            *local      = NULL; -        call_frame_t            *new_frame  = NULL; -        call_stub_t             *stub       = NULL; -        int                      op_errno   = 0; - -        if (!loc->parent) { -                local = sdfs_local_init (frame, this); -                if (!local) { -                        op_errno = ENOMEM; -                        goto err; -                } - -                STACK_WIND_TAIL(frame, FIRST_CHILD(this), -                                FIRST_CHILD(this)->fops->lookup, -                                loc, xdata); -                return 0; -        } +    sdfs_local_t *local = NULL; +    call_frame_t *new_frame = NULL; +    call_stub_t *stub = NULL; +    int op_errno = 0; -        if (-1 == sdfs_get_new_frame (frame, loc, &new_frame)) { -                op_errno = ENOMEM; -                goto err; +    if (!loc->parent) { +        local = sdfs_local_init(frame, this); +        if (!local) { +            op_errno = ENOMEM; +            goto err;          } -        stub = fop_lookup_stub (new_frame, sdfs_lookup_helper, loc, -                                xdata); -        if (!stub) { -                op_errno = ENOMEM; -                goto err; -        } +        STACK_WIND_TAIL(frame, FIRST_CHILD(this), +                        FIRST_CHILD(this)->fops->lookup, loc, xdata); +        return 0; +    } -        local = new_frame->local; -        local->stub = stub; +    if (-1 == sdfs_get_new_frame(frame, loc, &new_frame)) { +        op_errno = ENOMEM; +        goto err; +    } -        STACK_WIND (new_frame, sdfs_entrylk_cbk, -                    FIRST_CHILD (this), -                    FIRST_CHILD(this)->fops->entrylk, -                    this->name, &local->parent_loc, local->loc.name, -                    ENTRYLK_LOCK, ENTRYLK_RDLCK, xdata); +    stub = fop_lookup_stub(new_frame, sdfs_lookup_helper, loc, xdata); +    if (!stub) { +        op_errno = ENOMEM; +        goto err; +    } -        return 0; +    local = new_frame->local; +    local->stub = stub; + +    STACK_WIND(new_frame, sdfs_entrylk_cbk, FIRST_CHILD(this), +               FIRST_CHILD(this)->fops->entrylk, this->name, &local->parent_loc, +               local->loc.name, ENTRYLK_LOCK, ENTRYLK_RDLCK, xdata); + +    return 0;  err: -        STACK_UNWIND_STRICT (lookup, frame, -1, op_errno, NULL, NULL, -                             NULL, NULL); +    STACK_UNWIND_STRICT(lookup, frame, -1, op_errno, NULL, NULL, NULL, NULL); -        if (new_frame) -                SDFS_STACK_DESTROY (new_frame); +    if (new_frame) +        SDFS_STACK_DESTROY(new_frame); -        return 0; +    return 0;  }  int32_t -sdfs_readdirp_cbk (call_frame_t *frame, void *cookie, xlator_t *this, -                   int32_t op_ret, int32_t op_errno, gf_dirent_t *entries, -                   dict_t *xdata) +sdfs_readdirp_cbk(call_frame_t *frame, void *cookie, xlator_t *this, +                  int32_t op_ret, int32_t op_errno, gf_dirent_t *entries, +                  dict_t *xdata)  { -        sdfs_local_t *local = NULL; +    sdfs_local_t *local = NULL; -        local = frame->local; -	STACK_UNWIND_STRICT (readdirp, local->main_frame, op_ret, op_errno, -                             entries, xdata); +    local = frame->local; +    STACK_UNWIND_STRICT(readdirp, local->main_frame, op_ret, op_errno, entries, +                        xdata); -        local->main_frame = NULL; -        STACK_WIND (frame, sdfs_entrylk_cbk, FIRST_CHILD (this), -                    FIRST_CHILD(this)->fops->entrylk, -                    this->name, &local->parent_loc, NULL, -                    ENTRYLK_UNLOCK, ENTRYLK_RDLCK, xdata); -        return 0; +    local->main_frame = NULL; +    STACK_WIND(frame, sdfs_entrylk_cbk, FIRST_CHILD(this), +               FIRST_CHILD(this)->fops->entrylk, this->name, &local->parent_loc, +               NULL, ENTRYLK_UNLOCK, ENTRYLK_RDLCK, xdata); +    return 0;  }  int32_t -sdfs_readdirp_helper (call_frame_t *frame, xlator_t *this, fd_t *fd, -                      size_t size, off_t off, dict_t *xdata) +sdfs_readdirp_helper(call_frame_t *frame, xlator_t *this, fd_t *fd, size_t size, +                     off_t off, dict_t *xdata)  { -        sdfs_local_t    *local                  = NULL; -        char             gfid[GF_UUID_BUF_SIZE] = {0}; +    sdfs_local_t *local = NULL; +    char gfid[GF_UUID_BUF_SIZE] = {0}; -        local = frame->local; +    local = frame->local; -        gf_uuid_unparse(fd->inode->gfid, gfid); +    gf_uuid_unparse(fd->inode->gfid, gfid); -        if (local->op_ret < 0) { -                gf_msg (this->name, GF_LOG_ERROR, 0, -                        SDFS_MSG_ENTRYLK_ERROR, -                        "Acquiring entry lock failed for directory %s " -                        "with parent gfid %s", local->loc.name, gfid); -                goto err; -        } +    if (local->op_ret < 0) { +        gf_msg(this->name, GF_LOG_ERROR, 0, SDFS_MSG_ENTRYLK_ERROR, +               "Acquiring entry lock failed for directory %s " +               "with parent gfid %s", +               local->loc.name, gfid); +        goto err; +    } -        STACK_WIND (frame, sdfs_readdirp_cbk, FIRST_CHILD(this), -                    FIRST_CHILD(this)->fops->readdirp, fd, size, off, xdata); +    STACK_WIND(frame, sdfs_readdirp_cbk, FIRST_CHILD(this), +               FIRST_CHILD(this)->fops->readdirp, fd, size, off, xdata); -        return 0; +    return 0;  err: -        STACK_UNWIND_STRICT (readdirp, local->main_frame, -1, local->op_errno, -                             NULL, NULL); +    STACK_UNWIND_STRICT(readdirp, local->main_frame, -1, local->op_errno, NULL, +                        NULL); -        local->main_frame = NULL; +    local->main_frame = NULL; -        SDFS_STACK_DESTROY (frame); -        return 0; +    SDFS_STACK_DESTROY(frame); +    return 0;  }  int32_t -sdfs_readdirp (call_frame_t *frame, xlator_t *this, fd_t *fd, size_t size, -               off_t off, dict_t *xdata) +sdfs_readdirp(call_frame_t *frame, xlator_t *this, fd_t *fd, size_t size, +              off_t off, dict_t *xdata)  { -        sdfs_local_t            *local      = NULL; -        call_frame_t            *new_frame  = NULL; -        call_stub_t             *stub       = NULL; -        int                      op_errno   = 0; - -        if (-1 == sdfs_get_new_frame_readdirp (frame, fd, &new_frame)) { -                op_errno = ENOMEM; -                goto err; -        } +    sdfs_local_t *local = NULL; +    call_frame_t *new_frame = NULL; +    call_stub_t *stub = NULL; +    int op_errno = 0; -        stub = fop_readdirp_stub (new_frame, sdfs_readdirp_helper, fd, size, -                                  off, xdata); -        if (!stub) { -                op_errno = ENOMEM; -                goto err; -        } +    if (-1 == sdfs_get_new_frame_readdirp(frame, fd, &new_frame)) { +        op_errno = ENOMEM; +        goto err; +    } -        local = new_frame->local; -        local->stub = stub; +    stub = fop_readdirp_stub(new_frame, sdfs_readdirp_helper, fd, size, off, +                             xdata); +    if (!stub) { +        op_errno = ENOMEM; +        goto err; +    } -        STACK_WIND (new_frame, sdfs_entrylk_cbk, -                    FIRST_CHILD (this), -                    FIRST_CHILD(this)->fops->entrylk, -                    this->name, &local->parent_loc, NULL, -                    ENTRYLK_LOCK, ENTRYLK_RDLCK, xdata); +    local = new_frame->local; +    local->stub = stub; -        return 0; +    STACK_WIND(new_frame, sdfs_entrylk_cbk, FIRST_CHILD(this), +               FIRST_CHILD(this)->fops->entrylk, this->name, &local->parent_loc, +               NULL, ENTRYLK_LOCK, ENTRYLK_RDLCK, xdata); + +    return 0;  err: -        STACK_UNWIND_STRICT (readdirp, frame, -1, op_errno, NULL, NULL); +    STACK_UNWIND_STRICT(readdirp, frame, -1, op_errno, NULL, NULL); -        if (new_frame) -                SDFS_STACK_DESTROY (new_frame); +    if (new_frame) +        SDFS_STACK_DESTROY(new_frame); -        return 0; +    return 0;  }  int -init (xlator_t *this) +init(xlator_t *this)  { -        int ret = -1; +    int ret = -1; -        if (!this->children || this->children->next) { -                gf_log (this->name, GF_LOG_ERROR, -                        "'dentry-fop-serializer' not configured with exactly one child"); -                goto out; -        } +    if (!this->children || this->children->next) { +        gf_log(this->name, GF_LOG_ERROR, +               "'dentry-fop-serializer' not configured with exactly one child"); +        goto out; +    } -        if (!this->parents) { -                gf_log (this->name, GF_LOG_WARNING, -                        "dangling volume. check volfile "); -        } +    if (!this->parents) { +        gf_log(this->name, GF_LOG_WARNING, "dangling volume. check volfile "); +    } -        this->local_pool = mem_pool_new (sdfs_local_t, 512); -        if (!this->local_pool) { -                goto out; -        } +    this->local_pool = mem_pool_new(sdfs_local_t, 512); +    if (!this->local_pool) { +        goto out; +    } -        GF_OPTION_INIT ("pass-through", this->pass_through, bool, out); +    GF_OPTION_INIT("pass-through", this->pass_through, bool, out); -        ret = 0; +    ret = 0;  out: -        return ret; +    return ret;  }  int -reconfigure (xlator_t *this, dict_t *options) +reconfigure(xlator_t *this, dict_t *options)  { -        int ret = -1; +    int ret = -1; -        GF_OPTION_RECONF ("pass-through", this->pass_through, options, bool, -                          out); +    GF_OPTION_RECONF("pass-through", this->pass_through, options, bool, out); -        ret = 0; - out: -        return ret; +    ret = 0; +out: +    return ret;  }  int -fini (xlator_t *this) +fini(xlator_t *this)  { -        mem_pool_destroy (this->local_pool); +    mem_pool_destroy(this->local_pool); -        return 0; +    return 0;  } -  struct xlator_fops fops = { -        .mkdir      = sdfs_mkdir, -        .rmdir      = sdfs_rmdir, -        .create     = sdfs_create, -        .unlink     = sdfs_unlink, -        .symlink    = sdfs_symlink, -        .link       = sdfs_link, -        .mknod      = sdfs_mknod, -        .rename     = sdfs_rename, -        .lookup     = sdfs_lookup, -        .readdirp   = sdfs_readdirp, +    .mkdir = sdfs_mkdir, +    .rmdir = sdfs_rmdir, +    .create = sdfs_create, +    .unlink = sdfs_unlink, +    .symlink = sdfs_symlink, +    .link = sdfs_link, +    .mknod = sdfs_mknod, +    .rename = sdfs_rename, +    .lookup = sdfs_lookup, +    .readdirp = sdfs_readdirp,  };  struct xlator_cbks cbks;  struct volume_options options[] = { -        { .key  = {"pass-through"}, -          .type = GF_OPTION_TYPE_BOOL, -          .default_value = "false", -          .op_version = {GD_OP_VERSION_4_1_0}, -          .flags = OPT_FLAG_SETTABLE | OPT_FLAG_DOC | OPT_FLAG_CLIENT_OPT, -          .tags = {"sdfs"}, -          .description = "Enable/Disable dentry serialize functionality" -        }, -        { .key  = {NULL} }, +    {.key = {"pass-through"}, +     .type = GF_OPTION_TYPE_BOOL, +     .default_value = "false", +     .op_version = {GD_OP_VERSION_4_1_0}, +     .flags = OPT_FLAG_SETTABLE | OPT_FLAG_DOC | OPT_FLAG_CLIENT_OPT, +     .tags = {"sdfs"}, +     .description = "Enable/Disable dentry serialize functionality"}, +    {.key = {NULL}},  };  | 
