summaryrefslogtreecommitdiffstats
path: root/rpc
diff options
context:
space:
mode:
Diffstat (limited to 'rpc')
-rw-r--r--rpc/rpc-lib/src/protocol-common.h3
-rw-r--r--rpc/xdr/src/glusterfs3-xdr.x9
-rw-r--r--rpc/xdr/src/glusterfs3.h12
3 files changed, 24 insertions, 0 deletions
diff --git a/rpc/rpc-lib/src/protocol-common.h b/rpc/rpc-lib/src/protocol-common.h
index 8ab6078aaf5..3d8cf11fa5f 100644
--- a/rpc/rpc-lib/src/protocol-common.h
+++ b/rpc/rpc-lib/src/protocol-common.h
@@ -131,6 +131,9 @@ enum gf_cbk_procnum {
GF_CBK_INO_FLUSH,
GF_CBK_EVENT_NOTIFY,
GF_CBK_GET_SNAPS,
+ /* XXX: Have separate events for each
+ * UPCALL event - BZ 1200268) */
+ GF_CBK_UPCALL,
GF_CBK_MAXVALUE,
};
diff --git a/rpc/xdr/src/glusterfs3-xdr.x b/rpc/xdr/src/glusterfs3-xdr.x
index a68fcae7e1c..81b0f201f89 100644
--- a/rpc/xdr/src/glusterfs3-xdr.x
+++ b/rpc/xdr/src/glusterfs3-xdr.x
@@ -43,6 +43,15 @@ struct gf_iatt {
unsigned int ia_ctime_nsec;
};
+
+struct gfs3_upcall_req {
+ opaque gfid[16];
+ unsigned int event_type; /* Upcall event type */
+ unsigned int flags; /* or mask of events incase of inotify */
+ unsigned int expire_time_attr; /* the amount of time which client
+ * can cache this entry */
+};
+
struct gfs3_stat_req {
opaque gfid[16];
opaque xdata<>; /* Extra data */
diff --git a/rpc/xdr/src/glusterfs3.h b/rpc/xdr/src/glusterfs3.h
index 798413e3145..b3ee267b64d 100644
--- a/rpc/xdr/src/glusterfs3.h
+++ b/rpc/xdr/src/glusterfs3.h
@@ -267,4 +267,16 @@ gf_stat_from_iatt (struct gf_iatt *gf_stat, struct iatt *iatt)
gf_stat->ia_ctime_nsec = iatt->ia_ctime_nsec ;
}
+static inline void
+gf_proto_upcall_from_upcall (gfs3_upcall_req *gf_up_req,
+ struct gf_upcall *gf_up_data)
+{
+ if (!gf_up_req || !gf_up_data)
+ return;
+
+ memcpy (gf_up_req->gfid, gf_up_data->gfid, 16);
+ gf_up_req->event_type = gf_up_data->event_type;
+ gf_up_req->flags = gf_up_data->flags;
+ gf_up_req->expire_time_attr = gf_up_data->expire_time_attr;
+}
#endif /* !_GLUSTERFS3_H */