diff options
author | Soumya Koduri <skoduri@redhat.com> | 2015-04-30 13:28:44 +0530 |
---|---|---|
committer | Kaleb KEITHLEY <kkeithle@redhat.com> | 2015-05-05 06:57:43 -0700 |
commit | 170cc4ea08aa48e69c2df6be5841076c9a119d5a (patch) | |
tree | a1afb1e9efc19225a4f37a1cb08deb6b4aaffebf /libglusterfs/src | |
parent | 08107796c89f5f201b24d689ab6757237c743c0d (diff) |
Upcall: Send stat as part of cache_invalidation notifications
Have added support to send attributes of both entries and
its parent (include oldparent in case of RENAME fop) in the
same notification request to avoid multiple rpc requests.
Also, made changes in gfapi to send parent object and its
attributes changed in a single upcall event.
Change-Id: I92833da3bcec38d65216921c2ce4d10367c32ef1
BUG: 1200262
Signed-off-by: Soumya Koduri <skoduri@redhat.com>
Reviewed-on: http://review.gluster.org/10460
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Kaleb KEITHLEY <kkeithle@redhat.com>
Diffstat (limited to 'libglusterfs/src')
-rw-r--r-- | libglusterfs/src/Makefile.am | 2 | ||||
-rw-r--r-- | libglusterfs/src/glusterfs.h | 17 | ||||
-rw-r--r-- | libglusterfs/src/upcall-utils.h | 38 |
3 files changed, 39 insertions, 18 deletions
diff --git a/libglusterfs/src/Makefile.am b/libglusterfs/src/Makefile.am index c7b85bdf839..e5f9f52f323 100644 --- a/libglusterfs/src/Makefile.am +++ b/libglusterfs/src/Makefile.am @@ -48,7 +48,7 @@ noinst_HEADERS = common-utils.h defaults.h dict.h glusterfs.h hashfn.h timespec. $(CONTRIBDIR)/libexecinfo/execinfo_compat.h \ unittest/unittest.h quota-common-utils.h rot-buffs.h \ $(CONTRIBDIR)/timer-wheel/timer-wheel.h compat-uuid.h \ - tw.h + tw.h upcall-utils.h if !HAVE_LIBUUID # FIXME: unbundle libuuid, see compat-uuid.h. diff --git a/libglusterfs/src/glusterfs.h b/libglusterfs/src/glusterfs.h index 50c86d91467..ba59e4d54db 100644 --- a/libglusterfs/src/glusterfs.h +++ b/libglusterfs/src/glusterfs.h @@ -370,11 +370,6 @@ typedef enum { GF_XATTROP_AND_ARRAY } gf_xattrop_flags_t; -typedef enum { - GF_UPCALL_EVENT_NULL, - GF_UPCALL_CACHE_INVALIDATION, -} gf_upcall_event_t; - #define GF_SET_IF_NOT_PRESENT 0x1 /* default behaviour */ #define GF_SET_OVERWRITE 0x2 /* Overwrite with the buf given */ #define GF_SET_DIR_ONLY 0x4 @@ -621,18 +616,6 @@ struct gf_flock { gf_lkowner_t l_owner; }; -struct gf_upcall { - char *client_uid; - uuid_t gfid; - u_int event_type; - void *data; -}; - -struct gf_upcall_cache_invalidation { - u_int flags; - u_int expire_time_attr; -}; - #define GF_MUST_CHECK __attribute__((warn_unused_result)) /* * Some macros (e.g. ALLOC_OR_GOTO) set variables in function scope, but the diff --git a/libglusterfs/src/upcall-utils.h b/libglusterfs/src/upcall-utils.h new file mode 100644 index 00000000000..001566fd85e --- /dev/null +++ b/libglusterfs/src/upcall-utils.h @@ -0,0 +1,38 @@ +/* + Copyright (c) 2015, Red Hat, Inc. <http://www.redhat.com> + This file is part of GlusterFS. + + This file is licensed to you under your choice of the GNU Lesser + General Public License, version 3 or any later version (LGPLv3 or + later), or the GNU General Public License, version 2 (GPLv2), in all + cases as published by the Free Software Foundation. +*/ + +#ifndef _UPCALL_UTILS_H +#define _UPCALL_UTILS_H + +#include "iatt.h" +#include "compat-uuid.h" +#include "compat.h" + +typedef enum { + GF_UPCALL_EVENT_NULL, + GF_UPCALL_CACHE_INVALIDATION, +} gf_upcall_event_t; + +struct gf_upcall { + char *client_uid; + uuid_t gfid; + uint32_t event_type; + void *data; +}; + +struct gf_upcall_cache_invalidation { + uint32_t flags; + uint32_t expire_time_attr; + struct iatt stat; + struct iatt p_stat; /* parent dir stat */ + struct iatt oldp_stat; /* oldparent dir stat */ +}; + +#endif /* _UPCALL_UTILS_H */ |