diff options
| author | Amar Tumballi <amarts@redhat.com> | 2012-03-20 17:22:24 +0530 | 
|---|---|---|
| committer | Anand Avati <avati@redhat.com> | 2012-03-22 16:40:27 -0700 | 
| commit | 9d3af972f516b6ba38d2736ce2016e34a452d569 (patch) | |
| tree | 1dcdc620748a42cdfb5464c3adaae5a4a3a6f869 /libglusterfs/src/xlator.h | |
| parent | afe542eca18888463798747d2a95e5a9d239a4a0 (diff) | |
core: adding extra data for fops
with this change, the xlator APIs will have a dictionary as extra
argument, which is passed between all the layers. This can be
utilized for overloading in some of the operations.
Change-Id: I58a8186b3ef647650280e63f3e5e9b9de7827b40
Signed-off-by: Amar Tumballi <amarts@redhat.com>
BUG: 782265
Reviewed-on: http://review.gluster.com/2960
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Anand Avati <avati@redhat.com>
Diffstat (limited to 'libglusterfs/src/xlator.h')
| -rw-r--r-- | libglusterfs/src/xlator.h | 177 | 
1 files changed, 87 insertions, 90 deletions
diff --git a/libglusterfs/src/xlator.h b/libglusterfs/src/xlator.h index c0b56a7b0..bad328f6c 100644 --- a/libglusterfs/src/xlator.h +++ b/libglusterfs/src/xlator.h @@ -106,7 +106,8 @@ typedef int32_t (*fop_rchecksum_cbk_t) (call_frame_t *frame,                                          int32_t op_ret,                                          int32_t op_errno,                                          uint32_t weak_checksum, -                                        uint8_t *strong_checksum); +                                        uint8_t *strong_checksum, +                                        dict_t *xdata);  typedef int32_t (*fop_getspec_t) (call_frame_t *frame, @@ -117,7 +118,7 @@ typedef int32_t (*fop_getspec_t) (call_frame_t *frame,  typedef int32_t (*fop_rchecksum_t) (call_frame_t *frame,                                      xlator_t *this,                                      fd_t *fd, off_t offset, -                                    int32_t len); +                                    int32_t len, dict_t *xdata);  typedef int32_t (*fop_lookup_cbk_t) (call_frame_t *frame, @@ -127,7 +128,7 @@ typedef int32_t (*fop_lookup_cbk_t) (call_frame_t *frame,                                       int32_t op_errno,                                       inode_t *inode,                                       struct iatt *buf, -                                     dict_t *xattr, +                                     dict_t *xdata,                                       struct iatt *postparent);  typedef int32_t (*fop_stat_cbk_t) (call_frame_t *frame, @@ -135,14 +136,14 @@ typedef int32_t (*fop_stat_cbk_t) (call_frame_t *frame,                                     xlator_t *this,                                     int32_t op_ret,                                     int32_t op_errno, -                                   struct iatt *buf); +                                   struct iatt *buf, dict_t *xdata);  typedef int32_t (*fop_fstat_cbk_t) (call_frame_t *frame,                                      void *cookie,                                      xlator_t *this,                                      int32_t op_ret,                                      int32_t op_errno, -                                    struct iatt *buf); +                                    struct iatt *buf, dict_t *xdata);  typedef int32_t (*fop_truncate_cbk_t) (call_frame_t *frame,                                         void *cookie, @@ -150,7 +151,7 @@ typedef int32_t (*fop_truncate_cbk_t) (call_frame_t *frame,                                         int32_t op_ret,                                         int32_t op_errno,                                         struct iatt *prebuf, -                                       struct iatt *postbuf); +                                       struct iatt *postbuf, dict_t *xdata);  typedef int32_t (*fop_ftruncate_cbk_t) (call_frame_t *frame,                                          void *cookie, @@ -158,13 +159,13 @@ typedef int32_t (*fop_ftruncate_cbk_t) (call_frame_t *frame,                                          int32_t op_ret,                                          int32_t op_errno,                                          struct iatt *prebuf, -                                        struct iatt *postbuf); +                                        struct iatt *postbuf, dict_t *xdata);  typedef int32_t (*fop_access_cbk_t) (call_frame_t *frame,                                       void *cookie,                                       xlator_t *this,                                       int32_t op_ret, -                                     int32_t op_errno); +                                     int32_t op_errno, dict_t *xdata);  typedef int32_t (*fop_readlink_cbk_t) (call_frame_t *frame,                                         void *cookie, @@ -172,7 +173,7 @@ typedef int32_t (*fop_readlink_cbk_t) (call_frame_t *frame,                                         int32_t op_ret,                                         int32_t op_errno,                                         const char *path, -                                       struct iatt *buf); +                                       struct iatt *buf, dict_t *xdata);  typedef int32_t (*fop_mknod_cbk_t) (call_frame_t *frame,                                      void *cookie, @@ -182,7 +183,7 @@ typedef int32_t (*fop_mknod_cbk_t) (call_frame_t *frame,                                      inode_t *inode,                                      struct iatt *buf,                                      struct iatt *preparent, -                                    struct iatt *postparent); +                                    struct iatt *postparent, dict_t *xdata);  typedef int32_t (*fop_mkdir_cbk_t) (call_frame_t *frame,                                      void *cookie, @@ -192,7 +193,7 @@ typedef int32_t (*fop_mkdir_cbk_t) (call_frame_t *frame,                                      inode_t *inode,                                      struct iatt *buf,                                      struct iatt *preparent, -                                    struct iatt *postparent); +                                    struct iatt *postparent, dict_t *xdata);  typedef int32_t (*fop_unlink_cbk_t) (call_frame_t *frame,                                       void *cookie, @@ -200,7 +201,7 @@ typedef int32_t (*fop_unlink_cbk_t) (call_frame_t *frame,                                       int32_t op_ret,                                       int32_t op_errno,                                       struct iatt *preparent, -                                     struct iatt *postparent); +                                     struct iatt *postparent, dict_t *xdata);  typedef int32_t (*fop_rmdir_cbk_t) (call_frame_t *frame,                                      void *cookie, @@ -208,7 +209,7 @@ typedef int32_t (*fop_rmdir_cbk_t) (call_frame_t *frame,                                      int32_t op_ret,                                      int32_t op_errno,                                      struct iatt *preparent, -                                    struct iatt *postparent); +                                    struct iatt *postparent, dict_t *xdata);  typedef int32_t (*fop_symlink_cbk_t) (call_frame_t *frame,                                        void *cookie, @@ -218,7 +219,7 @@ typedef int32_t (*fop_symlink_cbk_t) (call_frame_t *frame,                                        inode_t *inode,                                        struct iatt *buf,                                        struct iatt *preparent, -                                      struct iatt *postparent); +                                      struct iatt *postparent, dict_t *xdata);  typedef int32_t (*fop_rename_cbk_t) (call_frame_t *frame,                                       void *cookie, @@ -229,7 +230,7 @@ typedef int32_t (*fop_rename_cbk_t) (call_frame_t *frame,                                       struct iatt *preoldparent,                                       struct iatt *postoldparent,                                       struct iatt *prenewparent, -                                     struct iatt *postnewparent); +                                     struct iatt *postnewparent, dict_t *xdata);  typedef int32_t (*fop_link_cbk_t) (call_frame_t *frame,                                     void *cookie, @@ -239,7 +240,7 @@ typedef int32_t (*fop_link_cbk_t) (call_frame_t *frame,                                     inode_t *inode,                                     struct iatt *buf,                                     struct iatt *preparent, -                                   struct iatt *postparent); +                                   struct iatt *postparent, dict_t *xdata);  typedef int32_t (*fop_create_cbk_t) (call_frame_t *frame,                                       void *cookie, @@ -250,14 +251,14 @@ typedef int32_t (*fop_create_cbk_t) (call_frame_t *frame,                                       inode_t *inode,                                       struct iatt *buf,                                       struct iatt *preparent, -                                     struct iatt *postparent); +                                     struct iatt *postparent, dict_t *xdata);  typedef int32_t (*fop_open_cbk_t) (call_frame_t *frame,                                     void *cookie,                                     xlator_t *this,                                     int32_t op_ret,                                     int32_t op_errno, -                                   fd_t *fd); +                                   fd_t *fd, dict_t *xdata);  typedef int32_t (*fop_readv_cbk_t) (call_frame_t *frame,                                      void *cookie, @@ -267,7 +268,7 @@ typedef int32_t (*fop_readv_cbk_t) (call_frame_t *frame,                                      struct iovec *vector,                                      int32_t count,                                      struct iatt *stbuf, -                                    struct iobref *iobref); +                                    struct iobref *iobref, dict_t *xdata);  typedef int32_t (*fop_writev_cbk_t) (call_frame_t *frame,                                       void *cookie, @@ -275,13 +276,13 @@ typedef int32_t (*fop_writev_cbk_t) (call_frame_t *frame,                                       int32_t op_ret,                                       int32_t op_errno,                                       struct iatt *prebuf, -                                     struct iatt *postbuf); +                                     struct iatt *postbuf, dict_t *xdata);  typedef int32_t (*fop_flush_cbk_t) (call_frame_t *frame,                                      void *cookie,                                      xlator_t *this,                                      int32_t op_ret, -                                    int32_t op_errno); +                                    int32_t op_errno, dict_t *xdata);  typedef int32_t (*fop_fsync_cbk_t) (call_frame_t *frame,                                      void *cookie, @@ -289,124 +290,124 @@ typedef int32_t (*fop_fsync_cbk_t) (call_frame_t *frame,                                      int32_t op_ret,                                      int32_t op_errno,                                      struct iatt *prebuf, -                                    struct iatt *postbuf); +                                    struct iatt *postbuf, dict_t *xdata);  typedef int32_t (*fop_opendir_cbk_t) (call_frame_t *frame,                                        void *cookie,                                        xlator_t *this,                                        int32_t op_ret,                                        int32_t op_errno, -                                      fd_t *fd); +                                      fd_t *fd, dict_t *xdata);  typedef int32_t (*fop_fsyncdir_cbk_t) (call_frame_t *frame,                                         void *cookie,                                         xlator_t *this,                                         int32_t op_ret, -                                       int32_t op_errno); +                                       int32_t op_errno, dict_t *xdata);  typedef int32_t (*fop_statfs_cbk_t) (call_frame_t *frame,                                       void *cookie,                                       xlator_t *this,                                       int32_t op_ret,                                       int32_t op_errno, -                                     struct statvfs *buf); +                                     struct statvfs *buf, dict_t *xdata);  typedef int32_t (*fop_setxattr_cbk_t) (call_frame_t *frame,                                         void *cookie,                                         xlator_t *this,                                         int32_t op_ret, -                                       int32_t op_errno); +                                       int32_t op_errno, dict_t *xdata);  typedef int32_t (*fop_getxattr_cbk_t) (call_frame_t *frame,                                         void *cookie,                                         xlator_t *this,                                         int32_t op_ret,                                         int32_t op_errno, -                                       dict_t *dict); +                                       dict_t *dict, dict_t *xdata);  typedef int32_t (*fop_fsetxattr_cbk_t) (call_frame_t *frame,                                          void *cookie,                                          xlator_t *this,                                          int32_t op_ret, -                                        int32_t op_errno); +                                        int32_t op_errno, dict_t *xdata);  typedef int32_t (*fop_fgetxattr_cbk_t) (call_frame_t *frame,                                          void *cookie,                                          xlator_t *this,                                          int32_t op_ret,                                          int32_t op_errno, -                                        dict_t *dict); +                                        dict_t *dict, dict_t *xdata);  typedef int32_t (*fop_removexattr_cbk_t) (call_frame_t *frame,                                            void *cookie,                                            xlator_t *this,                                            int32_t op_ret, -                                          int32_t op_errno); +                                          int32_t op_errno, dict_t *xdata);  typedef int32_t (*fop_fremovexattr_cbk_t) (call_frame_t *frame,                                             void *cookie,                                             xlator_t *this,                                             int32_t op_ret, -                                           int32_t op_errno); +                                           int32_t op_errno, dict_t *xdata);  typedef int32_t (*fop_lk_cbk_t) (call_frame_t *frame,                                   void *cookie,                                   xlator_t *this,                                   int32_t op_ret,                                   int32_t op_errno, -                                 struct gf_flock *flock); +                                 struct gf_flock *flock, dict_t *xdata);  typedef int32_t (*fop_inodelk_cbk_t) (call_frame_t *frame,                                        void *cookie,                                        xlator_t *this,                                        int32_t op_ret, -                                      int32_t op_errno); +                                      int32_t op_errno, dict_t *xdata);  typedef int32_t (*fop_finodelk_cbk_t) (call_frame_t *frame,                                         void *cookie,                                         xlator_t *this,                                         int32_t op_ret, -                                       int32_t op_errno); +                                       int32_t op_errno, dict_t *xdata);  typedef int32_t (*fop_entrylk_cbk_t) (call_frame_t *frame,                                        void *cookie,                                        xlator_t *this,                                        int32_t op_ret, -                                      int32_t op_errno); +                                      int32_t op_errno, dict_t *xdata);  typedef int32_t (*fop_fentrylk_cbk_t) (call_frame_t *frame,                                         void *cookie,                                         xlator_t *this,                                         int32_t op_ret, -                                       int32_t op_errno); +                                       int32_t op_errno, dict_t *xdata);  typedef int32_t (*fop_readdir_cbk_t) (call_frame_t *frame,                                        void *cookie,                                        xlator_t *this,                                        int32_t op_ret,                                        int32_t op_errno, -                                      gf_dirent_t *entries); +                                      gf_dirent_t *entries, dict_t *xdata);  typedef int32_t (*fop_readdirp_cbk_t) (call_frame_t *frame,                                         void *cookie,                                         xlator_t *this,                                         int32_t op_ret,                                         int32_t op_errno, -                                       gf_dirent_t *entries); +                                       gf_dirent_t *entries, dict_t *xdata);  typedef int32_t (*fop_xattrop_cbk_t) (call_frame_t *frame,                                        void *cookie,                                        xlator_t *this,                                        int32_t op_ret,                                        int32_t op_errno, -                                      dict_t *xattr); +                                      dict_t *xattr, dict_t *xdata);  typedef int32_t (*fop_fxattrop_cbk_t) (call_frame_t *frame,                                         void *cookie,                                         xlator_t *this,                                         int32_t op_ret,                                         int32_t op_errno, -                                       dict_t *xattr); +                                       dict_t *xattr, dict_t *xdata);  typedef int32_t (*fop_setattr_cbk_t) (call_frame_t *frame, @@ -415,7 +416,7 @@ typedef int32_t (*fop_setattr_cbk_t) (call_frame_t *frame,                                        int32_t op_ret,                                        int32_t op_errno,                                        struct iatt *preop_stbuf, -                                      struct iatt *postop_stbuf); +                                      struct iatt *postop_stbuf, dict_t *xdata);  typedef int32_t (*fop_fsetattr_cbk_t) (call_frame_t *frame,                                         void *cookie, @@ -423,72 +424,71 @@ typedef int32_t (*fop_fsetattr_cbk_t) (call_frame_t *frame,                                         int32_t op_ret,                                         int32_t op_errno,                                         struct iatt *preop_stbuf, -                                       struct iatt *postop_stbuf); +                                       struct iatt *postop_stbuf, dict_t *xdata);  typedef int32_t (*fop_lookup_t) (call_frame_t *frame,                                   xlator_t *this,                                   loc_t *loc, -                                 dict_t *xattr_req); +                                 dict_t *xdata);  typedef int32_t (*fop_stat_t) (call_frame_t *frame,                                 xlator_t *this, -                               loc_t *loc); +                               loc_t *loc, dict_t *xdata);  typedef int32_t (*fop_fstat_t) (call_frame_t *frame,                                  xlator_t *this, -                                fd_t *fd); +                                fd_t *fd, dict_t *xdata);  typedef int32_t (*fop_truncate_t) (call_frame_t *frame,                                     xlator_t *this,                                     loc_t *loc, -                                   off_t offset); +                                   off_t offset, dict_t *xdata);  typedef int32_t (*fop_ftruncate_t) (call_frame_t *frame,                                      xlator_t *this,                                      fd_t *fd, -                                    off_t offset); +                                    off_t offset, dict_t *xdata);  typedef int32_t (*fop_access_t) (call_frame_t *frame,                                   xlator_t *this,                                   loc_t *loc, -                                 int32_t mask); +                                 int32_t mask, dict_t *xdata);  typedef int32_t (*fop_readlink_t) (call_frame_t *frame,                                     xlator_t *this,                                     loc_t *loc, -                                   size_t size); +                                   size_t size, dict_t *xdata);  typedef int32_t (*fop_mknod_t) (call_frame_t *frame, xlator_t *this,                                  loc_t *loc, mode_t mode, dev_t rdev, -                                dict_t *params); +                                mode_t umask, dict_t *xdata); -typedef int32_t (*fop_mkdir_t) (call_frame_t *frame, xlator_t *this, -                                loc_t *loc, mode_t mode, dict_t *params); +typedef int32_t (*fop_mkdir_t) (call_frame_t *frame, xlator_t *this, loc_t *loc, +                                mode_t mode, mode_t umask, dict_t *xdata); -typedef int32_t (*fop_unlink_t) (call_frame_t *frame, -                                 xlator_t *this, -                                 loc_t *loc); +typedef int32_t (*fop_unlink_t) (call_frame_t *frame, xlator_t *this, +                                 loc_t *loc, int xflags, dict_t *xdata);  typedef int32_t (*fop_rmdir_t) (call_frame_t *frame, xlator_t *this, -                                loc_t *loc, int flags); +                                loc_t *loc, int xflags, dict_t *xdata);  typedef int32_t (*fop_symlink_t) (call_frame_t *frame, xlator_t *this,                                    const char *linkname, loc_t *loc, -                                  dict_t *params); +                                  mode_t umask, dict_t *xdata);  typedef int32_t (*fop_rename_t) (call_frame_t *frame,                                   xlator_t *this,                                   loc_t *oldloc, -                                 loc_t *newloc); +                                 loc_t *newloc, dict_t *xdata);  typedef int32_t (*fop_link_t) (call_frame_t *frame,                                 xlator_t *this,                                 loc_t *oldloc, -                               loc_t *newloc); +                               loc_t *newloc, dict_t *xdata);  typedef int32_t (*fop_create_t) (call_frame_t *frame, xlator_t *this,                                   loc_t *loc, int32_t flags, mode_t mode, -                                 fd_t *fd, dict_t *params); +                                 mode_t umask, fd_t *fd, dict_t *xdata);  /* Tell subsequent writes on the fd_t to fsync after every writev fop without   * requiring a fsync fop. @@ -499,19 +499,16 @@ typedef int32_t (*fop_create_t) (call_frame_t *frame, xlator_t *this,   */  #define GF_OPEN_NOWB    0x02 -typedef int32_t (*fop_open_t) (call_frame_t *frame, -                               xlator_t *this, -                               loc_t *loc, -                               int32_t flags, -                               fd_t *fd, -                               int32_t wbflags); +typedef int32_t (*fop_open_t) (call_frame_t *frame, xlator_t *this, +                               loc_t *loc, int32_t flags, +                               fd_t *fd, dict_t *xdata);  typedef int32_t (*fop_readv_t) (call_frame_t *frame,                                  xlator_t *this,                                  fd_t *fd,                                  size_t size,                                  off_t offset, -                                uint32_t flags); +                                uint32_t flags, dict_t *xdata);  typedef int32_t (*fop_writev_t) (call_frame_t *frame,                                   xlator_t *this, @@ -520,131 +517,131 @@ typedef int32_t (*fop_writev_t) (call_frame_t *frame,                                   int32_t count,                                   off_t offset,                                   uint32_t flags, -                                 struct iobref *iobref); +                                 struct iobref *iobref, dict_t *xdata);  typedef int32_t (*fop_flush_t) (call_frame_t *frame,                                  xlator_t *this, -                                fd_t *fd); +                                fd_t *fd, dict_t *xdata);  typedef int32_t (*fop_fsync_t) (call_frame_t *frame,                                  xlator_t *this,                                  fd_t *fd, -                                int32_t datasync); +                                int32_t datasync, dict_t *xdata);  typedef int32_t (*fop_opendir_t) (call_frame_t *frame,                                    xlator_t *this,                                    loc_t *loc, -                                  fd_t *fd); +                                  fd_t *fd, dict_t *xdata);  typedef int32_t (*fop_fsyncdir_t) (call_frame_t *frame,                                     xlator_t *this,                                     fd_t *fd, -                                   int32_t datasync); +                                   int32_t datasync, dict_t *xdata);  typedef int32_t (*fop_statfs_t) (call_frame_t *frame,                                   xlator_t *this, -                                 loc_t *loc); +                                 loc_t *loc, dict_t *xdata);  typedef int32_t (*fop_setxattr_t) (call_frame_t *frame,                                     xlator_t *this,                                     loc_t *loc,                                     dict_t *dict, -                                   int32_t flags); +                                   int32_t flags, dict_t *xdata);  typedef int32_t (*fop_getxattr_t) (call_frame_t *frame,                                     xlator_t *this,                                     loc_t *loc, -                                   const char *name); +                                   const char *name, dict_t *xdata);  typedef int32_t (*fop_fsetxattr_t) (call_frame_t *frame,                                      xlator_t *this,                                      fd_t *fd,                                      dict_t *dict, -                                    int32_t flags); +                                    int32_t flags, dict_t *xdata);  typedef int32_t (*fop_fgetxattr_t) (call_frame_t *frame,                                      xlator_t *this,                                      fd_t *fd, -                                    const char *name); +                                    const char *name, dict_t *xdata);  typedef int32_t (*fop_removexattr_t) (call_frame_t *frame,                                        xlator_t *this,                                        loc_t *loc, -                                      const char *name); +                                      const char *name, dict_t *xdata);  typedef int32_t (*fop_fremovexattr_t) (call_frame_t *frame,                                         xlator_t *this,                                         fd_t *fd, -                                       const char *name); +                                       const char *name, dict_t *xdata);  typedef int32_t (*fop_lk_t) (call_frame_t *frame,                               xlator_t *this,                               fd_t *fd,                               int32_t cmd, -                             struct gf_flock *flock); +                             struct gf_flock *flock, dict_t *xdata);  typedef int32_t (*fop_inodelk_t) (call_frame_t *frame,                                    xlator_t *this,                                    const char *volume,                                    loc_t *loc,                                    int32_t cmd, -                                  struct gf_flock *flock); +                                  struct gf_flock *flock, dict_t *xdata);  typedef int32_t (*fop_finodelk_t) (call_frame_t *frame,                                     xlator_t *this,                                     const char *volume,                                     fd_t *fd,                                     int32_t cmd, -                                   struct gf_flock *flock); +                                   struct gf_flock *flock, dict_t *xdata);  typedef int32_t (*fop_entrylk_t) (call_frame_t *frame,                                    xlator_t *this,                                    const char *volume, loc_t *loc,                                    const char *basename, entrylk_cmd cmd, -                                  entrylk_type type); +                                  entrylk_type type, dict_t *xdata);  typedef int32_t (*fop_fentrylk_t) (call_frame_t *frame,                                     xlator_t *this,                                     const char *volume, fd_t *fd,                                     const char *basename, entrylk_cmd cmd, -                                   entrylk_type type); +                                   entrylk_type type, dict_t *xdata);  typedef int32_t (*fop_readdir_t) (call_frame_t *frame,                                    xlator_t *this,                                    fd_t *fd,                                    size_t size, -                                  off_t offset); +                                  off_t offset, dict_t *xdata);  typedef int32_t (*fop_readdirp_t) (call_frame_t *frame,                                     xlator_t *this,                                     fd_t *fd,                                     size_t size,                                     off_t offset, -                                   dict_t *dict); +                                   dict_t *xdata);  typedef int32_t (*fop_xattrop_t) (call_frame_t *frame,                                    xlator_t *this,                                    loc_t *loc,                                    gf_xattrop_flags_t optype, -                                  dict_t *xattr); +                                  dict_t *xattr, dict_t *xdata);  typedef int32_t (*fop_fxattrop_t) (call_frame_t *frame,                                     xlator_t *this,                                     fd_t *fd,                                     gf_xattrop_flags_t optype, -                                   dict_t *xattr); +                                   dict_t *xattr, dict_t *xdata);  typedef int32_t (*fop_setattr_t) (call_frame_t *frame,                                    xlator_t *this,                                    loc_t *loc,                                    struct iatt *stbuf, -                                  int32_t valid); +                                  int32_t valid, dict_t *xdata);  typedef int32_t (*fop_fsetattr_t) (call_frame_t *frame,                                     xlator_t *this,                                     fd_t *fd,                                     struct iatt *stbuf, -                                   int32_t valid); +                                   int32_t valid, dict_t *xdata);  struct xlator_fops {  | 
