diff options
| author | Susant Palai <spalai@redhat.com> | 2016-04-17 10:14:02 +0530 | 
|---|---|---|
| committer | Niels de Vos <ndevos@redhat.com> | 2016-05-01 18:04:21 -0700 | 
| commit | c4efd39d339535856c1a0a6b0fad2783587411c9 (patch) | |
| tree | bd6b6e2c632b42bda264f7cc0327cca4159e49a3 /libglusterfs/src/default-args.c | |
| parent | f1f6a0e2b09884151c37434bd512cb1482608218 (diff) | |
core: add getactivelk () fop
Change-Id: Ifd0ff278dcf43da064021f5c25e5dcd34347fcde
BUG: 1326085
Signed-off-by: Susant Palai <spalai@redhat.com>
Reviewed-on: http://review.gluster.org/13970
Smoke: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Niels de Vos <ndevos@redhat.com>
NetBSD-regression: NetBSD Build System <jenkins@build.gluster.org>
CentOS-regression: Gluster Build System <jenkins@build.gluster.com>
Diffstat (limited to 'libglusterfs/src/default-args.c')
| -rw-r--r-- | libglusterfs/src/default-args.c | 41 | 
1 files changed, 41 insertions, 0 deletions
diff --git a/libglusterfs/src/default-args.c b/libglusterfs/src/default-args.c index 1ce907f6221..ca24c2fe08c 100644 --- a/libglusterfs/src/default-args.c +++ b/libglusterfs/src/default-args.c @@ -1431,6 +1431,47 @@ args_seek_cbk_store (default_args_cbk_t *args, int32_t op_ret,          return 0;  } +int +args_getactivelk_cbk_store (default_args_cbk_t *args, +                      int32_t op_ret, int32_t op_errno, +                      lock_migration_info_t *locklist, dict_t *xdata) +{ +        lock_migration_info_t  *stub_entry = NULL, *entry = NULL; +        int     ret = 0; + +        args->op_ret = op_ret; +        args->op_errno = op_errno; +        /*op_ret needs to carry the number of locks present in the list*/ +        if (op_ret > 0) { +                list_for_each_entry (entry, &locklist->list, list) { +                        stub_entry = GF_CALLOC (1, sizeof (*stub_entry), +                                                gf_common_mt_char); +                        if (!stub_entry) { +                               ret = -1; +                               goto out; +                        } + +                        INIT_LIST_HEAD (&stub_entry->list); +                        stub_entry->flock = entry->flock; + +                        stub_entry->client_uid = gf_strdup (entry->client_uid); +                        if (!stub_entry->client_uid) { +                                GF_FREE (stub_entry); +                                ret = -1; +                                goto out; +                        } + +                        list_add_tail (&stub_entry->list, +                                       &args->locklist.list); +                } +        } + +        if (xdata) +                args->xdata = dict_ref (xdata); +out: +        return ret; +} +  void  args_lease_store (default_args_t *args, loc_t *loc, struct gf_lease *lease,                    dict_t *xdata)  | 
