summaryrefslogtreecommitdiffstats
path: root/api/src/glfs.h
diff options
context:
space:
mode:
authorSoumya Koduri <skoduri@redhat.com>2017-10-17 16:12:06 +0530
committerSoumya Koduri <skoduri@redhat.com>2017-10-17 16:20:19 +0530
commitfea9e398da9865ce193d347d14fe2d56fe9946a2 (patch)
treec0697b756505bc3570b015d846fc2f4f9a0f2d34 /api/src/glfs.h
parentccec52220f4d2fb148c1bb1573a11b1727af7a0c (diff)
gfapi: set lkowner in glfd
We need a provision to be able to set lkowner (which is used to distinguish locks maintained by server) in gfapi. Since the same lk_owner need to be used to be able to flush the lock while closing the fd, store the lkowner in the glfd structure itself. A new API has been added to be able to set lkowner in glfd. This is backport of below mainline fix - https://review.gluster.org/#/c/18429 https://review.gluster.org/#/c/18522/ Change-Id: I67591d6b9a89c20b9617d52616513ff9e6c06b47 BUG: 1501955 Signed-off-by: Soumya Koduri <skoduri@redhat.com>
Diffstat (limited to 'api/src/glfs.h')
-rw-r--r--api/src/glfs.h28
1 files changed, 28 insertions, 0 deletions
diff --git a/api/src/glfs.h b/api/src/glfs.h
index 397bb878434..a5f6e460934 100644
--- a/api/src/glfs.h
+++ b/api/src/glfs.h
@@ -795,6 +795,34 @@ int glfs_sysrq (glfs_t *fs, char sysrq) __THROW
int glfs_ipc (glfs_fd_t *fd, int cmd) __THROW
GFAPI_PUBLIC(glfs_ipc, 3.7.0);
+#define GFAPI_MAX_LOCK_OWNER_LEN 255
+
+/*
+ *
+ * DESCRIPTION
+ *
+ * This API allows application to set lk_owner on a fd.
+ * A glfd can be associated with only single lk_owner. In case if there
+ * is need to set another lk_owner, applications can make use of
+ * 'glfs_dup' to get duplicate glfd and set new lk_owner on that second
+ * glfd.
+ *
+ * Also its not recommended to override or clear lk_owner value as the
+ * same shall be used to flush any outstanding locks while closing the fd.
+ *
+ * PARAMETERS
+ *
+ * INPUT:
+ * @glfd: GFAPI file descriptor
+ * @len: Size of lk_owner buffer. Max value can be GFAPI_MAX_LOCK_OWNER_LEN
+ * @data: lk_owner data buffer.
+ *
+ * OUTPUT:
+ * 0: SUCCESS
+ * -1: FAILURE
+ */
+int glfs_fd_set_lkowner (glfs_fd_t *glfd, void *data, int len);
+ GFAPI_PUBLIC(glfs_fd_set_lkowner, 3.10.7);
__END_DECLS
#endif /* !_GLFS_H */