|
|
d1681e |
From 87fd48e99d6b3556aba0c4f1485b06334b8cc1cf Mon Sep 17 00:00:00 2001
|
|
|
d1681e |
From: Raghavendra G <rgowdapp@redhat.com>
|
|
|
d1681e |
Date: Wed, 9 May 2018 14:57:35 +0530
|
|
|
d1681e |
Subject: [PATCH 261/271] libglusterfs/syncop: Add syncop_entrylk
|
|
|
d1681e |
|
|
|
d1681e |
>Change-Id: Idd86b9f0fa144c2316ab6276e2def28b696ae18a
|
|
|
d1681e |
>BUG: 1543279
|
|
|
d1681e |
>Signed-off-by: Raghavendra G <rgowdapp@redhat.com>
|
|
|
d1681e |
|
|
|
d1681e |
upstream patch: https://review.gluster.org/#/c/19556/
|
|
|
d1681e |
BUG: 1488120
|
|
|
d1681e |
Change-Id: I02e546bcb012545dcdaa70ea26046db05b5032f4
|
|
|
d1681e |
Signed-off-by: Raghavendra G <rgowdapp@redhat.com>
|
|
|
d1681e |
Reviewed-on: https://code.engineering.redhat.com/gerrit/138169
|
|
|
d1681e |
Tested-by: RHGS Build Bot <nigelb@redhat.com>
|
|
|
d1681e |
Reviewed-by: Nithya Balachandran <nbalacha@redhat.com>
|
|
|
d1681e |
---
|
|
|
d1681e |
libglusterfs/src/syncop.c | 37 +++++++++++++++++++++++++++++++++++++
|
|
|
d1681e |
libglusterfs/src/syncop.h | 5 +++++
|
|
|
d1681e |
2 files changed, 42 insertions(+)
|
|
|
d1681e |
|
|
|
d1681e |
diff --git a/libglusterfs/src/syncop.c b/libglusterfs/src/syncop.c
|
|
|
d1681e |
index b36c88d..ac40a1d 100644
|
|
|
d1681e |
--- a/libglusterfs/src/syncop.c
|
|
|
d1681e |
+++ b/libglusterfs/src/syncop.c
|
|
|
d1681e |
@@ -3019,6 +3019,43 @@ syncop_inodelk (xlator_t *subvol, const char *volume, loc_t *loc, int32_t cmd,
|
|
|
d1681e |
}
|
|
|
d1681e |
|
|
|
d1681e |
int32_t
|
|
|
d1681e |
+syncop_entrylk_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
|
|
d1681e |
+ int32_t op_ret, int32_t op_errno, dict_t *xdata)
|
|
|
d1681e |
+{
|
|
|
d1681e |
+ struct syncargs *args = NULL;
|
|
|
d1681e |
+
|
|
|
d1681e |
+ args = cookie;
|
|
|
d1681e |
+ args->op_ret = op_ret;
|
|
|
d1681e |
+ args->op_errno = op_errno;
|
|
|
d1681e |
+ if (xdata)
|
|
|
d1681e |
+ args->xdata = dict_ref (xdata);
|
|
|
d1681e |
+
|
|
|
d1681e |
+ __wake (args);
|
|
|
d1681e |
+ return 0;
|
|
|
d1681e |
+}
|
|
|
d1681e |
+
|
|
|
d1681e |
+int
|
|
|
d1681e |
+syncop_entrylk (xlator_t *subvol, const char *volume, loc_t *loc,
|
|
|
d1681e |
+ const char *basename, entrylk_cmd cmd, entrylk_type type,
|
|
|
d1681e |
+ dict_t *xdata_in, dict_t **xdata_out)
|
|
|
d1681e |
+{
|
|
|
d1681e |
+ struct syncargs args = {0, };
|
|
|
d1681e |
+
|
|
|
d1681e |
+ SYNCOP (subvol, (&args), syncop_entrylk_cbk, subvol->fops->entrylk,
|
|
|
d1681e |
+ volume, loc, basename, cmd, type, xdata_in);
|
|
|
d1681e |
+
|
|
|
d1681e |
+ if (xdata_out)
|
|
|
d1681e |
+ *xdata_out = args.xdata;
|
|
|
d1681e |
+ else if (args.xdata)
|
|
|
d1681e |
+ dict_unref (args.xdata);
|
|
|
d1681e |
+
|
|
|
d1681e |
+ if (args.op_ret < 0)
|
|
|
d1681e |
+ return -args.op_errno;
|
|
|
d1681e |
+
|
|
|
d1681e |
+ return args.op_ret;
|
|
|
d1681e |
+}
|
|
|
d1681e |
+
|
|
|
d1681e |
+int32_t
|
|
|
d1681e |
syncop_xattrop_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
|
|
d1681e |
int32_t op_ret, int32_t op_errno, dict_t *dict,
|
|
|
d1681e |
dict_t *xdata)
|
|
|
d1681e |
diff --git a/libglusterfs/src/syncop.h b/libglusterfs/src/syncop.h
|
|
|
d1681e |
index a9cdee1..5b5ad4e 100644
|
|
|
d1681e |
--- a/libglusterfs/src/syncop.h
|
|
|
d1681e |
+++ b/libglusterfs/src/syncop.h
|
|
|
d1681e |
@@ -562,4 +562,9 @@ syncop_setactivelk (xlator_t *subvol, loc_t *loc,
|
|
|
d1681e |
lock_migration_info_t *locklist, dict_t *xdata_in,
|
|
|
d1681e |
dict_t **xdata_out);
|
|
|
d1681e |
|
|
|
d1681e |
+int
|
|
|
d1681e |
+syncop_entrylk (xlator_t *subvol, const char *volume, loc_t *loc,
|
|
|
d1681e |
+ const char *basename, entrylk_cmd cmd, entrylk_type type,
|
|
|
d1681e |
+ dict_t *xdata_in, dict_t **xdata_out);
|
|
|
d1681e |
+
|
|
|
d1681e |
#endif /* _SYNCOP_H */
|
|
|
d1681e |
--
|
|
|
d1681e |
1.8.3.1
|
|
|
d1681e |
|