summaryrefslogtreecommitdiffstats
path: root/libglusterfs/src/default-args.c
diff options
context:
space:
mode:
authorSusant Palai <spalai@redhat.com>2016-04-17 10:14:02 +0530
committerNiels de Vos <ndevos@redhat.com>2016-05-01 18:04:21 -0700
commitc4efd39d339535856c1a0a6b0fad2783587411c9 (patch)
treebd6b6e2c632b42bda264f7cc0327cca4159e49a3 /libglusterfs/src/default-args.c
parentf1f6a0e2b09884151c37434bd512cb1482608218 (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.c41
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)