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 /xlators/debug | |
| 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 'xlators/debug')
| -rw-r--r-- | xlators/debug/error-gen/src/error-gen.c | 669 | ||||
| -rw-r--r-- | xlators/debug/io-stats/src/io-stats.c | 334 | ||||
| -rw-r--r-- | xlators/debug/trace/src/trace.c | 348 | 
3 files changed, 656 insertions, 695 deletions
diff --git a/xlators/debug/error-gen/src/error-gen.c b/xlators/debug/error-gen/src/error-gen.c index e44baf5b78d..74b6a615333 100644 --- a/xlators/debug/error-gen/src/error-gen.c +++ b/xlators/debug/error-gen/src/error-gen.c @@ -387,17 +387,17 @@ error_gen (xlator_t *this, int op_no)  int  error_gen_lookup_cbk (call_frame_t *frame, void *cookie, xlator_t *this,  		      int32_t op_ret, int32_t op_errno, inode_t *inode, -		      struct iatt *buf, dict_t *dict, struct iatt *postparent) +		      struct iatt *buf, dict_t *xdata, struct iatt *postparent)  {  	STACK_UNWIND_STRICT (lookup, frame, op_ret, op_errno, inode, -                             buf, dict, postparent); -	return 0; +                             buf, xdata, postparent); +        return 0;  }  int  error_gen_lookup (call_frame_t *frame, xlator_t *this, loc_t *loc, -                  dict_t *xattr_req) +                  dict_t *xdata)  {  	int              op_errno = 0;          eg_t            *egp = NULL; @@ -412,36 +412,28 @@ error_gen_lookup (call_frame_t *frame, xlator_t *this, loc_t *loc,  	if (op_errno) {  		GF_ERROR(this, "unwind(-1, %s)", strerror (op_errno));  		STACK_UNWIND_STRICT (lookup, frame, -1, op_errno, NULL, NULL, NULL, -                              NULL); -		return 0; +                                     NULL); +        return 0;  	}  	STACK_WIND (frame, error_gen_lookup_cbk,  		    FIRST_CHILD(this),  		    FIRST_CHILD(this)->fops->lookup, -		    loc, xattr_req); -	return 0; -} - - -int -error_gen_forget (xlator_t *this, inode_t *inode) -{ -	return 0; +		    loc, xdata); +        return 0;  }  int  error_gen_stat_cbk (call_frame_t *frame, void *cookie, xlator_t *this, -		    int32_t op_ret, int32_t op_errno, struct iatt *buf) +		    int32_t op_ret, int32_t op_errno, struct iatt *buf, dict_t *xdata)  { -	STACK_UNWIND_STRICT (stat, frame, op_ret, op_errno, buf); - -	return 0; +	STACK_UNWIND_STRICT (stat, frame, op_ret, op_errno, buf, xdata); +        return 0;  }  int -error_gen_stat (call_frame_t *frame, xlator_t *this, loc_t *loc) +error_gen_stat (call_frame_t *frame, xlator_t *this, loc_t *loc, dict_t *xdata)  {  	int              op_errno = 0;          eg_t            *egp = NULL; @@ -455,32 +447,31 @@ error_gen_stat (call_frame_t *frame, xlator_t *this, loc_t *loc)  	if (op_errno) {  		GF_ERROR(this, "unwind(-1, %s)", strerror (op_errno)); -		STACK_UNWIND_STRICT (stat, frame, -1, op_errno, NULL); -		return 0; +		STACK_UNWIND_STRICT (stat, frame, -1, op_errno, NULL, xdata); +        return 0;  	}  	STACK_WIND (frame, error_gen_stat_cbk,  		    FIRST_CHILD(this),  		    FIRST_CHILD(this)->fops->stat, -		    loc); -	return 0; +		    loc, xdata); +        return 0;  }  int  error_gen_setattr_cbk (call_frame_t *frame, void *cookie, xlator_t *this,                         int32_t op_ret, int32_t op_errno, -                       struct iatt *preop, struct iatt *postop) +                       struct iatt *preop, struct iatt *postop, dict_t *xdata)  { -	STACK_UNWIND_STRICT (setattr, frame, op_ret, op_errno, preop, postop); - -	return 0; +	STACK_UNWIND_STRICT (setattr, frame, op_ret, op_errno, preop, postop, xdata); +        return 0;  }  int  error_gen_setattr (call_frame_t *frame, xlator_t *this, loc_t *loc, -                   struct iatt *stbuf, int32_t valid) +                   struct iatt *stbuf, int32_t valid, dict_t *xdata)  {  	int              op_errno = 0;          eg_t            *egp = NULL; @@ -494,21 +485,21 @@ error_gen_setattr (call_frame_t *frame, xlator_t *this, loc_t *loc,  	if (op_errno) {  		GF_ERROR(this, "unwind(-1, %s)", strerror (op_errno)); -		STACK_UNWIND_STRICT (setattr, frame, -1, op_errno, NULL, NULL); -		return 0; +		STACK_UNWIND_STRICT (setattr, frame, -1, op_errno, NULL, NULL, xdata); +        return 0;  	}  	STACK_WIND (frame, error_gen_setattr_cbk,  		    FIRST_CHILD(this),  		    FIRST_CHILD(this)->fops->setattr, -		    loc, stbuf, valid); -	return 0; +		    loc, stbuf, valid, xdata); +        return 0;  }  int  error_gen_fsetattr (call_frame_t *frame, xlator_t *this, fd_t *fd, -                    struct iatt *stbuf, int32_t valid) +                    struct iatt *stbuf, int32_t valid, dict_t *xdata)  {  	int             op_errno = 0;          eg_t            *egp = NULL; @@ -522,32 +513,32 @@ error_gen_fsetattr (call_frame_t *frame, xlator_t *this, fd_t *fd,  	if (op_errno) {  		GF_ERROR(this, "unwind(-1, %s)", strerror (op_errno)); -		STACK_UNWIND_STRICT (fsetattr, frame, -1, op_errno, NULL, NULL); -		return 0; +		STACK_UNWIND_STRICT (fsetattr, frame, -1, op_errno, NULL, NULL, xdata); +        return 0;  	}  	STACK_WIND (frame, error_gen_setattr_cbk,  		    FIRST_CHILD(this),  		    FIRST_CHILD(this)->fops->fsetattr, -		    fd, stbuf, valid); -	return 0; +		    fd, stbuf, valid, xdata); +        return 0;  }  int  error_gen_truncate_cbk (call_frame_t *frame, void *cookie, xlator_t *this,  			int32_t op_ret, int32_t op_errno, -			struct iatt *prebuf, struct iatt *postbuf) +			struct iatt *prebuf, struct iatt *postbuf, dict_t *xdata)  {  	STACK_UNWIND_STRICT (truncate, frame, op_ret, op_errno, -                             prebuf, postbuf); -	return 0; +                             prebuf, postbuf, xdata); +        return 0;  }  int  error_gen_truncate (call_frame_t *frame, xlator_t *this, loc_t *loc, -                    off_t offset) +                    off_t offset, dict_t *xdata)  {  	int              op_errno = 0;          eg_t            *egp = NULL; @@ -562,32 +553,32 @@ error_gen_truncate (call_frame_t *frame, xlator_t *this, loc_t *loc,  	if (op_errno) {  		GF_ERROR(this, "unwind(-1, %s)", strerror (op_errno));  		STACK_UNWIND_STRICT (truncate, frame, -1, op_errno, -                                     NULL, NULL); -		return 0; +                                     NULL, NULL, xdata); +        return 0;  	}  	STACK_WIND (frame, error_gen_truncate_cbk,  		    FIRST_CHILD(this),  		    FIRST_CHILD(this)->fops->truncate, -		    loc, offset); -	return 0; +		    loc, offset, xdata); +        return 0;  }  int  error_gen_ftruncate_cbk (call_frame_t *frame, void *cookie, xlator_t *this,  			 int32_t op_ret, int32_t op_errno, struct iatt *prebuf, -                         struct iatt *postbuf) +                         struct iatt *postbuf, dict_t *xdata)  {  	STACK_UNWIND_STRICT (ftruncate, frame, op_ret, op_errno, -                             prebuf, postbuf); -	return 0; +                             prebuf, postbuf, xdata); +        return 0;  }  int  error_gen_ftruncate (call_frame_t *frame, xlator_t *this, fd_t *fd, -		     off_t offset) +		     off_t offset, dict_t *xdata)  {  	int              op_errno = 0;          eg_t            *egp =NULL; @@ -602,31 +593,30 @@ error_gen_ftruncate (call_frame_t *frame, xlator_t *this, fd_t *fd,  	if (op_errno) {  		GF_ERROR(this, "unwind(-1, %s)", strerror (op_errno));  		STACK_UNWIND_STRICT (ftruncate, frame, -1, op_errno, -                                     NULL, NULL); -		return 0; +                                     NULL, NULL, xdata); +        return 0;  	}  	STACK_WIND (frame, error_gen_ftruncate_cbk,  		    FIRST_CHILD(this),  		    FIRST_CHILD(this)->fops->ftruncate, -		    fd, offset); -	return 0; +		    fd, offset, xdata); +        return 0;  }  int  error_gen_access_cbk (call_frame_t *frame, void *cookie, xlator_t *this, -		      int32_t op_ret, int32_t op_errno) +		      int32_t op_ret, int32_t op_errno, dict_t *xdata)  { -	STACK_UNWIND_STRICT (access, frame, op_ret, op_errno); - -	return 0; +	STACK_UNWIND_STRICT (access, frame, op_ret, op_errno, xdata); +        return 0;  }  int  error_gen_access (call_frame_t *frame, xlator_t *this, loc_t *loc, -		  int32_t mask) +		  int32_t mask, dict_t *xdata)  {  	int              op_errno = 0;          eg_t            *egp = NULL; @@ -640,31 +630,31 @@ error_gen_access (call_frame_t *frame, xlator_t *this, loc_t *loc,  	if (op_errno) {  		GF_ERROR(this, "unwind(-1, %s)", strerror (op_errno)); -		STACK_UNWIND_STRICT (access, frame, -1, op_errno); -		return 0; +		STACK_UNWIND_STRICT (access, frame, -1, op_errno, xdata); +        return 0;  	}  	STACK_WIND (frame, error_gen_access_cbk,  		    FIRST_CHILD(this),  		    FIRST_CHILD(this)->fops->access, -		    loc, mask); -	return 0; +		    loc, mask, xdata); +        return 0;  }  int  error_gen_readlink_cbk (call_frame_t *frame, void *cookie, xlator_t *this,  			int32_t op_ret, int32_t op_errno, -			const char *path, struct iatt *sbuf) +			const char *path, struct iatt *sbuf, dict_t *xdata)  { -	STACK_UNWIND_STRICT (readlink, frame, op_ret, op_errno, path, sbuf); -	return 0; +	STACK_UNWIND_STRICT (readlink, frame, op_ret, op_errno, path, sbuf, xdata); +        return 0;  }  int  error_gen_readlink (call_frame_t *frame, xlator_t *this, loc_t *loc, -                    size_t size) +                    size_t size, dict_t *xdata)  {  	int              op_errno = 0;          eg_t            *egp = NULL; @@ -678,15 +668,15 @@ error_gen_readlink (call_frame_t *frame, xlator_t *this, loc_t *loc,  	if (op_errno) {  		GF_ERROR(this, "unwind(-1, %s)", strerror (op_errno)); -		STACK_UNWIND_STRICT (readlink, frame, -1, op_errno, NULL, NULL); -		return 0; +		STACK_UNWIND_STRICT (readlink, frame, -1, op_errno, NULL, NULL, xdata); +        return 0;  	}  	STACK_WIND (frame, error_gen_readlink_cbk,  		    FIRST_CHILD(this),  		    FIRST_CHILD(this)->fops->readlink, -		    loc, size); -	return 0; +		    loc, size, xdata); +        return 0;  } @@ -694,18 +684,18 @@ int  error_gen_mknod_cbk (call_frame_t *frame, void *cookie, xlator_t *this,  		     int32_t op_ret, int32_t op_errno, inode_t *inode,                       struct iatt *buf, struct iatt *preparent, -                     struct iatt *postparent) +                     struct iatt *postparent, dict_t *xdata)  {  	STACK_UNWIND_STRICT (mknod, frame, op_ret, op_errno,                               inode, buf, -                             preparent, postparent); -	return 0; +                             preparent, postparent, xdata); +        return 0;  }  int  error_gen_mknod (call_frame_t *frame, xlator_t *this, loc_t *loc, -		 mode_t mode, dev_t rdev, dict_t *params) +		 mode_t mode, dev_t rdev, mode_t umask, dict_t *xdata)  {  	int              op_errno = 0;          eg_t            *egp = NULL; @@ -720,15 +710,15 @@ error_gen_mknod (call_frame_t *frame, xlator_t *this, loc_t *loc,  	if (op_errno) {  		GF_ERROR(this, "unwind(-1, %s)", strerror (op_errno));  		STACK_UNWIND_STRICT (mknod, frame, -1, op_errno, NULL, NULL, -                                     NULL, NULL); -		return 0; +                                     NULL, NULL, xdata); +        return 0;  	}  	STACK_WIND (frame, error_gen_mknod_cbk,  		    FIRST_CHILD(this),  		    FIRST_CHILD(this)->fops->mknod, -		    loc, mode, rdev, params); -	return 0; +		    loc, mode, rdev, umask, xdata); +        return 0;  } @@ -736,17 +726,17 @@ int  error_gen_mkdir_cbk (call_frame_t *frame, void *cookie, xlator_t *this,  		     int32_t op_ret, int32_t op_errno, inode_t *inode,                       struct iatt *buf, struct iatt *preparent, -                     struct iatt *postparent) +                     struct iatt *postparent, dict_t *xdata)  {  	STACK_UNWIND_STRICT (mkdir, frame, op_ret, op_errno,                               inode, buf, -                             preparent, postparent); -	return 0; +                             preparent, postparent, xdata); +        return 0;  }  int  error_gen_mkdir (call_frame_t *frame, xlator_t *this, -		 loc_t *loc, mode_t mode, dict_t *params) +		 loc_t *loc, mode_t mode, mode_t umask, dict_t *xdata)  {  	int              op_errno = 0;          eg_t            *egp = NULL; @@ -761,31 +751,32 @@ error_gen_mkdir (call_frame_t *frame, xlator_t *this,  	if (op_errno) {  		GF_ERROR(this, "unwind(-1, %s)", strerror (op_errno));  		STACK_UNWIND_STRICT (mkdir, frame, -1, op_errno, NULL, NULL, -                                     NULL, NULL); -		return 0; +                                     NULL, NULL, xdata); +                return 0;  	}  	STACK_WIND (frame, error_gen_mkdir_cbk,  		    FIRST_CHILD(this),  		    FIRST_CHILD(this)->fops->mkdir, -		    loc, mode, params); -	return 0; +		    loc, mode, umask, xdata); +        return 0;  }  int  error_gen_unlink_cbk (call_frame_t *frame, void *cookie, xlator_t *this,  		      int32_t op_ret, int32_t op_errno, -                      struct iatt *preparent, struct iatt *postparent) +                      struct iatt *preparent, struct iatt *postparent, dict_t *xdata)  {  	STACK_UNWIND_STRICT (unlink, frame, op_ret, op_errno, -                             preparent, postparent); -	return 0; +                             preparent, postparent, xdata); +        return 0;  }  int -error_gen_unlink (call_frame_t *frame, xlator_t *this, loc_t *loc) +error_gen_unlink (call_frame_t *frame, xlator_t *this, loc_t *loc, int xflag, +                  dict_t *xdata)  {  	int              op_errno = 0;          eg_t            *egp = NULL; @@ -799,31 +790,34 @@ error_gen_unlink (call_frame_t *frame, xlator_t *this, loc_t *loc)  	if (op_errno) {  		GF_ERROR(this, "unwind(-1, %s)", strerror (op_errno)); -		STACK_UNWIND_STRICT (unlink, frame, -1, op_errno, NULL, NULL); -		return 0; +		STACK_UNWIND_STRICT (unlink, frame, -1, op_errno, NULL, NULL, +                                     xdata); +                return 0;  	}  	STACK_WIND (frame, error_gen_unlink_cbk,  		    FIRST_CHILD(this),  		    FIRST_CHILD(this)->fops->unlink, -		    loc); -	return 0; +		    loc, xflag, xdata); +        return 0;  }  int  error_gen_rmdir_cbk (call_frame_t *frame, void *cookie, xlator_t *this,  		     int32_t op_ret, int32_t op_errno, -                     struct iatt *preparent, struct iatt *postparent) +                     struct iatt *preparent, struct iatt *postparent, +                     dict_t *xdata)  {  	STACK_UNWIND_STRICT (rmdir, frame, op_ret, op_errno, -                             preparent, postparent); -	return 0; +                             preparent, postparent, xdata); +        return 0;  }  int -error_gen_rmdir (call_frame_t *frame, xlator_t *this, loc_t *loc, int flags) +error_gen_rmdir (call_frame_t *frame, xlator_t *this, loc_t *loc, int flags, +                 dict_t *xdata)  {  	int              op_errno = 0;          eg_t            *egp = NULL; @@ -837,15 +831,15 @@ error_gen_rmdir (call_frame_t *frame, xlator_t *this, loc_t *loc, int flags)  	if (op_errno) {  		GF_ERROR(this, "unwind(-1, %s)", strerror (op_errno)); -		STACK_UNWIND_STRICT (rmdir, frame, -1, op_errno, NULL, NULL); -		return 0; +		STACK_UNWIND_STRICT (rmdir, frame, -1, op_errno, NULL, NULL, xdata); +        return 0;  	}  	STACK_WIND (frame, error_gen_rmdir_cbk,  		    FIRST_CHILD(this),  		    FIRST_CHILD(this)->fops->rmdir, -		    loc, flags); -	return 0; +		    loc, flags, xdata); +        return 0;  } @@ -853,17 +847,17 @@ int  error_gen_symlink_cbk (call_frame_t *frame, void *cookie, xlator_t *this,  		       int32_t op_ret, int32_t op_errno, inode_t *inode,                         struct iatt *buf, struct iatt *preparent, -                       struct iatt *postparent) +                       struct iatt *postparent, dict_t *xdata)  {  	STACK_UNWIND_STRICT (symlink, frame, op_ret, op_errno, inode, buf, -                             preparent, postparent); -	return 0; +                             preparent, postparent, xdata); +        return 0;  }  int  error_gen_symlink (call_frame_t *frame, xlator_t *this, const char *linkpath, -		   loc_t *loc, dict_t *params) +		   loc_t *loc, mode_t umask, dict_t *xdata)  {  	int              op_errno = 0;          eg_t            *egp = NULL; @@ -878,15 +872,15 @@ error_gen_symlink (call_frame_t *frame, xlator_t *this, const char *linkpath,  	if (op_errno) {  		GF_ERROR(this, "unwind(-1, %s)", strerror (op_errno));  		STACK_UNWIND_STRICT (symlink, frame, -1, op_errno, NULL, NULL, -                                     NULL, NULL); /* pre & post parent attr */ +                                     NULL, NULL, NULL); /* pre & post parent attr */  		return 0;  	}  	STACK_WIND (frame, error_gen_symlink_cbk,  		    FIRST_CHILD(this),  		    FIRST_CHILD(this)->fops->symlink, -		    linkpath, loc, params); -	return 0; +		    linkpath, loc, umask, xdata); +        return 0;  } @@ -894,18 +888,19 @@ int  error_gen_rename_cbk (call_frame_t *frame, void *cookie, xlator_t *this,  		      int32_t op_ret, int32_t op_errno, struct iatt *buf,                        struct iatt *preoldparent, struct iatt *postoldparent, -                      struct iatt *prenewparent, struct iatt *postnewparent) +                      struct iatt *prenewparent, struct iatt *postnewparent, +                      dict_t *xdata)  {  	STACK_UNWIND_STRICT (rename, frame, op_ret, op_errno, buf,                               preoldparent, postoldparent, -                             prenewparent, postnewparent); -	return 0; +                             prenewparent, postnewparent, xdata); +        return 0;  }  int  error_gen_rename (call_frame_t *frame, xlator_t *this, -		  loc_t *oldloc, loc_t *newloc) +		  loc_t *oldloc, loc_t *newloc, dict_t *xdata)  {  	int              op_errno = 0;          eg_t            *egp = NULL; @@ -920,15 +915,15 @@ error_gen_rename (call_frame_t *frame, xlator_t *this,  	if (op_errno) {  		GF_ERROR(this, "unwind(-1, %s)", strerror (op_errno));  		STACK_UNWIND_STRICT (rename, frame, -1, op_errno, NULL, -                                     NULL, NULL, NULL, NULL); /* pre & post parent attr */ +                                     NULL, NULL, NULL, NULL, NULL);  		return 0;  	}  	STACK_WIND (frame, error_gen_rename_cbk,  		    FIRST_CHILD(this),  		    FIRST_CHILD(this)->fops->rename, -		    oldloc, newloc); -	return 0; +		    oldloc, newloc, xdata); +        return 0;  } @@ -936,17 +931,17 @@ int  error_gen_link_cbk (call_frame_t *frame, void *cookie, xlator_t *this,  		    int32_t op_ret, int32_t op_errno, inode_t *inode,                      struct iatt *buf, struct iatt *preparent, -                    struct iatt *postparent) +                    struct iatt *postparent, dict_t *xdata)  {  	STACK_UNWIND_STRICT (link, frame, op_ret, op_errno, inode, buf, -                             preparent, postparent); -	return 0; +                             preparent, postparent, xdata); +        return 0;  }  int  error_gen_link (call_frame_t *frame, xlator_t *this, -		loc_t *oldloc, loc_t *newloc) +		loc_t *oldloc, loc_t *newloc, dict_t *xdata)  {  	int             op_errno = 0;          eg_t            *egp = NULL; @@ -961,15 +956,15 @@ error_gen_link (call_frame_t *frame, xlator_t *this,  	if (op_errno) {  		GF_ERROR(this, "unwind(-1, %s)", strerror (op_errno));  		STACK_UNWIND_STRICT (link, frame, -1, op_errno, NULL, NULL, -                                     NULL, NULL); /* pre & post parent attr */ +                                     NULL, NULL, NULL);  		return 0;  	}  	STACK_WIND (frame, error_gen_link_cbk,  		    FIRST_CHILD(this),  		    FIRST_CHILD(this)->fops->link, -		    oldloc, newloc); -	return 0; +		    oldloc, newloc, xdata); +        return 0;  } @@ -977,17 +972,18 @@ int  error_gen_create_cbk (call_frame_t *frame, void *cookie, xlator_t *this,  		      int32_t op_ret, int32_t op_errno,  		      fd_t *fd, inode_t *inode, struct iatt *buf, -                      struct iatt *preparent, struct iatt *postparent) +                      struct iatt *preparent, struct iatt *postparent, dict_t *xdata)  {  	STACK_UNWIND_STRICT (create, frame, op_ret, op_errno, fd, inode, buf, -                             preparent, postparent); -	return 0; +                             preparent, postparent, xdata); +        return 0;  }  int  error_gen_create (call_frame_t *frame, xlator_t *this, loc_t *loc, -		  int32_t flags, mode_t mode, fd_t *fd, dict_t *params) +		  int32_t flags, mode_t mode, mode_t umask, fd_t *fd, +                  dict_t *xdata)  {  	int             op_errno = 0;          eg_t            *egp = NULL; @@ -1002,30 +998,30 @@ error_gen_create (call_frame_t *frame, xlator_t *this, loc_t *loc,  	if (op_errno) {  		GF_ERROR(this, "unwind(-1, %s)", strerror (op_errno));  		STACK_UNWIND_STRICT (create, frame, -1, op_errno, NULL, NULL, -                                     NULL, NULL, NULL); /* pre & post attr */ +                                     NULL, NULL, NULL, NULL);  		return 0;  	}  	STACK_WIND (frame, error_gen_create_cbk,  		    FIRST_CHILD(this),  		    FIRST_CHILD(this)->fops->create, -		    loc, flags, mode, fd, params); -	return 0; +		    loc, flags, mode, umask, fd, xdata); +        return 0;  }  int  error_gen_open_cbk (call_frame_t *frame, void *cookie, xlator_t *this, -		    int32_t op_ret, int32_t op_errno, fd_t *fd) +		    int32_t op_ret, int32_t op_errno, fd_t *fd, dict_t *xdata)  { -	STACK_UNWIND_STRICT (open, frame, op_ret, op_errno, fd); -	return 0; +	STACK_UNWIND_STRICT (open, frame, op_ret, op_errno, fd, xdata); +        return 0;  }  int  error_gen_open (call_frame_t *frame, xlator_t *this, loc_t *loc, -		int32_t flags, fd_t *fd, int32_t wbflags) +		int32_t flags, fd_t *fd, dict_t *xdata)  {  	int              op_errno = 0;          eg_t            *egp = NULL; @@ -1039,15 +1035,15 @@ error_gen_open (call_frame_t *frame, xlator_t *this, loc_t *loc,  	if (op_errno) {  		GF_ERROR(this, "unwind(-1, %s)", strerror (op_errno)); -		STACK_UNWIND_STRICT (open, frame, -1, op_errno, NULL); -		return 0; +		STACK_UNWIND_STRICT (open, frame, -1, op_errno, NULL, xdata); +        return 0;  	}  	STACK_WIND (frame, error_gen_open_cbk,  		    FIRST_CHILD(this),  		    FIRST_CHILD(this)->fops->open, -		    loc, flags, fd, wbflags); -	return 0; +		    loc, flags, fd, xdata); +        return 0;  } @@ -1055,17 +1051,17 @@ int  error_gen_readv_cbk (call_frame_t *frame, void *cookie, xlator_t *this,  		     int32_t op_ret, int32_t op_errno,  		     struct iovec *vector, int32_t count, -		     struct iatt *stbuf, struct iobref *iobref) +		     struct iatt *stbuf, struct iobref *iobref, dict_t *xdata)  {  	STACK_UNWIND_STRICT (readv, frame, op_ret, op_errno, -                             vector, count, stbuf, iobref); -	return 0; +                             vector, count, stbuf, iobref, xdata); +        return 0;  }  int  error_gen_readv (call_frame_t *frame, xlator_t *this, -		 fd_t *fd, size_t size, off_t offset, uint32_t flags) +		 fd_t *fd, size_t size, off_t offset, uint32_t flags, dict_t *xdata)  {  	int              op_errno = 0;          eg_t            *egp = NULL; @@ -1080,33 +1076,33 @@ error_gen_readv (call_frame_t *frame, xlator_t *this,  	if (op_errno) {  		GF_ERROR(this, "unwind(-1, %s)", strerror (op_errno));  		STACK_UNWIND_STRICT (readv, frame, -1, op_errno, NULL, 0, -                                     NULL, NULL); -		return 0; +                                     NULL, NULL, xdata); +        return 0;  	}  	STACK_WIND (frame, error_gen_readv_cbk,  		    FIRST_CHILD(this),  		    FIRST_CHILD(this)->fops->readv, -		    fd, size, offset, flags); -	return 0; +		    fd, size, offset, flags, xdata); +        return 0;  }  int  error_gen_writev_cbk (call_frame_t *frame, void *cookie, xlator_t *this,  		      int32_t op_ret, int32_t op_errno, -                      struct iatt *prebuf, struct iatt *postbuf) +                      struct iatt *prebuf, struct iatt *postbuf, dict_t *xdata)  { -	STACK_UNWIND_STRICT (writev, frame, op_ret, op_errno, prebuf, postbuf); -	return 0; +	STACK_UNWIND_STRICT (writev, frame, op_ret, op_errno, prebuf, postbuf, xdata); +        return 0;  }  int  error_gen_writev (call_frame_t *frame, xlator_t *this, fd_t *fd,  		  struct iovec *vector, int32_t count, -		  off_t off, uint32_t flags, struct iobref *iobref) +		  off_t off, uint32_t flags, struct iobref *iobref, dict_t *xdata)  {  	int              op_errno = 0;          eg_t            *egp = NULL; @@ -1120,29 +1116,29 @@ error_gen_writev (call_frame_t *frame, xlator_t *this, fd_t *fd,  	if (op_errno) {  		GF_ERROR(this, "unwind(-1, %s)", strerror (op_errno)); -		STACK_UNWIND_STRICT (writev, frame, -1, op_errno, NULL, NULL); -		return 0; +		STACK_UNWIND_STRICT (writev, frame, -1, op_errno, NULL, NULL, xdata); +        return 0;  	}  	STACK_WIND (frame, error_gen_writev_cbk,  		    FIRST_CHILD(this),  		    FIRST_CHILD(this)->fops->writev, -		    fd, vector, count, off, flags, iobref); -	return 0; +		    fd, vector, count, off, flags, iobref, xdata); +        return 0;  }  int  error_gen_flush_cbk (call_frame_t *frame, void *cookie, xlator_t *this, -		     int32_t op_ret, int32_t op_errno) +		     int32_t op_ret, int32_t op_errno, dict_t *xdata)  { -	STACK_UNWIND_STRICT (flush, frame, op_ret, op_errno); -	return 0; +	STACK_UNWIND_STRICT (flush, frame, op_ret, op_errno, xdata); +        return 0;  }  int -error_gen_flush (call_frame_t *frame, xlator_t *this, fd_t *fd) +error_gen_flush (call_frame_t *frame, xlator_t *this, fd_t *fd, dict_t *xdata)  {  	int              op_errno = 0;          eg_t            *egp = NULL; @@ -1156,15 +1152,15 @@ error_gen_flush (call_frame_t *frame, xlator_t *this, fd_t *fd)  	if (op_errno) {  		GF_ERROR(this, "unwind(-1, %s)", strerror (op_errno)); -		STACK_UNWIND_STRICT (flush, frame, -1, op_errno); -		return 0; +		STACK_UNWIND_STRICT (flush, frame, -1, op_errno, xdata); +        return 0;  	}  	STACK_WIND (frame, error_gen_flush_cbk,                      FIRST_CHILD(this),  		    FIRST_CHILD(this)->fops->flush, -		    fd); -	return 0; +		    fd, xdata); +        return 0;  } @@ -1172,15 +1168,15 @@ int  error_gen_fsync_cbk (call_frame_t *frame, void *cookie,  		     xlator_t *this, int32_t op_ret,  		     int32_t op_errno, struct iatt *prebuf, -                     struct iatt *postbuf) +                     struct iatt *postbuf, dict_t *xdata)  { -	STACK_UNWIND_STRICT (fsync, frame, op_ret, op_errno, prebuf, postbuf); -	return 0; +	STACK_UNWIND_STRICT (fsync, frame, op_ret, op_errno, prebuf, postbuf, xdata); +        return 0;  }  int -error_gen_fsync (call_frame_t *frame, xlator_t *this, fd_t *fd, int32_t flags) +error_gen_fsync (call_frame_t *frame, xlator_t *this, fd_t *fd, int32_t flags, dict_t *xdata)  {  	int              op_errno = 0;          eg_t            *egp = NULL; @@ -1194,29 +1190,29 @@ error_gen_fsync (call_frame_t *frame, xlator_t *this, fd_t *fd, int32_t flags)  	if (op_errno) {  		GF_ERROR(this, "unwind(-1, %s)", strerror (op_errno)); -		STACK_UNWIND_STRICT (fsync, frame, -1, op_errno, NULL, NULL); -		return 0; +		STACK_UNWIND_STRICT (fsync, frame, -1, op_errno, NULL, NULL, xdata); +        return 0;  	}  	STACK_WIND (frame, error_gen_fsync_cbk,  		    FIRST_CHILD(this),  		    FIRST_CHILD(this)->fops->fsync, -		    fd, flags); -	return 0; +		    fd, flags, xdata); +        return 0;  }  int  error_gen_fstat_cbk (call_frame_t *frame, void *cookie, xlator_t *this, -                     int32_t op_ret, int32_t op_errno, struct iatt *buf) +                     int32_t op_ret, int32_t op_errno, struct iatt *buf, dict_t *xdata)  { -	STACK_UNWIND_STRICT (fstat, frame, op_ret, op_errno, buf); -	return 0; +	STACK_UNWIND_STRICT (fstat, frame, op_ret, op_errno, buf, xdata); +        return 0;  }  int -error_gen_fstat (call_frame_t *frame, xlator_t *this, fd_t *fd) +error_gen_fstat (call_frame_t *frame, xlator_t *this, fd_t *fd, dict_t *xdata)  {  	int              op_errno = 0;          eg_t            *egp = NULL; @@ -1230,29 +1226,29 @@ error_gen_fstat (call_frame_t *frame, xlator_t *this, fd_t *fd)  	if (op_errno) {  		GF_ERROR(this, "unwind(-1, %s)", strerror (op_errno)); -		STACK_UNWIND_STRICT (fstat, frame, -1, op_errno, NULL); -		return 0; +		STACK_UNWIND_STRICT (fstat, frame, -1, op_errno, NULL, xdata); +        return 0;  	}  	STACK_WIND (frame, error_gen_fstat_cbk,  		    FIRST_CHILD(this),  		    FIRST_CHILD(this)->fops->fstat, -		    fd); -	return 0; +		    fd, xdata); +        return 0;  }  int  error_gen_opendir_cbk (call_frame_t *frame, void *cookie, xlator_t *this, -		       int32_t op_ret, int32_t op_errno, fd_t *fd) +		       int32_t op_ret, int32_t op_errno, fd_t *fd, dict_t *xdata)  { -	STACK_UNWIND_STRICT (opendir, frame, op_ret, op_errno, fd); -	return 0; +	STACK_UNWIND_STRICT (opendir, frame, op_ret, op_errno, fd, xdata); +        return 0;  }  int -error_gen_opendir (call_frame_t *frame, xlator_t *this, loc_t *loc, fd_t *fd) +error_gen_opendir (call_frame_t *frame, xlator_t *this, loc_t *loc, fd_t *fd, dict_t *xdata)  {  	int              op_errno = 0;          eg_t            *egp = NULL; @@ -1266,29 +1262,29 @@ error_gen_opendir (call_frame_t *frame, xlator_t *this, loc_t *loc, fd_t *fd)  	if (op_errno) {  		GF_ERROR(this, "unwind(-1, %s)", strerror (op_errno)); -		STACK_UNWIND_STRICT (opendir, frame, -1, op_errno, NULL); -		return 0; +		STACK_UNWIND_STRICT (opendir, frame, -1, op_errno, NULL, xdata); +        return 0;  	}  	STACK_WIND (frame, error_gen_opendir_cbk,  		    FIRST_CHILD(this),  		    FIRST_CHILD(this)->fops->opendir, -		    loc, fd); -	return 0; +		    loc, fd, xdata); +        return 0;  }  int  error_gen_fsyncdir_cbk (call_frame_t *frame, void *cookie, xlator_t *this, -			int32_t op_ret, int32_t op_errno) +			int32_t op_ret, int32_t op_errno, dict_t *xdata)  { -	STACK_UNWIND_STRICT (fsyncdir, frame, op_ret, op_errno); -	return 0; +	STACK_UNWIND_STRICT (fsyncdir, frame, op_ret, op_errno, xdata); +        return 0;  }  int  error_gen_fsyncdir (call_frame_t *frame, xlator_t *this, fd_t *fd, -                    int32_t flags) +                    int32_t flags, dict_t *xdata)  {  	int              op_errno = 0;          eg_t            *egp = NULL; @@ -1302,30 +1298,29 @@ error_gen_fsyncdir (call_frame_t *frame, xlator_t *this, fd_t *fd,  	if (op_errno) {  		GF_ERROR(this, "unwind(-1, %s)", strerror (op_errno)); -		STACK_UNWIND_STRICT (fsyncdir, frame, -1, op_errno); -		return 0; +		STACK_UNWIND_STRICT (fsyncdir, frame, -1, op_errno, xdata); +        return 0;  	}  	STACK_WIND (frame, error_gen_fsyncdir_cbk,  		    FIRST_CHILD(this),  		    FIRST_CHILD(this)->fops->fsyncdir, -		    fd, flags); -	return 0; +		    fd, flags, xdata); +        return 0;  }  int  error_gen_statfs_cbk (call_frame_t *frame, void *cookie, xlator_t *this, -		      int32_t op_ret, int32_t op_errno, struct statvfs *buf) +		      int32_t op_ret, int32_t op_errno, struct statvfs *buf, dict_t *xdata)  { -	STACK_UNWIND_STRICT (statfs, frame, op_ret, op_errno, buf); - -	return 0; +	STACK_UNWIND_STRICT (statfs, frame, op_ret, op_errno, buf, xdata); +        return 0;  }  int -error_gen_statfs (call_frame_t *frame, xlator_t *this, loc_t *loc) +error_gen_statfs (call_frame_t *frame, xlator_t *this, loc_t *loc, dict_t *xdata)  {  	int              op_errno = 0;          eg_t            *egp = NULL; @@ -1339,31 +1334,30 @@ error_gen_statfs (call_frame_t *frame, xlator_t *this, loc_t *loc)  	if (op_errno) {  		GF_ERROR(this, "unwind(-1, %s)", strerror (op_errno)); -		STACK_UNWIND_STRICT (statfs, frame, -1, op_errno, NULL); -		return 0; +		STACK_UNWIND_STRICT (statfs, frame, -1, op_errno, NULL, xdata); +        return 0;  	}  	STACK_WIND (frame, error_gen_statfs_cbk,  		    FIRST_CHILD(this),  		    FIRST_CHILD(this)->fops->statfs, -		    loc); -	return 0; +		    loc, xdata); +        return 0;  }  int  error_gen_setxattr_cbk (call_frame_t *frame, void *cookie, xlator_t *this, -			int32_t op_ret, int32_t op_errno) +			int32_t op_ret, int32_t op_errno, dict_t *xdata)  { -	STACK_UNWIND_STRICT (setxattr, frame, op_ret, op_errno); - -	return 0; +	STACK_UNWIND_STRICT (setxattr, frame, op_ret, op_errno, xdata); +        return 0;  }  int  error_gen_setxattr (call_frame_t *frame, xlator_t *this, loc_t *loc, -		    dict_t *dict, int32_t flags) +		    dict_t *dict, int32_t flags, dict_t *xdata)  {  	int              op_errno = 0;          eg_t            *egp = NULL; @@ -1377,30 +1371,30 @@ error_gen_setxattr (call_frame_t *frame, xlator_t *this, loc_t *loc,  	if (op_errno) {  		GF_ERROR(this, "unwind(-1, %s)", strerror (op_errno)); -		STACK_UNWIND_STRICT (setxattr, frame, -1, op_errno); -		return 0; +		STACK_UNWIND_STRICT (setxattr, frame, -1, op_errno, xdata); +        return 0;  	}  	STACK_WIND (frame, error_gen_setxattr_cbk,  		    FIRST_CHILD(this),  		    FIRST_CHILD(this)->fops->setxattr, -		    loc, dict, flags); -	return 0; +		    loc, dict, flags, xdata); +        return 0;  }  int  error_gen_getxattr_cbk (call_frame_t *frame, void *cookie, xlator_t *this, -			int32_t op_ret, int32_t op_errno, dict_t *dict) +			int32_t op_ret, int32_t op_errno, dict_t *dict, dict_t *xdata)  { -	STACK_UNWIND_STRICT (getxattr, frame, op_ret, op_errno, dict); -	return 0; +	STACK_UNWIND_STRICT (getxattr, frame, op_ret, op_errno, dict, xdata); +        return 0;  }  int  error_gen_getxattr (call_frame_t *frame, xlator_t *this, loc_t *loc, -		    const char *name) +		    const char *name, dict_t *xdata)  {  	int              op_errno = 0;          eg_t            *egp = NULL; @@ -1414,30 +1408,29 @@ error_gen_getxattr (call_frame_t *frame, xlator_t *this, loc_t *loc,  	if (op_errno) {  		GF_ERROR(this, "unwind(-1, %s)", strerror (op_errno)); -		STACK_UNWIND_STRICT (getxattr, frame, -1, op_errno, NULL); -		return 0; +		STACK_UNWIND_STRICT (getxattr, frame, -1, op_errno, NULL, xdata); +        return 0;  	}  	STACK_WIND (frame, error_gen_getxattr_cbk,  		    FIRST_CHILD(this),  		    FIRST_CHILD(this)->fops->getxattr, -		    loc, name); -	return 0; +		    loc, name, xdata); +        return 0;  }  int  error_gen_fsetxattr_cbk (call_frame_t *frame, void *cookie, xlator_t *this, -                         int32_t op_ret, int32_t op_errno) +                         int32_t op_ret, int32_t op_errno, dict_t *xdata)  { -	STACK_UNWIND_STRICT (fsetxattr, frame, op_ret, op_errno); - -	return 0; +	STACK_UNWIND_STRICT (fsetxattr, frame, op_ret, op_errno, xdata); +        return 0;  }  int  error_gen_fsetxattr (call_frame_t *frame, xlator_t *this, fd_t *fd, -                     dict_t *dict, int32_t flags) +                     dict_t *dict, int32_t flags, dict_t *xdata)  {  	int              op_errno = 0;          eg_t            *egp = NULL; @@ -1451,30 +1444,30 @@ error_gen_fsetxattr (call_frame_t *frame, xlator_t *this, fd_t *fd,  	if (op_errno) {  		GF_ERROR(this, "unwind(-1, %s)", strerror (op_errno)); -		STACK_UNWIND_STRICT (fsetxattr, frame, -1, op_errno); -		return 0; +		STACK_UNWIND_STRICT (fsetxattr, frame, -1, op_errno, xdata); +        return 0;  	}  	STACK_WIND (frame, error_gen_fsetxattr_cbk,  		    FIRST_CHILD(this),  		    FIRST_CHILD(this)->fops->fsetxattr, -		    fd, dict, flags); -	return 0; +		    fd, dict, flags, xdata); +        return 0;  }  int  error_gen_fgetxattr_cbk (call_frame_t *frame, void *cookie, xlator_t *this, -                         int32_t op_ret, int32_t op_errno, dict_t *dict) +                         int32_t op_ret, int32_t op_errno, dict_t *dict, dict_t *xdata)  { -	STACK_UNWIND_STRICT (fgetxattr, frame, op_ret, op_errno, dict); -	return 0; +	STACK_UNWIND_STRICT (fgetxattr, frame, op_ret, op_errno, dict, xdata); +        return 0;  }  int  error_gen_fgetxattr (call_frame_t *frame, xlator_t *this, fd_t *fd, -                     const char *name) +                     const char *name, dict_t *xdata)  {  	int              op_errno = 0;          eg_t            *egp = NULL; @@ -1488,31 +1481,30 @@ error_gen_fgetxattr (call_frame_t *frame, xlator_t *this, fd_t *fd,  	if (op_errno) {  		GF_ERROR(this, "unwind(-1, %s)", strerror (op_errno)); -		STACK_UNWIND_STRICT (fgetxattr, frame, -1, op_errno, NULL); -		return 0; +		STACK_UNWIND_STRICT (fgetxattr, frame, -1, op_errno, NULL, xdata); +        return 0;  	}  	STACK_WIND (frame, error_gen_fgetxattr_cbk,  		    FIRST_CHILD(this),  		    FIRST_CHILD(this)->fops->fgetxattr, -		    fd, name); -	return 0; +		    fd, name, xdata); +        return 0;  }  int  error_gen_xattrop_cbk (call_frame_t *frame, void *cookie, xlator_t *this, -                       int32_t op_ret, int32_t op_errno, dict_t *dict) +                       int32_t op_ret, int32_t op_errno, dict_t *dict, dict_t *xdata)  { -	STACK_UNWIND_STRICT (xattrop, frame, op_ret, op_errno, dict); - -	return 0; +	STACK_UNWIND_STRICT (xattrop, frame, op_ret, op_errno, dict, xdata); +        return 0;  }  int  error_gen_xattrop (call_frame_t *frame, xlator_t *this, loc_t *loc, -		   gf_xattrop_flags_t flags, dict_t *dict) +		   gf_xattrop_flags_t flags, dict_t *dict, dict_t *xdata)  {  	int              op_errno = 0;          eg_t            *egp = NULL; @@ -1526,31 +1518,30 @@ error_gen_xattrop (call_frame_t *frame, xlator_t *this, loc_t *loc,  	if (op_errno) {  		GF_ERROR(this, "unwind(-1, %s)", strerror (op_errno)); -		STACK_UNWIND_STRICT (xattrop, frame, -1, op_errno, NULL); -		return 0; +		STACK_UNWIND_STRICT (xattrop, frame, -1, op_errno, NULL, xdata); +        return 0;  	}  	STACK_WIND (frame, error_gen_xattrop_cbk,  		    FIRST_CHILD(this),  		    FIRST_CHILD(this)->fops->xattrop, -		    loc, flags, dict); -	return 0; +		    loc, flags, dict, xdata); +        return 0;  }  int  error_gen_fxattrop_cbk (call_frame_t *frame, void *cookie, xlator_t *this, -			int32_t op_ret, int32_t op_errno, dict_t *dict) +			int32_t op_ret, int32_t op_errno, dict_t *dict, dict_t *xdata)  { -	STACK_UNWIND_STRICT (fxattrop, frame, op_ret, op_errno, dict); - -	return 0; +	STACK_UNWIND_STRICT (fxattrop, frame, op_ret, op_errno, dict, xdata); +        return 0;  }  int  error_gen_fxattrop (call_frame_t *frame, xlator_t *this, fd_t *fd, -		    gf_xattrop_flags_t flags, dict_t *dict) +		    gf_xattrop_flags_t flags, dict_t *dict, dict_t *xdata)  {  	int              op_errno = 0;          eg_t            *egp = NULL; @@ -1564,31 +1555,30 @@ error_gen_fxattrop (call_frame_t *frame, xlator_t *this, fd_t *fd,  	if (op_errno) {  		GF_ERROR(this, "unwind(-1, %s)", strerror (op_errno)); -		STACK_UNWIND_STRICT (fxattrop, frame, -1, op_errno, NULL); -		return 0; +		STACK_UNWIND_STRICT (fxattrop, frame, -1, op_errno, NULL, xdata); +        return 0;  	}  	STACK_WIND (frame, error_gen_fxattrop_cbk,  		    FIRST_CHILD(this),  		    FIRST_CHILD(this)->fops->fxattrop, -		    fd, flags, dict); -	return 0; +		    fd, flags, dict, xdata); +        return 0;  }  int  error_gen_removexattr_cbk (call_frame_t *frame, void *cookie, xlator_t *this, -			   int32_t op_ret, int32_t op_errno) +			   int32_t op_ret, int32_t op_errno, dict_t *xdata)  { -	STACK_UNWIND_STRICT (removexattr, frame, op_ret, op_errno); - -	return 0; +	STACK_UNWIND_STRICT (removexattr, frame, op_ret, op_errno, xdata); +        return 0;  }  int  error_gen_removexattr (call_frame_t *frame, xlator_t *this, loc_t *loc, -		       const char *name) +		       const char *name, dict_t *xdata)  {  	int              op_errno = 0;          eg_t            *egp = NULL; @@ -1602,30 +1592,29 @@ error_gen_removexattr (call_frame_t *frame, xlator_t *this, loc_t *loc,  	if (op_errno) {  		GF_ERROR(this, "unwind(-1, %s)", strerror (op_errno)); -		STACK_UNWIND_STRICT (removexattr, frame, -1, op_errno); -		return 0; +		STACK_UNWIND_STRICT (removexattr, frame, -1, op_errno, xdata); +        return 0;  	}  	STACK_WIND (frame, error_gen_removexattr_cbk,  		    FIRST_CHILD(this),  		    FIRST_CHILD(this)->fops->removexattr, -		    loc, name); -	return 0; +		    loc, name, xdata); +        return 0;  }  int  error_gen_fremovexattr_cbk (call_frame_t *frame, void *cookie, xlator_t *this, -			   int32_t op_ret, int32_t op_errno) +			   int32_t op_ret, int32_t op_errno, dict_t *xdata)  { -	STACK_UNWIND_STRICT (fremovexattr, frame, op_ret, op_errno); - -	return 0; +	STACK_UNWIND_STRICT (fremovexattr, frame, op_ret, op_errno, xdata); +        return 0;  }  int  error_gen_fremovexattr (call_frame_t *frame, xlator_t *this, fd_t *fd, -                        const char *name) +                        const char *name, dict_t *xdata)  {  	int              op_errno = 0;          eg_t            *egp = NULL; @@ -1639,30 +1628,30 @@ error_gen_fremovexattr (call_frame_t *frame, xlator_t *this, fd_t *fd,  	if (op_errno) {  		GF_ERROR(this, "unwind(-1, %s)", strerror (op_errno)); -		STACK_UNWIND_STRICT (fremovexattr, frame, -1, op_errno); -		return 0; +		STACK_UNWIND_STRICT (fremovexattr, frame, -1, op_errno, xdata); +        return 0;  	}  	STACK_WIND (frame, error_gen_fremovexattr_cbk,  		    FIRST_CHILD(this),  		    FIRST_CHILD(this)->fops->fremovexattr, -		    fd, name); -	return 0; +		    fd, name, xdata); +        return 0;  }  int  error_gen_lk_cbk (call_frame_t *frame, void *cookie, xlator_t *this, -		  int32_t op_ret, int32_t op_errno, struct gf_flock *lock) +		  int32_t op_ret, int32_t op_errno, struct gf_flock *lock, dict_t *xdata)  { -	STACK_UNWIND_STRICT (lk, frame, op_ret, op_errno, lock); -	return 0; +	STACK_UNWIND_STRICT (lk, frame, op_ret, op_errno, lock, xdata); +        return 0;  }  int  error_gen_lk (call_frame_t *frame, xlator_t *this, fd_t *fd, int32_t cmd, -	      struct gf_flock *lock) +	      struct gf_flock *lock, dict_t *xdata)  {  	int              op_errno = 0;          eg_t            *egp = NULL; @@ -1676,32 +1665,31 @@ error_gen_lk (call_frame_t *frame, xlator_t *this, fd_t *fd, int32_t cmd,  	if (op_errno) {  		GF_ERROR(this, "unwind(-1, %s)", strerror (op_errno)); -		STACK_UNWIND_STRICT (lk, frame, -1, op_errno, NULL); -		return 0; +		STACK_UNWIND_STRICT (lk, frame, -1, op_errno, NULL, xdata); +        return 0;  	}  	STACK_WIND (frame, error_gen_lk_cbk,  		    FIRST_CHILD(this),  		    FIRST_CHILD(this)->fops->lk, -		    fd, cmd, lock); -	return 0; +		    fd, cmd, lock, xdata); +        return 0;  }  int -error_gen_inodelk_cbk (call_frame_t *frame, void *cookie, -		       xlator_t *this, int32_t op_ret, int32_t op_errno) - +error_gen_inodelk_cbk (call_frame_t *frame, void *cookie, xlator_t *this, +                       int32_t op_ret, int32_t op_errno, dict_t *xdata)  { -	STACK_UNWIND_STRICT (inodelk, frame, op_ret, op_errno); -	return 0; +	STACK_UNWIND_STRICT (inodelk, frame, op_ret, op_errno, xdata); +        return 0;  }  int  error_gen_inodelk (call_frame_t *frame, xlator_t *this,  		   const char *volume, loc_t *loc, int32_t cmd, -                   struct gf_flock *lock) +                   struct gf_flock *lock, dict_t *xdata)  {  	int              op_errno = 0;          eg_t            *egp = NULL; @@ -1715,32 +1703,31 @@ error_gen_inodelk (call_frame_t *frame, xlator_t *this,  	if (op_errno) {  		GF_ERROR(this, "unwind(-1, %s)", strerror (op_errno)); -		STACK_UNWIND_STRICT (inodelk, frame, -1, op_errno); -		return 0; +		STACK_UNWIND_STRICT (inodelk, frame, -1, op_errno, xdata); +        return 0;  	}  	STACK_WIND (frame, error_gen_inodelk_cbk,  		    FIRST_CHILD(this),  		    FIRST_CHILD(this)->fops->inodelk, -		    volume, loc, cmd, lock); -	return 0; +		    volume, loc, cmd, lock, xdata); +        return 0;  }  int -error_gen_finodelk_cbk (call_frame_t *frame, void *cookie, -			xlator_t *this, int32_t op_ret, int32_t op_errno) - +error_gen_finodelk_cbk (call_frame_t *frame, void *cookie, xlator_t *this, +                        int32_t op_ret, int32_t op_errno, dict_t *xdata)  { -	STACK_UNWIND_STRICT (finodelk, frame, op_ret, op_errno); -	return 0; +	STACK_UNWIND_STRICT (finodelk, frame, op_ret, op_errno, xdata); +        return 0;  }  int  error_gen_finodelk (call_frame_t *frame, xlator_t *this,  		    const char *volume, fd_t *fd, int32_t cmd, -                    struct gf_flock *lock) +                    struct gf_flock *lock, dict_t *xdata)  {  	int              op_errno = 0;          eg_t            *egp = NULL; @@ -1754,32 +1741,31 @@ error_gen_finodelk (call_frame_t *frame, xlator_t *this,  	if (op_errno) {  		GF_ERROR(this, "unwind(-1, %s)", strerror (op_errno)); -		STACK_UNWIND_STRICT (finodelk, frame, -1, op_errno); -		return 0; +		STACK_UNWIND_STRICT (finodelk, frame, -1, op_errno, xdata); +        return 0;  	}  	STACK_WIND (frame, error_gen_finodelk_cbk,  		    FIRST_CHILD(this),  		    FIRST_CHILD(this)->fops->finodelk, -		    volume, fd, cmd, lock); -	return 0; +		    volume, fd, cmd, lock, xdata); +        return 0;  }  int -error_gen_entrylk_cbk (call_frame_t *frame, void *cookie, -		       xlator_t *this, int32_t op_ret, int32_t op_errno) - +error_gen_entrylk_cbk (call_frame_t *frame, void *cookie, xlator_t *this, +                       int32_t op_ret, int32_t op_errno, dict_t *xdata)  { -	STACK_UNWIND_STRICT (entrylk, frame, op_ret, op_errno); -	return 0; +	STACK_UNWIND_STRICT (entrylk, frame, op_ret, op_errno, xdata); +        return 0;  }  int  error_gen_entrylk (call_frame_t *frame, xlator_t *this,  		   const char *volume, loc_t *loc, const char *basename, -		   entrylk_cmd cmd, entrylk_type type) +		   entrylk_cmd cmd, entrylk_type type, dict_t *xdata)  {  	int              op_errno = 0;          eg_t            *egp = NULL; @@ -1793,32 +1779,31 @@ error_gen_entrylk (call_frame_t *frame, xlator_t *this,  	if (op_errno) {  		GF_ERROR(this, "unwind(-1, %s)", strerror (op_errno)); -		STACK_UNWIND_STRICT (entrylk, frame, -1, op_errno); -		return 0; +		STACK_UNWIND_STRICT (entrylk, frame, -1, op_errno, xdata); +        return 0;  	}  	STACK_WIND (frame, error_gen_entrylk_cbk,  		    FIRST_CHILD(this),  		    FIRST_CHILD(this)->fops->entrylk, -		    volume, loc, basename, cmd, type); -	return 0; +		    volume, loc, basename, cmd, type, xdata); +        return 0;  }  int -error_gen_fentrylk_cbk (call_frame_t *frame, void *cookie, -			xlator_t *this, int32_t op_ret, int32_t op_errno) - +error_gen_fentrylk_cbk (call_frame_t *frame, void *cookie, xlator_t *this, +                        int32_t op_ret, int32_t op_errno, dict_t *xdata)  { -	STACK_UNWIND_STRICT (fentrylk, frame, op_ret, op_errno); -	return 0; +	STACK_UNWIND_STRICT (fentrylk, frame, op_ret, op_errno, xdata); +        return 0;  }  int  error_gen_fentrylk (call_frame_t *frame, xlator_t *this,  		    const char *volume, fd_t *fd, const char *basename, -		    entrylk_cmd cmd, entrylk_type type) +		    entrylk_cmd cmd, entrylk_type type, dict_t *xdata)  {  	int             op_errno = 0;          eg_t            *egp = NULL; @@ -1832,15 +1817,15 @@ error_gen_fentrylk (call_frame_t *frame, xlator_t *this,  	if (op_errno) {  		GF_ERROR(this, "unwind(-1, %s)", strerror (op_errno)); -		STACK_UNWIND_STRICT (fentrylk, frame, -1, op_errno); -		return 0; +		STACK_UNWIND_STRICT (fentrylk, frame, -1, op_errno, xdata); +                return 0;  	}  	STACK_WIND (frame, error_gen_fentrylk_cbk,  		    FIRST_CHILD(this),  		    FIRST_CHILD(this)->fops->fentrylk, -		    volume, fd, basename, cmd, type); -	return 0; +		    volume, fd, basename, cmd, type, xdata); +        return 0;  } @@ -1852,8 +1837,7 @@ error_gen_getspec_cbk (call_frame_t *frame, void *cookie, xlator_t *this,  		       int32_t op_ret, int32_t op_errno, char *spec_data)  {  	STACK_UNWIND_STRICT (getspec, frame, op_ret, op_errno, spec_data); - -	return 0; +        return 0;  } @@ -1887,16 +1871,17 @@ error_gen_getspec (call_frame_t *frame, xlator_t *this, const char *key,  int  error_gen_readdir_cbk (call_frame_t *frame, void *cookie, xlator_t *this, -		       int32_t op_ret, int32_t op_errno, gf_dirent_t *entries) +		       int32_t op_ret, int32_t op_errno, gf_dirent_t *entries, +                       dict_t *xdata)  { -	STACK_UNWIND_STRICT (readdir, frame, op_ret, op_errno, entries); +	STACK_UNWIND_STRICT (readdir, frame, op_ret, op_errno, entries, xdata);  	return 0;  }  int  error_gen_readdir (call_frame_t *frame, xlator_t *this, fd_t *fd, -		   size_t size, off_t off) +		   size_t size, off_t off, dict_t *xdata)  {  	int              op_errno = 0;          eg_t            *egp = NULL; @@ -1910,23 +1895,24 @@ error_gen_readdir (call_frame_t *frame, xlator_t *this, fd_t *fd,  	if (op_errno) {  		GF_ERROR(this, "unwind(-1, %s)", strerror (op_errno)); -		STACK_UNWIND_STRICT (readdir, frame, -1, op_errno, NULL); +		STACK_UNWIND_STRICT (readdir, frame, -1, op_errno, NULL, xdata);  		return 0;  	}  	STACK_WIND (frame, error_gen_readdir_cbk,  		    FIRST_CHILD(this),  		    FIRST_CHILD(this)->fops->readdir, -		    fd, size, off); +		    fd, size, off, xdata);  	return 0;  }  int  error_gen_readdirp_cbk (call_frame_t *frame, void *cookie, xlator_t *this, -                        int32_t op_ret, int32_t op_errno, gf_dirent_t *entries) +                        int32_t op_ret, int32_t op_errno, gf_dirent_t *entries, +                        dict_t *xdata)  { -	STACK_UNWIND_STRICT (readdirp, frame, op_ret, op_errno, entries); +	STACK_UNWIND_STRICT (readdirp, frame, op_ret, op_errno, entries, xdata);  	return 0;  } @@ -1947,7 +1933,7 @@ error_gen_readdirp (call_frame_t *frame, xlator_t *this, fd_t *fd, size_t size,  	if (op_errno) {  		GF_ERROR(this, "unwind(-1, %s)", strerror (op_errno)); -		STACK_UNWIND_STRICT (readdirp, frame, -1, op_errno, NULL); +		STACK_UNWIND_STRICT (readdirp, frame, -1, op_errno, NULL, NULL);  		return 0;  	} @@ -1958,20 +1944,6 @@ error_gen_readdirp (call_frame_t *frame, xlator_t *this, fd_t *fd, size_t size,  	return 0;  } - -int -error_gen_closedir (xlator_t *this, fd_t *fd) -{ -	return 0; -} - - -int -error_gen_close (xlator_t *this, fd_t *fd) -{ -	return 0; -} -  int32_t  mem_acct_init (xlator_t *this)  { @@ -2157,11 +2129,6 @@ struct xlator_fops fops = {  	.getspec     = error_gen_getspec,  }; -struct xlator_cbks cbks = { -	.release = error_gen_close, -	.releasedir = error_gen_closedir, -}; -  struct volume_options options[] = {          { .key  = {"failure"},            .type = GF_OPTION_TYPE_INT }, diff --git a/xlators/debug/io-stats/src/io-stats.c b/xlators/debug/io-stats/src/io-stats.c index 5f1e2bb7889..7466f82e930 100644 --- a/xlators/debug/io-stats/src/io-stats.c +++ b/xlators/debug/io-stats/src/io-stats.c @@ -1174,11 +1174,12 @@ io_stats_dump_stats_to_dict (xlator_t *this, dict_t *resp,   out:          return ret;  } +  int  io_stats_create_cbk (call_frame_t *frame, void *cookie, xlator_t *this,                       int32_t op_ret, int32_t op_errno, fd_t *fd,                       inode_t *inode, struct iatt *buf, -                     struct iatt *preparent, struct iatt *postparent) +                     struct iatt *preparent, struct iatt *postparent, dict_t *xdata)  {          struct ios_fd *iosfd = NULL;          char          *path = NULL; @@ -1231,14 +1232,14 @@ io_stats_create_cbk (call_frame_t *frame, void *cookie, xlator_t *this,  unwind:          UPDATE_PROFILE_STATS (frame, CREATE);          STACK_UNWIND_STRICT (create, frame, op_ret, op_errno, fd, inode, buf, -                             preparent, postparent); +                             preparent, postparent, xdata);          return 0;  }  int  io_stats_open_cbk (call_frame_t *frame, void *cookie, xlator_t *this, -                   int32_t op_ret, int32_t op_errno, fd_t *fd) +                   int32_t op_ret, int32_t op_errno, fd_t *fd, dict_t *xdata)  {          struct ios_fd *iosfd = NULL;          char          *path = NULL; @@ -1286,7 +1287,7 @@ io_stats_open_cbk (call_frame_t *frame, void *cookie, xlator_t *this,  unwind:          UPDATE_PROFILE_STATS (frame, OPEN); -        STACK_UNWIND_STRICT (open, frame, op_ret, op_errno, fd); +        STACK_UNWIND_STRICT (open, frame, op_ret, op_errno, fd, xdata);          return 0;  } @@ -1294,10 +1295,10 @@ unwind:  int  io_stats_stat_cbk (call_frame_t *frame, void *cookie, xlator_t *this, -                   int32_t op_ret, int32_t op_errno, struct iatt *buf) +                   int32_t op_ret, int32_t op_errno, struct iatt *buf, dict_t *xdata)  {          UPDATE_PROFILE_STATS (frame, STAT); -        STACK_UNWIND_STRICT (stat, frame, op_ret, op_errno, buf); +        STACK_UNWIND_STRICT (stat, frame, op_ret, op_errno, buf, xdata);          return 0;  } @@ -1306,7 +1307,7 @@ int  io_stats_readv_cbk (call_frame_t *frame, void *cookie, xlator_t *this,                      int32_t op_ret, int32_t op_errno,                      struct iovec *vector, int32_t count, -                    struct iatt *buf, struct iobref *iobref) +                    struct iatt *buf, struct iobref *iobref, dict_t *xdata)  {          int              len = 0;          fd_t            *fd = NULL; @@ -1330,7 +1331,7 @@ io_stats_readv_cbk (call_frame_t *frame, void *cookie, xlator_t *this,          }          STACK_UNWIND_STRICT (readv, frame, op_ret, op_errno, -                             vector, count, buf, iobref); +                             vector, count, buf, iobref, xdata);          return 0;  } @@ -1339,7 +1340,7 @@ io_stats_readv_cbk (call_frame_t *frame, void *cookie, xlator_t *this,  int  io_stats_writev_cbk (call_frame_t *frame, void *cookie, xlator_t *this,                       int32_t op_ret, int32_t op_errno, -                     struct iatt *prebuf, struct iatt *postbuf) +                     struct iatt *prebuf, struct iatt *postbuf, dict_t *xdata)  {          struct ios_stat *iosstat = NULL;          inode_t         *inode   = NULL; @@ -1357,7 +1358,7 @@ io_stats_writev_cbk (call_frame_t *frame, void *cookie, xlator_t *this,                  }          } -        STACK_UNWIND_STRICT (writev, frame, op_ret, op_errno, prebuf, postbuf); +        STACK_UNWIND_STRICT (writev, frame, op_ret, op_errno, prebuf, postbuf, xdata);          return 0;  } @@ -1367,7 +1368,7 @@ io_stats_writev_cbk (call_frame_t *frame, void *cookie, xlator_t *this,  int  io_stats_readdirp_cbk (call_frame_t *frame, void *cookie, xlator_t *this, -                       int32_t op_ret, int32_t op_errno, gf_dirent_t *buf) +                       int32_t op_ret, int32_t op_errno, gf_dirent_t *buf, dict_t *xdata)  {          struct ios_stat *iosstat = NULL;          inode_t         *inode   = frame->local; @@ -1383,17 +1384,17 @@ io_stats_readdirp_cbk (call_frame_t *frame, void *cookie, xlator_t *this,                iosstat = NULL;          } -        STACK_UNWIND_STRICT (readdirp, frame, op_ret, op_errno, buf); +        STACK_UNWIND_STRICT (readdirp, frame, op_ret, op_errno, buf, xdata);          return 0;  }  int  io_stats_readdir_cbk (call_frame_t *frame, void *cookie, xlator_t *this, -                      int32_t op_ret, int32_t op_errno, gf_dirent_t *buf) +                      int32_t op_ret, int32_t op_errno, gf_dirent_t *buf, dict_t *xdata)  {          UPDATE_PROFILE_STATS (frame, READDIR); -        STACK_UNWIND_STRICT (readdir, frame, op_ret, op_errno, buf); +        STACK_UNWIND_STRICT (readdir, frame, op_ret, op_errno, buf, xdata);          return 0;  } @@ -1401,10 +1402,10 @@ io_stats_readdir_cbk (call_frame_t *frame, void *cookie, xlator_t *this,  int  io_stats_fsync_cbk (call_frame_t *frame, void *cookie, xlator_t *this,                      int32_t op_ret, int32_t op_errno, -                    struct iatt *prebuf, struct iatt *postbuf) +                    struct iatt *prebuf, struct iatt *postbuf, dict_t *xdata)  {          UPDATE_PROFILE_STATS (frame, FSYNC); -        STACK_UNWIND_STRICT (fsync, frame, op_ret, op_errno, prebuf, postbuf); +        STACK_UNWIND_STRICT (fsync, frame, op_ret, op_errno, prebuf, postbuf, xdata);          return 0;  } @@ -1412,10 +1413,10 @@ io_stats_fsync_cbk (call_frame_t *frame, void *cookie, xlator_t *this,  int  io_stats_setattr_cbk (call_frame_t *frame, void *cookie, xlator_t *this,                        int32_t op_ret, int32_t op_errno, -                      struct iatt *preop, struct iatt *postop) +                      struct iatt *preop, struct iatt *postop, dict_t *xdata)  {          UPDATE_PROFILE_STATS (frame, SETATTR); -        STACK_UNWIND_STRICT (setattr, frame, op_ret, op_errno, preop, postop); +        STACK_UNWIND_STRICT (setattr, frame, op_ret, op_errno, preop, postop, xdata);          return 0;  } @@ -1423,11 +1424,11 @@ io_stats_setattr_cbk (call_frame_t *frame, void *cookie, xlator_t *this,  int  io_stats_unlink_cbk (call_frame_t *frame, void *cookie, xlator_t *this,                       int32_t op_ret, int32_t op_errno, -                     struct iatt *preparent, struct iatt *postparent) +                     struct iatt *preparent, struct iatt *postparent, dict_t *xdata)  {          UPDATE_PROFILE_STATS (frame, UNLINK);          STACK_UNWIND_STRICT (unlink, frame, op_ret, op_errno, -                             preparent, postparent); +                             preparent, postparent, xdata);          return 0;  } @@ -1437,12 +1438,12 @@ int  io_stats_rename_cbk (call_frame_t *frame, void *cookie, xlator_t *this,                       int32_t op_ret, int32_t op_errno, struct iatt *buf,                       struct iatt *preoldparent, struct iatt *postoldparent, -                     struct iatt *prenewparent, struct iatt *postnewparent) +                     struct iatt *prenewparent, struct iatt *postnewparent, dict_t *xdata)  {          UPDATE_PROFILE_STATS (frame, RENAME);          STACK_UNWIND_STRICT (rename, frame, op_ret, op_errno, buf,                               preoldparent, postoldparent, -                             prenewparent, postnewparent); +                             prenewparent, postnewparent, xdata);          return 0;  } @@ -1450,10 +1451,10 @@ io_stats_rename_cbk (call_frame_t *frame, void *cookie, xlator_t *this,  int  io_stats_readlink_cbk (call_frame_t *frame, void *cookie, xlator_t *this,                         int32_t op_ret, int32_t op_errno, const char *buf, -                       struct iatt *sbuf) +                       struct iatt *sbuf, dict_t *xdata)  {          UPDATE_PROFILE_STATS (frame, READLINK); -        STACK_UNWIND_STRICT (readlink, frame, op_ret, op_errno, buf, sbuf); +        STACK_UNWIND_STRICT (readlink, frame, op_ret, op_errno, buf, sbuf, xdata);          return 0;  } @@ -1462,10 +1463,10 @@ int  io_stats_lookup_cbk (call_frame_t *frame, void *cookie, xlator_t *this,                       int32_t op_ret, int32_t op_errno,                       inode_t *inode, struct iatt *buf, -                     dict_t *xattr, struct iatt *postparent) +                     dict_t *xdata, struct iatt *postparent)  {          UPDATE_PROFILE_STATS (frame, LOOKUP); -        STACK_UNWIND_STRICT (lookup, frame, op_ret, op_errno, inode, buf, xattr, +        STACK_UNWIND_STRICT (lookup, frame, op_ret, op_errno, inode, buf, xdata,                               postparent);          return 0;  } @@ -1475,11 +1476,11 @@ int  io_stats_symlink_cbk (call_frame_t *frame, void *cookie, xlator_t *this,                        int32_t op_ret, int32_t op_errno,                        inode_t *inode, struct iatt *buf, -                      struct iatt *preparent, struct iatt *postparent) +                      struct iatt *preparent, struct iatt *postparent, dict_t *xdata)  {          UPDATE_PROFILE_STATS (frame, SYMLINK);          STACK_UNWIND_STRICT (symlink, frame, op_ret, op_errno, inode, buf, -                             preparent, postparent); +                             preparent, postparent, xdata);          return 0;  } @@ -1488,11 +1489,11 @@ int  io_stats_mknod_cbk (call_frame_t *frame, void *cookie, xlator_t *this,                      int32_t op_ret, int32_t op_errno,                      inode_t *inode, struct iatt *buf, -                    struct iatt *preparent, struct iatt *postparent) +                    struct iatt *preparent, struct iatt *postparent, dict_t *xdata)  {          UPDATE_PROFILE_STATS (frame, MKNOD);          STACK_UNWIND_STRICT (mknod, frame, op_ret, op_errno, inode, buf, -                             preparent, postparent); +                             preparent, postparent, xdata);          return 0;  } @@ -1501,7 +1502,8 @@ int  io_stats_mkdir_cbk (call_frame_t *frame, void *cookie, xlator_t *this,                      int32_t op_ret, int32_t op_errno,                      inode_t *inode, struct iatt *buf, -                    struct iatt *preparent, struct iatt *postparent) +                    struct iatt *preparent, struct iatt *postparent, +                    dict_t *xdata)  {          struct ios_stat *iosstat = NULL;          char   *path = frame->local; @@ -1524,7 +1526,7 @@ unwind:                  GF_FREE (frame->local);          frame->local = NULL;          STACK_UNWIND_STRICT (mkdir, frame, op_ret, op_errno, inode, buf, -                             preparent, postparent); +                             preparent, postparent, xdata);          return 0;  } @@ -1533,28 +1535,28 @@ int  io_stats_link_cbk (call_frame_t *frame, void *cookie, xlator_t *this,                     int32_t op_ret, int32_t op_errno,                     inode_t *inode, struct iatt *buf, -                   struct iatt *preparent, struct iatt *postparent) +                   struct iatt *preparent, struct iatt *postparent, dict_t *xdata)  {          UPDATE_PROFILE_STATS (frame, LINK);          STACK_UNWIND_STRICT (link, frame, op_ret, op_errno, inode, buf, -                             preparent, postparent); +                             preparent, postparent, xdata);          return 0;  }  int  io_stats_flush_cbk (call_frame_t *frame, void *cookie, xlator_t *this, -                    int32_t op_ret, int32_t op_errno) +                    int32_t op_ret, int32_t op_errno, dict_t *xdata)  {          UPDATE_PROFILE_STATS (frame, FLUSH); -        STACK_UNWIND_STRICT (flush, frame, op_ret, op_errno); +        STACK_UNWIND_STRICT (flush, frame, op_ret, op_errno, xdata);          return 0;  }  int  io_stats_opendir_cbk (call_frame_t *frame, void *cookie, xlator_t *this, -                      int32_t op_ret, int32_t op_errno, fd_t *fd) +                      int32_t op_ret, int32_t op_errno, fd_t *fd, dict_t *xdata)  {          struct ios_stat *iosstat = NULL;          int              ret     = -1; @@ -1570,7 +1572,7 @@ io_stats_opendir_cbk (call_frame_t *frame, void *cookie, xlator_t *this,                  BUMP_STATS (iosstat, IOS_STATS_TYPE_OPENDIR);  unwind: -        STACK_UNWIND_STRICT (opendir, frame, op_ret, op_errno, fd); +        STACK_UNWIND_STRICT (opendir, frame, op_ret, op_errno, fd, xdata);          return 0;  } @@ -1578,13 +1580,13 @@ unwind:  int  io_stats_rmdir_cbk (call_frame_t *frame, void *cookie, xlator_t *this,                      int32_t op_ret, int32_t op_errno, -                    struct iatt *preparent, struct iatt *postparent) +                    struct iatt *preparent, struct iatt *postparent, dict_t *xdata)  {          UPDATE_PROFILE_STATS (frame, RMDIR);          STACK_UNWIND_STRICT (rmdir, frame, op_ret, op_errno, -                             preparent, postparent); +                             preparent, postparent, xdata);          return 0;  } @@ -1592,100 +1594,100 @@ io_stats_rmdir_cbk (call_frame_t *frame, void *cookie, xlator_t *this,  int  io_stats_truncate_cbk (call_frame_t *frame, void *cookie, xlator_t *this,                         int32_t op_ret, int32_t op_errno, -                       struct iatt *prebuf, struct iatt *postbuf) +                       struct iatt *prebuf, struct iatt *postbuf, dict_t *xdata)  {          UPDATE_PROFILE_STATS (frame, TRUNCATE);          STACK_UNWIND_STRICT (truncate, frame, op_ret, op_errno, -                             prebuf, postbuf); +                             prebuf, postbuf, xdata);          return 0;  }  int  io_stats_statfs_cbk (call_frame_t *frame, void *cookie, xlator_t *this, -                     int32_t op_ret, int32_t op_errno, struct statvfs *buf) +                     int32_t op_ret, int32_t op_errno, struct statvfs *buf, dict_t *xdata)  {          UPDATE_PROFILE_STATS (frame, STATFS); -        STACK_UNWIND_STRICT (statfs, frame, op_ret, op_errno, buf); +        STACK_UNWIND_STRICT (statfs, frame, op_ret, op_errno, buf, xdata);          return 0;  }  int  io_stats_setxattr_cbk (call_frame_t *frame, void *cookie, xlator_t *this, -                       int32_t op_ret, int32_t op_errno) +                       int32_t op_ret, int32_t op_errno, dict_t *xdata)  {          UPDATE_PROFILE_STATS (frame, SETXATTR); -        STACK_UNWIND_STRICT (setxattr, frame, op_ret, op_errno); +        STACK_UNWIND_STRICT (setxattr, frame, op_ret, op_errno, xdata);          return 0;  }  int  io_stats_getxattr_cbk (call_frame_t *frame, void *cookie, xlator_t *this, -                       int32_t op_ret, int32_t op_errno, dict_t *dict) +                       int32_t op_ret, int32_t op_errno, dict_t *dict, dict_t *xdata)  {          UPDATE_PROFILE_STATS (frame, GETXATTR); -        STACK_UNWIND_STRICT (getxattr, frame, op_ret, op_errno, dict); +        STACK_UNWIND_STRICT (getxattr, frame, op_ret, op_errno, dict, xdata);          return 0;  }  int  io_stats_removexattr_cbk (call_frame_t *frame, void *cookie, xlator_t *this, -                          int32_t op_ret, int32_t op_errno) +                          int32_t op_ret, int32_t op_errno, dict_t *xdata)  {          UPDATE_PROFILE_STATS (frame, REMOVEXATTR); -        STACK_UNWIND_STRICT (removexattr, frame, op_ret, op_errno); +        STACK_UNWIND_STRICT (removexattr, frame, op_ret, op_errno, xdata);          return 0;  }  int  io_stats_fsetxattr_cbk (call_frame_t *frame, void *cookie, xlator_t *this, -                        int32_t op_ret, int32_t op_errno) +                        int32_t op_ret, int32_t op_errno, dict_t *xdata)  {          UPDATE_PROFILE_STATS (frame, FSETXATTR); -        STACK_UNWIND_STRICT (fsetxattr, frame, op_ret, op_errno); +        STACK_UNWIND_STRICT (fsetxattr, frame, op_ret, op_errno, xdata);          return 0;  }  int  io_stats_fgetxattr_cbk (call_frame_t *frame, void *cookie, xlator_t *this, -                        int32_t op_ret, int32_t op_errno, dict_t *dict) +                        int32_t op_ret, int32_t op_errno, dict_t *dict, dict_t *xdata)  {          UPDATE_PROFILE_STATS (frame, FGETXATTR); -        STACK_UNWIND_STRICT (fgetxattr, frame, op_ret, op_errno, dict); +        STACK_UNWIND_STRICT (fgetxattr, frame, op_ret, op_errno, dict, xdata);          return 0;  }  int  io_stats_fremovexattr_cbk (call_frame_t *frame, void *cookie, xlator_t *this, -                           int32_t op_ret, int32_t op_errno) +                           int32_t op_ret, int32_t op_errno, dict_t *xdata)  {          UPDATE_PROFILE_STATS (frame, FREMOVEXATTR); -        STACK_UNWIND_STRICT (fremovexattr, frame, op_ret, op_errno); +        STACK_UNWIND_STRICT (fremovexattr, frame, op_ret, op_errno, xdata);          return 0;  }  int  io_stats_fsyncdir_cbk (call_frame_t *frame, void *cookie, xlator_t *this, -                       int32_t op_ret, int32_t op_errno) +                       int32_t op_ret, int32_t op_errno, dict_t *xdata)  {          UPDATE_PROFILE_STATS (frame, FSYNCDIR); -        STACK_UNWIND_STRICT (fsyncdir, frame, op_ret, op_errno); +        STACK_UNWIND_STRICT (fsyncdir, frame, op_ret, op_errno, xdata);          return 0;  }  int  io_stats_access_cbk (call_frame_t *frame, void *cookie, xlator_t *this, -                     int32_t op_ret, int32_t op_errno) +                     int32_t op_ret, int32_t op_errno, dict_t *xdata)  {          UPDATE_PROFILE_STATS (frame, ACCESS); -        STACK_UNWIND_STRICT (access, frame, op_ret, op_errno); +        STACK_UNWIND_STRICT (access, frame, op_ret, op_errno, xdata);          return 0;  } @@ -1693,92 +1695,92 @@ io_stats_access_cbk (call_frame_t *frame, void *cookie, xlator_t *this,  int  io_stats_ftruncate_cbk (call_frame_t *frame, void *cookie, xlator_t *this,                          int32_t op_ret, int32_t op_errno, -                        struct iatt *prebuf, struct iatt *postbuf) +                        struct iatt *prebuf, struct iatt *postbuf, dict_t *xdata)  {          UPDATE_PROFILE_STATS (frame, FTRUNCATE);          STACK_UNWIND_STRICT (ftruncate, frame, op_ret, op_errno, -                             prebuf, postbuf); +                             prebuf, postbuf, xdata);          return 0;  }  int  io_stats_fstat_cbk (call_frame_t *frame, void *cookie, xlator_t *this, -                    int32_t op_ret, int32_t op_errno, struct iatt *buf) +                    int32_t op_ret, int32_t op_errno, struct iatt *buf, dict_t *xdata)  {          UPDATE_PROFILE_STATS (frame, FSTAT); -        STACK_UNWIND_STRICT (fstat, frame, op_ret, op_errno, buf); +        STACK_UNWIND_STRICT (fstat, frame, op_ret, op_errno, buf, xdata);          return 0;  }  int  io_stats_lk_cbk (call_frame_t *frame, void *cookie, xlator_t *this, -                 int32_t op_ret, int32_t op_errno, struct gf_flock *lock) +                 int32_t op_ret, int32_t op_errno, struct gf_flock *lock, dict_t *xdata)  {          UPDATE_PROFILE_STATS (frame, LK); -        STACK_UNWIND_STRICT (lk, frame, op_ret, op_errno, lock); +        STACK_UNWIND_STRICT (lk, frame, op_ret, op_errno, lock, xdata);          return 0;  }  int  io_stats_entrylk_cbk (call_frame_t *frame, void *cookie, xlator_t *this, -                      int32_t op_ret, int32_t op_errno) +                      int32_t op_ret, int32_t op_errno, dict_t *xdata)  {          UPDATE_PROFILE_STATS (frame, ENTRYLK); -        STACK_UNWIND_STRICT (entrylk, frame, op_ret, op_errno); +        STACK_UNWIND_STRICT (entrylk, frame, op_ret, op_errno, xdata);          return 0;  }  int  io_stats_xattrop_cbk (call_frame_t *frame, void *cookie, xlator_t *this, -                      int32_t op_ret, int32_t op_errno, dict_t *dict) +                      int32_t op_ret, int32_t op_errno, dict_t *dict, dict_t *xdata)  {          UPDATE_PROFILE_STATS (frame, XATTROP); -        STACK_UNWIND_STRICT (xattrop, frame, op_ret, op_errno, dict); +        STACK_UNWIND_STRICT (xattrop, frame, op_ret, op_errno, dict, xdata);          return 0;  }  int  io_stats_fxattrop_cbk (call_frame_t *frame, void *cookie, xlator_t *this, -                       int32_t op_ret, int32_t op_errno, dict_t *dict) +                       int32_t op_ret, int32_t op_errno, dict_t *dict, dict_t *xdata)  {          UPDATE_PROFILE_STATS (frame, FXATTROP); -        STACK_UNWIND_STRICT (fxattrop, frame, op_ret, op_errno, dict); +        STACK_UNWIND_STRICT (fxattrop, frame, op_ret, op_errno, dict, xdata);          return 0;  }  int  io_stats_inodelk_cbk (call_frame_t *frame, void *cookie, xlator_t *this, -                      int32_t op_ret, int32_t op_errno) +                      int32_t op_ret, int32_t op_errno, dict_t *xdata)  {          UPDATE_PROFILE_STATS (frame, INODELK); -        STACK_UNWIND_STRICT (inodelk, frame, op_ret, op_errno); +        STACK_UNWIND_STRICT (inodelk, frame, op_ret, op_errno, xdata);          return 0;  }  int  io_stats_entrylk (call_frame_t *frame, xlator_t *this,                    const char *volume, loc_t *loc, const char *basename, -                  entrylk_cmd cmd, entrylk_type type) +                  entrylk_cmd cmd, entrylk_type type, dict_t *xdata)  {          START_FOP_LATENCY (frame);          STACK_WIND (frame, io_stats_entrylk_cbk,                      FIRST_CHILD (this),                      FIRST_CHILD (this)->fops->entrylk, -                    volume, loc, basename, cmd, type); +                    volume, loc, basename, cmd, type, xdata);          return 0;  }  int  io_stats_inodelk (call_frame_t *frame, xlator_t *this, -                  const char *volume, loc_t *loc, int32_t cmd, struct gf_flock *flock) +                  const char *volume, loc_t *loc, int32_t cmd, struct gf_flock *flock, dict_t *xdata)  {          START_FOP_LATENCY (frame); @@ -1786,128 +1788,122 @@ io_stats_inodelk (call_frame_t *frame, xlator_t *this,          STACK_WIND (frame, io_stats_inodelk_cbk,                      FIRST_CHILD (this),                      FIRST_CHILD (this)->fops->inodelk, -                    volume, loc, cmd, flock); +                    volume, loc, cmd, flock, xdata);          return 0;  }  int  io_stats_finodelk_cbk (call_frame_t *frame, void *cookie, xlator_t *this, -                       int32_t op_ret, int32_t op_errno) +                       int32_t op_ret, int32_t op_errno, dict_t *xdata)  {          UPDATE_PROFILE_STATS (frame, FINODELK); -        STACK_UNWIND_STRICT (finodelk, frame, op_ret, op_errno); +        STACK_UNWIND_STRICT (finodelk, frame, op_ret, op_errno, xdata);          return 0;  }  int -io_stats_finodelk (call_frame_t *frame, xlator_t *this, -                   const char *volume, fd_t *fd, int32_t cmd, struct gf_flock *flock) +io_stats_finodelk (call_frame_t *frame, xlator_t *this, const char *volume, +                   fd_t *fd, int32_t cmd, struct gf_flock *flock, dict_t *xdata)  {          START_FOP_LATENCY (frame);          STACK_WIND (frame, io_stats_finodelk_cbk,                      FIRST_CHILD (this),                      FIRST_CHILD (this)->fops->finodelk, -                    volume, fd, cmd, flock); +                    volume, fd, cmd, flock, xdata);          return 0;  }  int -io_stats_xattrop (call_frame_t *frame, xlator_t *this, -                  loc_t *loc, gf_xattrop_flags_t flags, dict_t *dict) +io_stats_xattrop (call_frame_t *frame, xlator_t *this, loc_t *loc, +                  gf_xattrop_flags_t flags, dict_t *dict, dict_t *xdata)  {          START_FOP_LATENCY (frame);          STACK_WIND (frame, io_stats_xattrop_cbk,                      FIRST_CHILD(this),                      FIRST_CHILD(this)->fops->xattrop, -                    loc, flags, dict); - +                    loc, flags, dict, xdata);          return 0;  }  int -io_stats_fxattrop (call_frame_t *frame, xlator_t *this, -                   fd_t *fd, gf_xattrop_flags_t flags, dict_t *dict) +io_stats_fxattrop (call_frame_t *frame, xlator_t *this, fd_t *fd, +                   gf_xattrop_flags_t flags, dict_t *dict, dict_t *xdata)  {          START_FOP_LATENCY (frame);          STACK_WIND (frame, io_stats_fxattrop_cbk,                      FIRST_CHILD(this),                      FIRST_CHILD(this)->fops->fxattrop, -                    fd, flags, dict); - +                    fd, flags, dict, xdata);          return 0;  }  int  io_stats_lookup (call_frame_t *frame, xlator_t *this, -                 loc_t *loc, dict_t *xattr_req) +                 loc_t *loc, dict_t *xdata)  {          START_FOP_LATENCY (frame);          STACK_WIND (frame, io_stats_lookup_cbk,                      FIRST_CHILD(this),                      FIRST_CHILD(this)->fops->lookup, -                    loc, xattr_req); - +                    loc, xdata);          return 0;  }  int -io_stats_stat (call_frame_t *frame, xlator_t *this, loc_t *loc) +io_stats_stat (call_frame_t *frame, xlator_t *this, loc_t *loc, dict_t *xdata)  {          START_FOP_LATENCY (frame);          STACK_WIND (frame, io_stats_stat_cbk,                      FIRST_CHILD(this),                      FIRST_CHILD(this)->fops->stat, -                    loc); - +                    loc, xdata);          return 0;  }  int  io_stats_readlink (call_frame_t *frame, xlator_t *this, -                   loc_t *loc, size_t size) +                   loc_t *loc, size_t size, dict_t *xdata)  {          START_FOP_LATENCY (frame);          STACK_WIND (frame, io_stats_readlink_cbk,                      FIRST_CHILD(this),                      FIRST_CHILD(this)->fops->readlink, -                    loc, size); - +                    loc, size, xdata);          return 0;  }  int -io_stats_mknod (call_frame_t *frame, xlator_t *this, -                loc_t *loc, mode_t mode, dev_t dev, dict_t *params) +io_stats_mknod (call_frame_t *frame, xlator_t *this, loc_t *loc, +                mode_t mode, dev_t dev, mode_t umask, dict_t *xdata)  {          START_FOP_LATENCY (frame);          STACK_WIND (frame, io_stats_mknod_cbk,                      FIRST_CHILD(this),                      FIRST_CHILD(this)->fops->mknod, -                    loc, mode, dev, params); - +                    loc, mode, dev, umask, xdata);          return 0;  }  int  io_stats_mkdir (call_frame_t *frame, xlator_t *this, -                loc_t *loc, mode_t mode, dict_t *params) +                loc_t *loc, mode_t mode, mode_t umask, dict_t *xdata)  {          frame->local = gf_strdup (loc->path); @@ -1916,117 +1912,112 @@ io_stats_mkdir (call_frame_t *frame, xlator_t *this,          STACK_WIND (frame, io_stats_mkdir_cbk,                      FIRST_CHILD(this),                      FIRST_CHILD(this)->fops->mkdir, -                    loc, mode, params); +                    loc, mode, umask, xdata);          return 0;  }  int  io_stats_unlink (call_frame_t *frame, xlator_t *this, -                 loc_t *loc) +                 loc_t *loc, int xflag, dict_t *xdata)  {          START_FOP_LATENCY (frame);          STACK_WIND (frame, io_stats_unlink_cbk,                      FIRST_CHILD(this),                      FIRST_CHILD(this)->fops->unlink, -                    loc); +                    loc, xflag, xdata);          return 0;  }  int  io_stats_rmdir (call_frame_t *frame, xlator_t *this, -                loc_t *loc, int flags) +                loc_t *loc, int flags, dict_t *xdata)  {          START_FOP_LATENCY (frame);          STACK_WIND (frame, io_stats_rmdir_cbk,                      FIRST_CHILD(this),                      FIRST_CHILD(this)->fops->rmdir, -                    loc, flags); - +                    loc, flags, xdata);          return 0;  }  int -io_stats_symlink (call_frame_t *frame, xlator_t *this, -                  const char *linkpath, loc_t *loc, dict_t *params) +io_stats_symlink (call_frame_t *frame, xlator_t *this, const char *linkpath, +                  loc_t *loc, mode_t umask, dict_t *xdata)  {          START_FOP_LATENCY (frame);          STACK_WIND (frame, io_stats_symlink_cbk,                      FIRST_CHILD(this),                      FIRST_CHILD(this)->fops->symlink, -                    linkpath, loc, params); - +                    linkpath, loc, umask, xdata);          return 0;  }  int  io_stats_rename (call_frame_t *frame, xlator_t *this, -                 loc_t *oldloc, loc_t *newloc) +                 loc_t *oldloc, loc_t *newloc, dict_t *xdata)  {          START_FOP_LATENCY (frame);          STACK_WIND (frame, io_stats_rename_cbk,                      FIRST_CHILD(this),                      FIRST_CHILD(this)->fops->rename, -                    oldloc, newloc); - +                    oldloc, newloc, xdata);          return 0;  }  int  io_stats_link (call_frame_t *frame, xlator_t *this, -               loc_t *oldloc, loc_t *newloc) +               loc_t *oldloc, loc_t *newloc, dict_t *xdata)  {          START_FOP_LATENCY (frame);          STACK_WIND (frame, io_stats_link_cbk,                      FIRST_CHILD(this),                      FIRST_CHILD(this)->fops->link, -                    oldloc, newloc); +                    oldloc, newloc, xdata);          return 0;  }  int  io_stats_setattr (call_frame_t *frame, xlator_t *this, -                  loc_t *loc, struct iatt *stbuf, int32_t valid) +                  loc_t *loc, struct iatt *stbuf, int32_t valid, dict_t *xdata)  {          START_FOP_LATENCY (frame);          STACK_WIND (frame, io_stats_setattr_cbk,                      FIRST_CHILD(this),                      FIRST_CHILD(this)->fops->setattr, -                    loc, stbuf, valid); - +                    loc, stbuf, valid, xdata);          return 0;  }  int  io_stats_truncate (call_frame_t *frame, xlator_t *this, -                   loc_t *loc, off_t offset) +                   loc_t *loc, off_t offset, dict_t *xdata)  {          START_FOP_LATENCY (frame);          STACK_WIND (frame, io_stats_truncate_cbk,                      FIRST_CHILD(this),                      FIRST_CHILD(this)->fops->truncate, -                    loc, offset); - +                    loc, offset, xdata);          return 0;  }  int -io_stats_open (call_frame_t *frame, xlator_t *this, -               loc_t *loc, int32_t flags, fd_t *fd, int32_t wbflags) +io_stats_open (call_frame_t *frame, xlator_t *this, loc_t *loc, +               int32_t flags, fd_t *fd, dict_t *xdata)  {          frame->local = gf_strdup (loc->path); @@ -2035,7 +2026,7 @@ io_stats_open (call_frame_t *frame, xlator_t *this,          STACK_WIND (frame, io_stats_open_cbk,                      FIRST_CHILD(this),                      FIRST_CHILD(this)->fops->open, -                    loc, flags, fd, wbflags); +                    loc, flags, fd, xdata);          return 0;  } @@ -2043,7 +2034,7 @@ io_stats_open (call_frame_t *frame, xlator_t *this,  int  io_stats_create (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)  {          frame->local = gf_strdup (loc->path); @@ -2052,14 +2043,14 @@ io_stats_create (call_frame_t *frame, xlator_t *this,          STACK_WIND (frame, io_stats_create_cbk,                      FIRST_CHILD(this),                      FIRST_CHILD(this)->fops->create, -                    loc, flags, mode, fd, params); +                    loc, flags, mode, umask, fd, xdata);          return 0;  }  int  io_stats_readv (call_frame_t *frame, xlator_t *this, -                fd_t *fd, size_t size, off_t offset, uint32_t flags) +                fd_t *fd, size_t size, off_t offset, uint32_t flags, dict_t *xdata)  {          frame->local = fd; @@ -2068,7 +2059,7 @@ io_stats_readv (call_frame_t *frame, xlator_t *this,          STACK_WIND (frame, io_stats_readv_cbk,                      FIRST_CHILD(this),                      FIRST_CHILD(this)->fops->readv, -                    fd, size, offset, flags); +                    fd, size, offset, flags, xdata);          return 0;  } @@ -2077,7 +2068,7 @@ int  io_stats_writev (call_frame_t *frame, xlator_t *this,                   fd_t *fd, struct iovec *vector,                   int32_t count, off_t offset, -                 uint32_t flags, struct iobref *iobref) +                 uint32_t flags, struct iobref *iobref, dict_t *xdata)  {          int                 len = 0; @@ -2091,7 +2082,7 @@ io_stats_writev (call_frame_t *frame, xlator_t *this,          STACK_WIND (frame, io_stats_writev_cbk,                      FIRST_CHILD(this),                      FIRST_CHILD(this)->fops->writev, -                    fd, vector, count, offset, flags, iobref); +                    fd, vector, count, offset, flags, iobref, xdata);          return 0;  } @@ -2099,42 +2090,42 @@ io_stats_writev (call_frame_t *frame, xlator_t *this,  int  io_stats_statfs (call_frame_t *frame, xlator_t *this, -                 loc_t *loc) +                 loc_t *loc, dict_t *xdata)  {          START_FOP_LATENCY (frame);          STACK_WIND (frame, io_stats_statfs_cbk,                      FIRST_CHILD(this),                      FIRST_CHILD(this)->fops->statfs, -                    loc); +                    loc, xdata);          return 0;  }  int  io_stats_flush (call_frame_t *frame, xlator_t *this, -                fd_t *fd) +                fd_t *fd, dict_t *xdata)  {          START_FOP_LATENCY (frame);          STACK_WIND (frame, io_stats_flush_cbk,                      FIRST_CHILD(this),                      FIRST_CHILD(this)->fops->flush, -                    fd); +                    fd, xdata);          return 0;  }  int  io_stats_fsync (call_frame_t *frame, xlator_t *this, -                fd_t *fd, int32_t flags) +                fd_t *fd, int32_t flags, dict_t *xdata)  {          START_FOP_LATENCY (frame);          STACK_WIND (frame, io_stats_fsync_cbk,                      FIRST_CHILD(this),                      FIRST_CHILD(this)->fops->fsync, -                    fd, flags); +                    fd, flags, xdata);          return 0;  } @@ -2183,7 +2174,7 @@ conditional_dump (dict_t *dict, char *key, data_t *value, void *data)  int  io_stats_setxattr (call_frame_t *frame, xlator_t *this,                     loc_t *loc, dict_t *dict, -                   int32_t flags) +                   int32_t flags, dict_t *xdata)  {          struct {                  xlator_t     *this; @@ -2202,36 +2193,35 @@ io_stats_setxattr (call_frame_t *frame, xlator_t *this,          STACK_WIND (frame, io_stats_setxattr_cbk,                      FIRST_CHILD(this),                      FIRST_CHILD(this)->fops->setxattr, -                    loc, dict, flags); +                    loc, dict, flags, xdata);          return 0;  }  int  io_stats_getxattr (call_frame_t *frame, xlator_t *this, -                   loc_t *loc, const char *name) +                   loc_t *loc, const char *name, dict_t *xdata)  {          START_FOP_LATENCY (frame);          STACK_WIND (frame, io_stats_getxattr_cbk,                      FIRST_CHILD(this),                      FIRST_CHILD(this)->fops->getxattr, -                    loc, name); +                    loc, name, xdata);          return 0;  }  int  io_stats_removexattr (call_frame_t *frame, xlator_t *this, -                      loc_t *loc, const char *name) +                      loc_t *loc, const char *name, dict_t *xdata)  {          START_FOP_LATENCY (frame);          STACK_WIND (frame, io_stats_removexattr_cbk,                      FIRST_CHILD(this),                      FIRST_CHILD(this)->fops->removexattr, -                    loc, name); - +                    loc, name, xdata);          return 0;  } @@ -2239,50 +2229,49 @@ io_stats_removexattr (call_frame_t *frame, xlator_t *this,  int  io_stats_fsetxattr (call_frame_t *frame, xlator_t *this,                      fd_t *fd, dict_t *dict, -                    int32_t flags) +                    int32_t flags, dict_t *xdata)  {          START_FOP_LATENCY (frame);          STACK_WIND (frame, io_stats_fsetxattr_cbk,                      FIRST_CHILD(this),                      FIRST_CHILD(this)->fops->fsetxattr, -                    fd, dict, flags); +                    fd, dict, flags, xdata);          return 0;  }  int  io_stats_fgetxattr (call_frame_t *frame, xlator_t *this, -                    fd_t *fd, const char *name) +                    fd_t *fd, const char *name, dict_t *xdata)  {          START_FOP_LATENCY (frame);          STACK_WIND (frame, io_stats_fgetxattr_cbk,                      FIRST_CHILD(this),                      FIRST_CHILD(this)->fops->fgetxattr, -                    fd, name); +                    fd, name, xdata);          return 0;  }  int  io_stats_fremovexattr (call_frame_t *frame, xlator_t *this, -                       fd_t *fd, const char *name) +                       fd_t *fd, const char *name, dict_t *xdata)  {          START_FOP_LATENCY (frame);          STACK_WIND (frame, io_stats_fremovexattr_cbk,                      FIRST_CHILD(this),                      FIRST_CHILD(this)->fops->fremovexattr, -                    fd, name); - +                    fd, name, xdata);          return 0;  }  int  io_stats_opendir (call_frame_t *frame, xlator_t *this, -                  loc_t *loc, fd_t *fd) +                  loc_t *loc, fd_t *fd, dict_t *xdata)  {          START_FOP_LATENCY (frame); @@ -2290,7 +2279,7 @@ io_stats_opendir (call_frame_t *frame, xlator_t *this,          STACK_WIND (frame, io_stats_opendir_cbk,                      FIRST_CHILD(this),                      FIRST_CHILD(this)->fops->opendir, -                    loc, fd); +                    loc, fd, xdata);          return 0;  } @@ -2305,107 +2294,104 @@ io_stats_readdirp (call_frame_t *frame, xlator_t *this, fd_t *fd, size_t size,                      FIRST_CHILD(this),                      FIRST_CHILD(this)->fops->readdirp,                      fd, size, offset, dict); -          return 0;  }  int  io_stats_readdir (call_frame_t *frame, xlator_t *this, -                  fd_t *fd, size_t size, off_t offset) +                  fd_t *fd, size_t size, off_t offset, dict_t *xdata)  {          START_FOP_LATENCY (frame);          STACK_WIND (frame, io_stats_readdir_cbk,                      FIRST_CHILD(this),                      FIRST_CHILD(this)->fops->readdir, -                    fd, size, offset); - +                    fd, size, offset, xdata);          return 0;  }  int  io_stats_fsyncdir (call_frame_t *frame, xlator_t *this, -                   fd_t *fd, int32_t datasync) +                   fd_t *fd, int32_t datasync, dict_t *xdata)  {          START_FOP_LATENCY (frame);          STACK_WIND (frame, io_stats_fsyncdir_cbk,                      FIRST_CHILD(this),                      FIRST_CHILD(this)->fops->fsyncdir, -                    fd, datasync); +                    fd, datasync, xdata);          return 0;  }  int  io_stats_access (call_frame_t *frame, xlator_t *this, -                 loc_t *loc, int32_t mask) +                 loc_t *loc, int32_t mask, dict_t *xdata)  {          START_FOP_LATENCY (frame);          STACK_WIND (frame, io_stats_access_cbk,                      FIRST_CHILD(this),                      FIRST_CHILD(this)->fops->access, -                    loc, mask); +                    loc, mask, xdata);          return 0;  }  int  io_stats_ftruncate (call_frame_t *frame, xlator_t *this, -                    fd_t *fd, off_t offset) +                    fd_t *fd, off_t offset, dict_t *xdata)  {          START_FOP_LATENCY (frame);          STACK_WIND (frame, io_stats_ftruncate_cbk,                      FIRST_CHILD(this),                      FIRST_CHILD(this)->fops->ftruncate, -                    fd, offset); - +                    fd, offset, xdata);          return 0;  }  int  io_stats_fsetattr (call_frame_t *frame, xlator_t *this, -                   fd_t *fd, struct iatt *stbuf, int32_t valid) +                   fd_t *fd, struct iatt *stbuf, int32_t valid, dict_t *xdata)  {          START_FOP_LATENCY (frame);          STACK_WIND (frame, io_stats_setattr_cbk,                      FIRST_CHILD(this),                      FIRST_CHILD(this)->fops->fsetattr, -                    fd, stbuf, valid); +                    fd, stbuf, valid, xdata);          return 0;  }  int  io_stats_fstat (call_frame_t *frame, xlator_t *this, -                fd_t *fd) +                fd_t *fd, dict_t *xdata)  {          START_FOP_LATENCY (frame);          STACK_WIND (frame, io_stats_fstat_cbk,                      FIRST_CHILD(this),                      FIRST_CHILD(this)->fops->fstat, -                    fd); +                    fd, xdata);          return 0;  }  int  io_stats_lk (call_frame_t *frame, xlator_t *this, -             fd_t *fd, int32_t cmd, struct gf_flock *lock) +             fd_t *fd, int32_t cmd, struct gf_flock *lock, dict_t *xdata)  {          START_FOP_LATENCY (frame);          STACK_WIND (frame, io_stats_lk_cbk,                      FIRST_CHILD(this),                      FIRST_CHILD(this)->fops->lk, -                    fd, cmd, lock); +                    fd, cmd, lock, xdata);          return 0;  } diff --git a/xlators/debug/trace/src/trace.c b/xlators/debug/trace/src/trace.c index 09c58bdfdc3..aada90d3824 100644 --- a/xlators/debug/trace/src/trace.c +++ b/xlators/debug/trace/src/trace.c @@ -96,7 +96,7 @@ int  trace_create_cbk (call_frame_t *frame, void *cookie, xlator_t *this,                    int32_t op_ret, int32_t op_errno, fd_t *fd,                    inode_t *inode, struct iatt *buf, -                  struct iatt *preparent, struct iatt *postparent) +                  struct iatt *preparent, struct iatt *postparent, dict_t *xdata)  {          char  *statstr = NULL;          char  *preparentstr = NULL; @@ -133,14 +133,14 @@ trace_create_cbk (call_frame_t *frame, void *cookie, xlator_t *this,          frame->local = NULL;          STACK_UNWIND_STRICT (create, frame, op_ret, op_errno, fd, inode, buf, -                             preparent, postparent); +                             preparent, postparent, xdata);          return 0;  }  int  trace_open_cbk (call_frame_t *frame, void *cookie, xlator_t *this, -                int32_t op_ret, int32_t op_errno, fd_t *fd) +                int32_t op_ret, int32_t op_errno, fd_t *fd, dict_t *xdata)  {          if (trace_fop_names[GF_FOP_OPEN].enabled) { @@ -154,14 +154,14 @@ trace_open_cbk (call_frame_t *frame, void *cookie, xlator_t *this,                  fd_ctx_set (fd, this, 0);          frame->local = NULL; -        STACK_UNWIND_STRICT (open, frame, op_ret, op_errno, fd); +        STACK_UNWIND_STRICT (open, frame, op_ret, op_errno, fd, xdata);          return 0;  }  int  trace_stat_cbk (call_frame_t *frame, void *cookie, xlator_t *this, -                int32_t op_ret, int32_t op_errno, struct iatt *buf) +                int32_t op_ret, int32_t op_errno, struct iatt *buf, dict_t *xdata)  {          char *statstr = NULL;          if (trace_fop_names[GF_FOP_STAT].enabled) { @@ -182,7 +182,7 @@ trace_stat_cbk (call_frame_t *frame, void *cookie, xlator_t *this,          }          frame->local = NULL; -        STACK_UNWIND_STRICT (stat, frame, op_ret, op_errno, buf); +        STACK_UNWIND_STRICT (stat, frame, op_ret, op_errno, buf, xdata);          return 0;  } @@ -190,7 +190,7 @@ trace_stat_cbk (call_frame_t *frame, void *cookie, xlator_t *this,  int  trace_readv_cbk (call_frame_t *frame, void *cookie, xlator_t *this,                   int32_t op_ret, int32_t op_errno, struct iovec *vector, -                 int32_t count, struct iatt *buf, struct iobref *iobref) +                 int32_t count, struct iatt *buf, struct iobref *iobref, dict_t *xdata)  {          char  *statstr = NULL; @@ -214,7 +214,7 @@ trace_readv_cbk (call_frame_t *frame, void *cookie, xlator_t *this,          frame->local = NULL;          STACK_UNWIND_STRICT (readv, frame, op_ret, op_errno, vector, count, -                             buf, iobref); +                             buf, iobref, xdata);          return 0;  } @@ -222,7 +222,7 @@ trace_readv_cbk (call_frame_t *frame, void *cookie, xlator_t *this,  int  trace_writev_cbk (call_frame_t *frame, void *cookie, xlator_t *this,                    int32_t op_ret, int32_t op_errno, -                  struct iatt *prebuf, struct iatt *postbuf) +                  struct iatt *prebuf, struct iatt *postbuf, dict_t *xdata)  {          char  *preopstr = NULL;          char  *postopstr = NULL; @@ -252,7 +252,7 @@ trace_writev_cbk (call_frame_t *frame, void *cookie, xlator_t *this,          }          frame->local = NULL; -        STACK_UNWIND_STRICT (writev, frame, op_ret, op_errno, prebuf, postbuf); +        STACK_UNWIND_STRICT (writev, frame, op_ret, op_errno, prebuf, postbuf, xdata);          return 0;  } @@ -260,7 +260,7 @@ trace_writev_cbk (call_frame_t *frame, void *cookie, xlator_t *this,  int  trace_readdir_cbk (call_frame_t *frame, void *cookie, xlator_t *this, -                   int32_t op_ret, int32_t op_errno, gf_dirent_t *buf) +                   int32_t op_ret, int32_t op_errno, gf_dirent_t *buf, dict_t *xdata)  {          if (trace_fop_names[GF_FOP_READDIR].enabled) {                  gf_log (this->name, GF_LOG_INFO, @@ -269,7 +269,7 @@ trace_readdir_cbk (call_frame_t *frame, void *cookie, xlator_t *this,          }          frame->local = NULL; -        STACK_UNWIND_STRICT (readdir, frame, op_ret, op_errno, buf); +        STACK_UNWIND_STRICT (readdir, frame, op_ret, op_errno, buf, xdata);          return 0;  } @@ -277,7 +277,7 @@ trace_readdir_cbk (call_frame_t *frame, void *cookie, xlator_t *this,  int  trace_readdirp_cbk (call_frame_t *frame, void *cookie, xlator_t *this, -                    int32_t op_ret, int32_t op_errno, gf_dirent_t *buf) +                    int32_t op_ret, int32_t op_errno, gf_dirent_t *buf, dict_t *xdata)  {          if (trace_fop_names[GF_FOP_READDIRP].enabled) {                  gf_log (this->name, GF_LOG_INFO, @@ -286,7 +286,7 @@ trace_readdirp_cbk (call_frame_t *frame, void *cookie, xlator_t *this,          }          frame->local = NULL; -        STACK_UNWIND_STRICT (readdirp, frame, op_ret, op_errno, buf); +        STACK_UNWIND_STRICT (readdirp, frame, op_ret, op_errno, buf, xdata);          return 0;  } @@ -295,7 +295,7 @@ trace_readdirp_cbk (call_frame_t *frame, void *cookie, xlator_t *this,  int  trace_fsync_cbk (call_frame_t *frame, void *cookie, xlator_t *this,                   int32_t op_ret, int32_t op_errno, -                 struct iatt *prebuf, struct iatt *postbuf) +                 struct iatt *prebuf, struct iatt *postbuf, dict_t *xdata)  {          char  *preopstr = NULL;          char  *postopstr = NULL; @@ -325,7 +325,7 @@ trace_fsync_cbk (call_frame_t *frame, void *cookie, xlator_t *this,          }          frame->local = NULL; -        STACK_UNWIND_STRICT (fsync, frame, op_ret, op_errno, prebuf, postbuf); +        STACK_UNWIND_STRICT (fsync, frame, op_ret, op_errno, prebuf, postbuf, xdata);          return 0;  } @@ -334,7 +334,7 @@ trace_fsync_cbk (call_frame_t *frame, void *cookie, xlator_t *this,  int  trace_setattr_cbk (call_frame_t *frame, void *cookie, xlator_t *this,                     int32_t op_ret, int32_t op_errno, -                   struct iatt *statpre, struct iatt *statpost) +                   struct iatt *statpre, struct iatt *statpost, dict_t *xdata)  {          char  *preopstr = NULL;          char  *postopstr = NULL; @@ -363,7 +363,7 @@ trace_setattr_cbk (call_frame_t *frame, void *cookie, xlator_t *this,          }          frame->local = NULL; -        STACK_UNWIND_STRICT (setattr, frame, op_ret, op_errno, statpre, statpost); +        STACK_UNWIND_STRICT (setattr, frame, op_ret, op_errno, statpre, statpost, xdata);          return 0;  } @@ -371,7 +371,7 @@ trace_setattr_cbk (call_frame_t *frame, void *cookie, xlator_t *this,  int  trace_fsetattr_cbk (call_frame_t *frame, void *cookie, xlator_t *this,                      int32_t op_ret, int32_t op_errno, -                    struct iatt *statpre, struct iatt *statpost) +                    struct iatt *statpre, struct iatt *statpost, dict_t *xdata)  {          char  *preopstr = NULL;          char  *postopstr = NULL; @@ -401,7 +401,7 @@ trace_fsetattr_cbk (call_frame_t *frame, void *cookie, xlator_t *this,          frame->local = NULL;          STACK_UNWIND_STRICT (fsetattr, frame, op_ret, op_errno, -                             statpre, statpost); +                             statpre, statpost, xdata);          return 0;  } @@ -409,7 +409,7 @@ trace_fsetattr_cbk (call_frame_t *frame, void *cookie, xlator_t *this,  int  trace_unlink_cbk (call_frame_t *frame, void *cookie, xlator_t *this,                    int32_t op_ret, int32_t op_errno, -                  struct iatt *preparent, struct iatt *postparent) +                  struct iatt *preparent, struct iatt *postparent, dict_t *xdata)  {          char *preparentstr = NULL;          char *postparentstr = NULL; @@ -439,7 +439,7 @@ trace_unlink_cbk (call_frame_t *frame, void *cookie, xlator_t *this,          frame->local = NULL;          STACK_UNWIND_STRICT (unlink, frame, op_ret, op_errno, -                             preparent, postparent); +                             preparent, postparent, xdata);          return 0;  } @@ -448,7 +448,7 @@ int  trace_rename_cbk (call_frame_t *frame, void *cookie, xlator_t *this,                    int32_t op_ret, int32_t op_errno, struct iatt *buf,                    struct iatt *preoldparent, struct iatt *postoldparent, -                  struct iatt *prenewparent, struct iatt *postnewparent) +                  struct iatt *prenewparent, struct iatt *postnewparent, dict_t *xdata)  {          char  *statstr = NULL;          char  *preoldparentstr = NULL; @@ -495,7 +495,7 @@ trace_rename_cbk (call_frame_t *frame, void *cookie, xlator_t *this,          frame->local = NULL;          STACK_UNWIND_STRICT (rename, frame, op_ret, op_errno, buf,                               preoldparent, postoldparent, -                             prenewparent, postnewparent); +                             prenewparent, postnewparent, xdata);          return 0;  } @@ -503,7 +503,7 @@ trace_rename_cbk (call_frame_t *frame, void *cookie, xlator_t *this,  int  trace_readlink_cbk (call_frame_t *frame, void *cookie, xlator_t *this,                      int32_t op_ret, int32_t op_errno, -                    const char *buf, struct iatt *stbuf) +                    const char *buf, struct iatt *stbuf, dict_t *xdata)  {          char *statstr = NULL; @@ -527,7 +527,7 @@ trace_readlink_cbk (call_frame_t *frame, void *cookie, xlator_t *this,          }          frame->local = NULL; -        STACK_UNWIND_STRICT (readlink, frame, op_ret, op_errno, buf, stbuf); +        STACK_UNWIND_STRICT (readlink, frame, op_ret, op_errno, buf, stbuf, xdata);          return 0;  } @@ -536,7 +536,7 @@ int  trace_lookup_cbk (call_frame_t *frame, void *cookie, xlator_t *this,                    int32_t op_ret, int32_t op_errno,                    inode_t *inode, struct iatt *buf, -                  dict_t *xattr, struct iatt *postparent) +                  dict_t *xdata, struct iatt *postparent)  {          char  *statstr = NULL;          char  *postparentstr = NULL; @@ -569,7 +569,7 @@ trace_lookup_cbk (call_frame_t *frame, void *cookie, xlator_t *this,          frame->local = NULL;          STACK_UNWIND_STRICT (lookup, frame, op_ret, op_errno, inode, buf, -                             xattr, postparent); +                             xdata, postparent);          return 0;  } @@ -578,7 +578,7 @@ int  trace_symlink_cbk (call_frame_t *frame, void *cookie, xlator_t *this,                     int32_t op_ret, int32_t op_errno,                     inode_t *inode, struct iatt *buf, -                   struct iatt *preparent, struct iatt *postparent) +                   struct iatt *preparent, struct iatt *postparent, dict_t *xdata)  {          char  *statstr = NULL;          char  *preparentstr = NULL; @@ -615,7 +615,7 @@ trace_symlink_cbk (call_frame_t *frame, void *cookie, xlator_t *this,          frame->local = NULL;          STACK_UNWIND_STRICT (symlink, frame, op_ret, op_errno, inode, buf, -                             preparent, postparent); +                             preparent, postparent, xdata);          return 0;  } @@ -624,7 +624,7 @@ int  trace_mknod_cbk (call_frame_t *frame, void *cookie, xlator_t *this,                   int32_t op_ret, int32_t op_errno,                   inode_t *inode, struct iatt *buf, -                 struct iatt *preparent, struct iatt *postparent) +                 struct iatt *preparent, struct iatt *postparent, dict_t *xdata)  {          char *statstr = NULL;          char *preparentstr = NULL; @@ -660,7 +660,7 @@ trace_mknod_cbk (call_frame_t *frame, void *cookie, xlator_t *this,          frame->local = NULL;          STACK_UNWIND_STRICT (mknod, frame, op_ret, op_errno, inode, buf, -                             preparent, postparent); +                             preparent, postparent, xdata);          return 0;  } @@ -669,7 +669,7 @@ int  trace_mkdir_cbk (call_frame_t *frame, void *cookie, xlator_t *this,                   int32_t op_ret, int32_t op_errno,                   inode_t *inode, struct iatt *buf, -                 struct iatt *preparent, struct iatt *postparent) +                 struct iatt *preparent, struct iatt *postparent, dict_t *xdata)  {          char  *statstr = NULL;          char  *preparentstr = NULL; @@ -705,7 +705,7 @@ trace_mkdir_cbk (call_frame_t *frame, void *cookie, xlator_t *this,          frame->local = NULL;          STACK_UNWIND_STRICT (mkdir, frame, op_ret, op_errno, inode, buf, -                             preparent, postparent); +                             preparent, postparent, xdata);          return 0;  } @@ -714,7 +714,7 @@ int  trace_link_cbk (call_frame_t *frame, void *cookie, xlator_t *this,                  int32_t op_ret, int32_t op_errno,                  inode_t *inode, struct iatt *buf, -                struct iatt *preparent, struct iatt *postparent) +                struct iatt *preparent, struct iatt *postparent, dict_t *xdata)  {          char  *statstr = NULL;          char  *preparentstr = NULL; @@ -750,14 +750,14 @@ trace_link_cbk (call_frame_t *frame, void *cookie, xlator_t *this,          frame->local = NULL;          STACK_UNWIND_STRICT (link, frame, op_ret, op_errno, inode, buf, -                             preparent, postparent); +                             preparent, postparent, xdata);          return 0;  }  int  trace_flush_cbk (call_frame_t *frame, void *cookie, xlator_t *this, -                 int32_t op_ret, int32_t op_errno) +                 int32_t op_ret, int32_t op_errno, dict_t *xdata)  {          if (trace_fop_names[GF_FOP_FLUSH].enabled) {                  gf_log (this->name, GF_LOG_INFO, @@ -767,14 +767,14 @@ trace_flush_cbk (call_frame_t *frame, void *cookie, xlator_t *this,          }          frame->local = NULL; -        STACK_UNWIND_STRICT (flush, frame, op_ret, op_errno); +        STACK_UNWIND_STRICT (flush, frame, op_ret, op_errno, xdata);          return 0;  }  int  trace_opendir_cbk (call_frame_t *frame, void *cookie, xlator_t *this, -                   int32_t op_ret, int32_t op_errno, fd_t *fd) +                   int32_t op_ret, int32_t op_errno, fd_t *fd, dict_t *xdata)  {          if (trace_fop_names[GF_FOP_OPENDIR].enabled) {                  gf_log (this->name, GF_LOG_INFO, @@ -788,7 +788,7 @@ trace_opendir_cbk (call_frame_t *frame, void *cookie, xlator_t *this,                  fd_ctx_set (fd, this, 0);          frame->local = NULL; -        STACK_UNWIND_STRICT (opendir, frame, op_ret, op_errno, fd); +        STACK_UNWIND_STRICT (opendir, frame, op_ret, op_errno, fd, xdata);          return 0;  } @@ -796,7 +796,7 @@ trace_opendir_cbk (call_frame_t *frame, void *cookie, xlator_t *this,  int  trace_rmdir_cbk (call_frame_t *frame, void *cookie, xlator_t *this,                   int32_t op_ret, int32_t op_errno, -                 struct iatt *preparent, struct iatt *postparent) +                 struct iatt *preparent, struct iatt *postparent, dict_t *xdata)  {          char  *preparentstr = NULL;          char  *postparentstr = NULL; @@ -827,7 +827,7 @@ trace_rmdir_cbk (call_frame_t *frame, void *cookie, xlator_t *this,          frame->local = NULL;          STACK_UNWIND_STRICT (rmdir, frame, op_ret, op_errno, -                             preparent, postparent); +                             preparent, postparent, xdata);          return 0;  } @@ -835,7 +835,7 @@ trace_rmdir_cbk (call_frame_t *frame, void *cookie, xlator_t *this,  int  trace_truncate_cbk (call_frame_t *frame, void *cookie, xlator_t *this,                      int32_t op_ret, int32_t op_errno, -                    struct iatt *prebuf, struct iatt *postbuf) +                    struct iatt *prebuf, struct iatt *postbuf, dict_t *xdata)  {          char  *preopstr = NULL;          char  *postopstr = NULL; @@ -865,14 +865,14 @@ trace_truncate_cbk (call_frame_t *frame, void *cookie, xlator_t *this,          }          frame->local = NULL; -        STACK_UNWIND_STRICT (truncate, frame, op_ret, op_errno, prebuf, postbuf); +        STACK_UNWIND_STRICT (truncate, frame, op_ret, op_errno, prebuf, postbuf, xdata);          return 0;  }  int  trace_statfs_cbk (call_frame_t *frame, void *cookie, xlator_t *this, -                  int32_t op_ret, int32_t op_errno, struct statvfs *buf) +                  int32_t op_ret, int32_t op_errno, struct statvfs *buf, dict_t *xdata)  {          if (trace_fop_names[GF_FOP_STATFS].enabled) {                  if (op_ret >= 0) { @@ -892,14 +892,14 @@ trace_statfs_cbk (call_frame_t *frame, void *cookie, xlator_t *this,          }          frame->local = NULL; -        STACK_UNWIND_STRICT (statfs, frame, op_ret, op_errno, buf); +        STACK_UNWIND_STRICT (statfs, frame, op_ret, op_errno, buf, xdata);          return 0;  }  int  trace_setxattr_cbk (call_frame_t *frame, void *cookie, xlator_t *this, -                    int32_t op_ret, int32_t op_errno) +                    int32_t op_ret, int32_t op_errno, dict_t *xdata)  {          if (trace_fop_names[GF_FOP_SETXATTR].enabled) {                  gf_log (this->name, GF_LOG_INFO, @@ -909,14 +909,14 @@ trace_setxattr_cbk (call_frame_t *frame, void *cookie, xlator_t *this,          }          frame->local = NULL; -        STACK_UNWIND_STRICT (setxattr, frame, op_ret, op_errno); +        STACK_UNWIND_STRICT (setxattr, frame, op_ret, op_errno, xdata);          return 0;  }  int  trace_getxattr_cbk (call_frame_t *frame, void *cookie, xlator_t *this, -                    int32_t op_ret, int32_t op_errno, dict_t *dict) +                    int32_t op_ret, int32_t op_errno, dict_t *dict, dict_t *xdata)  {          if (trace_fop_names[GF_FOP_GETXATTR].enabled) {                  gf_log (this->name, GF_LOG_INFO, @@ -926,14 +926,14 @@ trace_getxattr_cbk (call_frame_t *frame, void *cookie, xlator_t *this,          }          frame->local = NULL; -        STACK_UNWIND_STRICT (getxattr, frame, op_ret, op_errno, dict); +        STACK_UNWIND_STRICT (getxattr, frame, op_ret, op_errno, dict, xdata);          return 0;  }  int  trace_fsetxattr_cbk (call_frame_t *frame, void *cookie, xlator_t *this, -                     int32_t op_ret, int32_t op_errno) +                     int32_t op_ret, int32_t op_errno, dict_t *xdata)  {          if (trace_fop_names[GF_FOP_FSETXATTR].enabled) {                  gf_log (this->name, GF_LOG_INFO, @@ -943,14 +943,14 @@ trace_fsetxattr_cbk (call_frame_t *frame, void *cookie, xlator_t *this,          }          frame->local = NULL; -        STACK_UNWIND_STRICT (fsetxattr, frame, op_ret, op_errno); +        STACK_UNWIND_STRICT (fsetxattr, frame, op_ret, op_errno, xdata);          return 0;  }  int  trace_fgetxattr_cbk (call_frame_t *frame, void *cookie, xlator_t *this, -                     int32_t op_ret, int32_t op_errno, dict_t *dict) +                     int32_t op_ret, int32_t op_errno, dict_t *dict, dict_t *xdata)  {          if (trace_fop_names[GF_FOP_FGETXATTR].enabled) {                  gf_log (this->name, GF_LOG_INFO, @@ -960,14 +960,14 @@ trace_fgetxattr_cbk (call_frame_t *frame, void *cookie, xlator_t *this,          }          frame->local = NULL; -        STACK_UNWIND_STRICT (fgetxattr, frame, op_ret, op_errno, dict); +        STACK_UNWIND_STRICT (fgetxattr, frame, op_ret, op_errno, dict, xdata);          return 0;  }  int  trace_removexattr_cbk (call_frame_t *frame, void *cookie, xlator_t *this, -                       int32_t op_ret, int32_t op_errno) +                       int32_t op_ret, int32_t op_errno, dict_t *xdata)  {          if (trace_fop_names[GF_FOP_REMOVEXATTR].enabled) {                  gf_log (this->name, GF_LOG_INFO, @@ -977,7 +977,7 @@ trace_removexattr_cbk (call_frame_t *frame, void *cookie, xlator_t *this,          }          frame->local = NULL; -        STACK_UNWIND_STRICT (removexattr, frame, op_ret, op_errno); +        STACK_UNWIND_STRICT (removexattr, frame, op_ret, op_errno, xdata);          return 0;  } @@ -985,7 +985,7 @@ trace_removexattr_cbk (call_frame_t *frame, void *cookie, xlator_t *this,  int  trace_fsyncdir_cbk (call_frame_t *frame, void *cookie, xlator_t *this, -                    int32_t op_ret, int32_t op_errno) +                    int32_t op_ret, int32_t op_errno, dict_t *xdata)  {          if (trace_fop_names[GF_FOP_FSYNCDIR].enabled) {                  gf_log (this->name, GF_LOG_INFO, @@ -995,14 +995,14 @@ trace_fsyncdir_cbk (call_frame_t *frame, void *cookie, xlator_t *this,          }          frame->local = NULL; -        STACK_UNWIND_STRICT (fsyncdir, frame, op_ret, op_errno); +        STACK_UNWIND_STRICT (fsyncdir, frame, op_ret, op_errno, xdata);          return 0;  }  int  trace_access_cbk (call_frame_t *frame, void *cookie, xlator_t *this, -                  int32_t op_ret, int32_t op_errno) +                  int32_t op_ret, int32_t op_errno, dict_t *xdata)  {          if (trace_fop_names[GF_FOP_ACCESS].enabled) {                  gf_log (this->name, GF_LOG_INFO, @@ -1012,7 +1012,7 @@ trace_access_cbk (call_frame_t *frame, void *cookie, xlator_t *this,          }          frame->local = NULL; -        STACK_UNWIND_STRICT (access, frame, op_ret, op_errno); +        STACK_UNWIND_STRICT (access, frame, op_ret, op_errno, xdata);          return 0;  } @@ -1020,7 +1020,7 @@ trace_access_cbk (call_frame_t *frame, void *cookie, xlator_t *this,  int  trace_ftruncate_cbk (call_frame_t *frame, void *cookie, xlator_t *this,                       int32_t op_ret, int32_t op_errno, -                     struct iatt *prebuf, struct iatt *postbuf) +                     struct iatt *prebuf, struct iatt *postbuf, dict_t *xdata)  {          char  *prebufstr = NULL;          char  *postbufstr = NULL; @@ -1051,14 +1051,14 @@ trace_ftruncate_cbk (call_frame_t *frame, void *cookie, xlator_t *this,          }          frame->local = NULL; -        STACK_UNWIND_STRICT (ftruncate, frame, op_ret, op_errno, prebuf, postbuf); +        STACK_UNWIND_STRICT (ftruncate, frame, op_ret, op_errno, prebuf, postbuf, xdata);          return 0;  }  int  trace_fstat_cbk (call_frame_t *frame, void *cookie, xlator_t *this, -                 int32_t op_ret, int32_t op_errno, struct iatt *buf) +                 int32_t op_ret, int32_t op_errno, struct iatt *buf, dict_t *xdata)  {          char *statstr = NULL; @@ -1081,14 +1081,14 @@ trace_fstat_cbk (call_frame_t *frame, void *cookie, xlator_t *this,          }          frame->local = NULL; -        STACK_UNWIND_STRICT (fstat, frame, op_ret, op_errno, buf); +        STACK_UNWIND_STRICT (fstat, frame, op_ret, op_errno, buf, xdata);          return 0;  }  int  trace_lk_cbk (call_frame_t *frame, void *cookie, xlator_t *this, -              int32_t op_ret, int32_t op_errno, struct gf_flock *lock) +              int32_t op_ret, int32_t op_errno, struct gf_flock *lock, dict_t *xdata)  {          if (trace_fop_names[GF_FOP_LK].enabled) {                  if (op_ret >= 0) { @@ -1107,7 +1107,7 @@ trace_lk_cbk (call_frame_t *frame, void *cookie, xlator_t *this,          }          frame->local = NULL; -        STACK_UNWIND_STRICT (lk, frame, op_ret, op_errno, lock); +        STACK_UNWIND_STRICT (lk, frame, op_ret, op_errno, lock, xdata);          return 0;  } @@ -1115,7 +1115,7 @@ trace_lk_cbk (call_frame_t *frame, void *cookie, xlator_t *this,  int  trace_entrylk_cbk (call_frame_t *frame, void *cookie, xlator_t *this, -                   int32_t op_ret, int32_t op_errno) +                   int32_t op_ret, int32_t op_errno, dict_t *xdata)  {          if (trace_fop_names[GF_FOP_ENTRYLK].enabled) {                  gf_log (this->name, GF_LOG_INFO, @@ -1125,13 +1125,13 @@ trace_entrylk_cbk (call_frame_t *frame, void *cookie, xlator_t *this,          }          frame->local = NULL; -        STACK_UNWIND_STRICT (entrylk, frame, op_ret, op_errno); +        STACK_UNWIND_STRICT (entrylk, frame, op_ret, op_errno, xdata);          return 0;  }  int  trace_fentrylk_cbk (call_frame_t *frame, void *cookie, xlator_t *this, -                    int32_t op_ret, int32_t op_errno) +                    int32_t op_ret, int32_t op_errno, dict_t *xdata)  {          if (trace_fop_names[GF_FOP_FENTRYLK].enabled) {                  gf_log (this->name, GF_LOG_INFO, @@ -1141,14 +1141,14 @@ trace_fentrylk_cbk (call_frame_t *frame, void *cookie, xlator_t *this,          }          frame->local = NULL; -        STACK_UNWIND_STRICT (fentrylk, frame, op_ret, op_errno); +        STACK_UNWIND_STRICT (fentrylk, frame, op_ret, op_errno, xdata);          return 0;  }  int  trace_xattrop_cbk (call_frame_t *frame, void *cookie, xlator_t *this, -                   int32_t op_ret, int32_t op_errno, dict_t *dict) +                   int32_t op_ret, int32_t op_errno, dict_t *dict, dict_t *xdata)  {          if (trace_fop_names[GF_FOP_XATTROP].enabled) {                  gf_log (this->name, GF_LOG_INFO, @@ -1158,14 +1158,14 @@ trace_xattrop_cbk (call_frame_t *frame, void *cookie, xlator_t *this,          }          frame->local = NULL; -        STACK_UNWIND_STRICT (xattrop, frame, op_ret, op_errno, dict); +        STACK_UNWIND_STRICT (xattrop, frame, op_ret, op_errno, dict, xdata);          return 0;  }  int  trace_fxattrop_cbk (call_frame_t *frame, void *cookie, xlator_t *this, -                    int32_t op_ret, int32_t op_errno, dict_t *dict) +                    int32_t op_ret, int32_t op_errno, dict_t *dict, dict_t *xdata)  {          if (trace_fop_names[GF_FOP_FXATTROP].enabled) {                  gf_log (this->name, GF_LOG_INFO, @@ -1175,14 +1175,14 @@ trace_fxattrop_cbk (call_frame_t *frame, void *cookie, xlator_t *this,          }          frame->local = NULL; -        STACK_UNWIND_STRICT (fxattrop, frame, op_ret, op_errno, dict); +        STACK_UNWIND_STRICT (fxattrop, frame, op_ret, op_errno, dict, xdata);          return 0;  }  int  trace_inodelk_cbk (call_frame_t *frame, void *cookie, xlator_t *this, -                   int32_t op_ret, int32_t op_errno) +                   int32_t op_ret, int32_t op_errno, dict_t *xdata)  {          if (trace_fop_names[GF_FOP_INODELK].enabled) {                  gf_log (this->name, GF_LOG_INFO, @@ -1192,13 +1192,13 @@ trace_inodelk_cbk (call_frame_t *frame, void *cookie, xlator_t *this,          }          frame->local = NULL; -        STACK_UNWIND_STRICT (inodelk, frame, op_ret, op_errno); +        STACK_UNWIND_STRICT (inodelk, frame, op_ret, op_errno, xdata);          return 0;  }  int  trace_finodelk_cbk (call_frame_t *frame, void *cookie, xlator_t *this, -                    int32_t op_ret, int32_t op_errno) +                    int32_t op_ret, int32_t op_errno, dict_t *xdata)  {          if (trace_fop_names[GF_FOP_FINODELK].enabled) {                  gf_log (this->name, GF_LOG_INFO, @@ -1207,7 +1207,7 @@ trace_finodelk_cbk (call_frame_t *frame, void *cookie, xlator_t *this,          }          frame->local = NULL; -        STACK_UNWIND_STRICT (finodelk, frame, op_ret, op_errno); +        STACK_UNWIND_STRICT (finodelk, frame, op_ret, op_errno, xdata);          return 0;  } @@ -1215,7 +1215,7 @@ trace_finodelk_cbk (call_frame_t *frame, void *cookie, xlator_t *this,  int  trace_rchecksum_cbk (call_frame_t *frame, void *cookie, xlator_t *this,                       int32_t op_ret, int32_t op_errno, -                     uint32_t weak_checksum, uint8_t *strong_checksum) +                     uint32_t weak_checksum, uint8_t *strong_checksum, dict_t *xdata)  {          if (trace_fop_names[GF_FOP_RCHECKSUM].enabled) {                  gf_log (this->name, GF_LOG_INFO, @@ -1225,7 +1225,7 @@ trace_rchecksum_cbk (call_frame_t *frame, void *cookie, xlator_t *this,          frame->local = NULL;          STACK_UNWIND_STRICT (rchecksum, frame, op_ret, op_errno, weak_checksum, -                             strong_checksum); +                             strong_checksum, xdata);          return 0;  } @@ -1235,7 +1235,7 @@ trace_rchecksum_cbk (call_frame_t *frame, void *cookie, xlator_t *this,  int  trace_entrylk (call_frame_t *frame, xlator_t *this,                 const char *volume, loc_t *loc, const char *basename, -               entrylk_cmd cmd, entrylk_type type) +               entrylk_cmd cmd, entrylk_type type, dict_t *xdata)  {          if (trace_fop_names[GF_FOP_ENTRYLK].enabled) {                  gf_log (this->name, GF_LOG_INFO, @@ -1251,14 +1251,14 @@ trace_entrylk (call_frame_t *frame, xlator_t *this,          STACK_WIND (frame, trace_entrylk_cbk,                      FIRST_CHILD (this),                      FIRST_CHILD (this)->fops->entrylk, -                    volume, loc, basename, cmd, type); +                    volume, loc, basename, cmd, type, xdata);          return 0;  }  int  trace_inodelk (call_frame_t *frame, xlator_t *this, const char *volume, -               loc_t *loc, int32_t cmd, struct gf_flock *flock) +               loc_t *loc, int32_t cmd, struct gf_flock *flock, dict_t *xdata)  {          char *cmd_str = NULL;          char *type_str = NULL; @@ -1320,14 +1320,14 @@ trace_inodelk (call_frame_t *frame, xlator_t *this, const char *volume,          STACK_WIND (frame, trace_inodelk_cbk,                      FIRST_CHILD (this),                      FIRST_CHILD (this)->fops->inodelk, -                    volume, loc, cmd, flock); +                    volume, loc, cmd, flock, xdata);          return 0;  }  int  trace_finodelk (call_frame_t *frame, xlator_t *this, const char *volume, -                fd_t *fd, int32_t cmd, struct gf_flock *flock) +                fd_t *fd, int32_t cmd, struct gf_flock *flock, dict_t *xdata)  {          char *cmd_str = NULL, *type_str = NULL; @@ -1387,14 +1387,14 @@ trace_finodelk (call_frame_t *frame, xlator_t *this, const char *volume,          STACK_WIND (frame, trace_finodelk_cbk,                      FIRST_CHILD (this),                      FIRST_CHILD (this)->fops->finodelk, -                    volume, fd, cmd, flock); +                    volume, fd, cmd, flock, xdata);          return 0;  }  int  trace_xattrop (call_frame_t *frame, xlator_t *this, loc_t *loc, -               gf_xattrop_flags_t flags, dict_t *dict) +               gf_xattrop_flags_t flags, dict_t *dict, dict_t *xdata)  {          if (trace_fop_names[GF_FOP_XATTROP].enabled) {                  gf_log (this->name, GF_LOG_INFO, @@ -1407,7 +1407,7 @@ trace_xattrop (call_frame_t *frame, xlator_t *this, loc_t *loc,          STACK_WIND (frame, trace_xattrop_cbk,                      FIRST_CHILD(this),                      FIRST_CHILD(this)->fops->xattrop, -                    loc, flags, dict); +                    loc, flags, dict, xdata);          return 0;  } @@ -1415,7 +1415,7 @@ trace_xattrop (call_frame_t *frame, xlator_t *this, loc_t *loc,  int  trace_fxattrop (call_frame_t *frame, xlator_t *this, fd_t *fd, -                gf_xattrop_flags_t flags, dict_t *dict) +                gf_xattrop_flags_t flags, dict_t *dict, dict_t *xdata)  {          if (trace_fop_names[GF_FOP_FXATTROP].enabled) {                  gf_log (this->name, GF_LOG_INFO, @@ -1428,7 +1428,7 @@ trace_fxattrop (call_frame_t *frame, xlator_t *this, fd_t *fd,          STACK_WIND (frame, trace_fxattrop_cbk,                      FIRST_CHILD(this),                      FIRST_CHILD(this)->fops->fxattrop, -                    fd, flags, dict); +                    fd, flags, dict, xdata);          return 0;  } @@ -1436,7 +1436,7 @@ trace_fxattrop (call_frame_t *frame, xlator_t *this, fd_t *fd,  int  trace_lookup (call_frame_t *frame, xlator_t *this, -              loc_t *loc, dict_t *xattr_req) +              loc_t *loc, dict_t *xdata)  {          if (trace_fop_names[GF_FOP_LOOKUP].enabled) {                  /* TODO: print all the keys mentioned in xattr_req */ @@ -1450,14 +1450,14 @@ trace_lookup (call_frame_t *frame, xlator_t *this,          STACK_WIND (frame, trace_lookup_cbk,                      FIRST_CHILD(this),                      FIRST_CHILD(this)->fops->lookup, -                    loc, xattr_req); +                    loc, xdata);          return 0;  }  int -trace_stat (call_frame_t *frame, xlator_t *this, loc_t *loc) +trace_stat (call_frame_t *frame, xlator_t *this, loc_t *loc, dict_t *xdata)  {          if (trace_fop_names[GF_FOP_STAT].enabled) {                  gf_log (this->name, GF_LOG_INFO, @@ -1470,14 +1470,14 @@ trace_stat (call_frame_t *frame, xlator_t *this, loc_t *loc)          STACK_WIND (frame, trace_stat_cbk,                      FIRST_CHILD(this),                      FIRST_CHILD(this)->fops->stat, -                    loc); +                    loc, xdata);          return 0;  }  int -trace_readlink (call_frame_t *frame, xlator_t *this, loc_t *loc, size_t size) +trace_readlink (call_frame_t *frame, xlator_t *this, loc_t *loc, size_t size, dict_t *xdata)  {          if (trace_fop_names[GF_FOP_READLINK].enabled) {                  gf_log (this->name, GF_LOG_INFO, @@ -1490,7 +1490,7 @@ trace_readlink (call_frame_t *frame, xlator_t *this, loc_t *loc, size_t size)          STACK_WIND (frame, trace_readlink_cbk,                      FIRST_CHILD(this),                      FIRST_CHILD(this)->fops->readlink, -                    loc, size); +                    loc, size, xdata);          return 0;  } @@ -1498,19 +1498,20 @@ trace_readlink (call_frame_t *frame, xlator_t *this, loc_t *loc, size_t size)  int  trace_mknod (call_frame_t *frame, xlator_t *this, loc_t *loc, -             mode_t mode, dev_t dev, dict_t *params) +             mode_t mode, dev_t dev, mode_t umask, dict_t *xdata)  {          if (trace_fop_names[GF_FOP_MKNOD].enabled) {                  gf_log (this->name, GF_LOG_INFO, -                        "%"PRId64": gfid=%s path=%s mode=%d dev=%"GF_PRI_DEV")", +                        "%"PRId64": gfid=%s path=%s mode=0%o umask=0%o " +                        "dev=%"GF_PRI_DEV")",                          frame->root->unique, uuid_utoa (loc->inode->gfid), -                        loc->path, mode, dev); +                        loc->path, mode, umask, dev);          }          STACK_WIND (frame, trace_mknod_cbk,                      FIRST_CHILD(this),                      FIRST_CHILD(this)->fops->mknod, -                    loc, mode, dev, params); +                    loc, mode, dev, umask, xdata);          return 0;  } @@ -1518,44 +1519,46 @@ trace_mknod (call_frame_t *frame, xlator_t *this, loc_t *loc,  int  trace_mkdir (call_frame_t *frame, xlator_t *this, loc_t *loc, mode_t mode, -             dict_t *params) +             mode_t umask, dict_t *xdata)  {          if (trace_fop_names[GF_FOP_MKDIR].enabled) {                  gf_log (this->name, GF_LOG_INFO, -                        "%"PRId64": gfid=%s path=%s mode=%d", +                        "%"PRId64": gfid=%s path=%s mode=0%o umask=0%o",                          frame->root->unique, uuid_utoa (loc->inode->gfid), -                        loc->path, mode); +                        loc->path, mode, umask);          }          STACK_WIND (frame, trace_mkdir_cbk,                      FIRST_CHILD(this),                      FIRST_CHILD(this)->fops->mkdir, -                    loc, mode, params); +                    loc, mode, umask, xdata);          return 0;  }  int -trace_unlink (call_frame_t *frame, xlator_t *this, loc_t *loc) +trace_unlink (call_frame_t *frame, xlator_t *this, loc_t *loc, int xflag, +              dict_t *xdata)  {          if (trace_fop_names[GF_FOP_UNLINK].enabled) {                  gf_log (this->name, GF_LOG_INFO, -                        "%"PRId64": gfid=%s path=%s", +                        "%"PRId64": gfid=%s path=%s flag=%d",                          frame->root->unique, uuid_utoa (loc->inode->gfid), -                        loc->path); +                        loc->path, xflag);                  frame->local = loc->inode->gfid;          }          STACK_WIND (frame, trace_unlink_cbk,                      FIRST_CHILD(this),                      FIRST_CHILD(this)->fops->unlink, -                    loc); +                    loc, xflag, xdata);          return 0;  }  int -trace_rmdir (call_frame_t *frame, xlator_t *this, loc_t *loc, int flags) +trace_rmdir (call_frame_t *frame, xlator_t *this, loc_t *loc, int flags, +             dict_t *xdata)  {          if (trace_fop_names[GF_FOP_RMDIR].enabled) {                  gf_log (this->name, GF_LOG_INFO, @@ -1568,7 +1571,7 @@ trace_rmdir (call_frame_t *frame, xlator_t *this, loc_t *loc, int flags)          STACK_WIND (frame, trace_rmdir_cbk,                      FIRST_CHILD(this),                      FIRST_CHILD(this)->fops->rmdir, -                    loc, flags); +                    loc, flags, xdata);          return 0;  } @@ -1576,26 +1579,27 @@ trace_rmdir (call_frame_t *frame, xlator_t *this, loc_t *loc, int flags)  int  trace_symlink (call_frame_t *frame, xlator_t *this, const char *linkpath, -               loc_t *loc, dict_t *params) +               loc_t *loc, mode_t umask, dict_t *xdata)  {          if (trace_fop_names[GF_FOP_SYMLINK].enabled) {                  gf_log (this->name, GF_LOG_INFO, -                        "%"PRId64": gfid=%s linkpath=%s, path=%s", +                        "%"PRId64": gfid=%s linkpath=%s, path=%s umask=0%o",                          frame->root->unique, uuid_utoa (loc->inode->gfid), -                        linkpath, loc->path); +                        linkpath, loc->path, umask);          }          STACK_WIND (frame, trace_symlink_cbk,                      FIRST_CHILD(this),                      FIRST_CHILD(this)->fops->symlink, -                    linkpath, loc, params); +                    linkpath, loc, umask, xdata);          return 0;  }  int -trace_rename (call_frame_t *frame, xlator_t *this, loc_t *oldloc, loc_t *newloc) +trace_rename (call_frame_t *frame, xlator_t *this, loc_t *oldloc, loc_t *newloc, +              dict_t *xdata)  {          char oldgfid[50] = {0,};          char newgfid[50] = {0,}; @@ -1618,14 +1622,15 @@ trace_rename (call_frame_t *frame, xlator_t *this, loc_t *oldloc, loc_t *newloc)          STACK_WIND (frame, trace_rename_cbk,                      FIRST_CHILD(this),                      FIRST_CHILD(this)->fops->rename, -                    oldloc, newloc); +                    oldloc, newloc, xdata);          return 0;  }  int -trace_link (call_frame_t *frame, xlator_t *this, loc_t *oldloc, loc_t *newloc) +trace_link (call_frame_t *frame, xlator_t *this, loc_t *oldloc, loc_t *newloc, +            dict_t *xdata)  {          char oldgfid[50] = {0,};          char newgfid[50] = {0,}; @@ -1648,14 +1653,14 @@ trace_link (call_frame_t *frame, xlator_t *this, loc_t *oldloc, loc_t *newloc)          STACK_WIND (frame, trace_link_cbk,                      FIRST_CHILD(this),                      FIRST_CHILD(this)->fops->link, -                    oldloc, newloc); +                    oldloc, newloc, xdata);          return 0;  }  int  trace_setattr (call_frame_t *frame, xlator_t *this, loc_t *loc, -               struct iatt *stbuf, int32_t valid) +               struct iatt *stbuf, int32_t valid, dict_t *xdata)  {          uint64_t ia_time          = 0;          char     actime_str[256]  = {0,}; @@ -1696,7 +1701,7 @@ trace_setattr (call_frame_t *frame, xlator_t *this, loc_t *loc,          STACK_WIND (frame, trace_setattr_cbk,                      FIRST_CHILD(this),                      FIRST_CHILD(this)->fops->setattr, -                    loc, stbuf, valid); +                    loc, stbuf, valid, xdata);          return 0;  } @@ -1704,7 +1709,7 @@ trace_setattr (call_frame_t *frame, xlator_t *this, loc_t *loc,  int  trace_fsetattr (call_frame_t *frame, xlator_t *this, fd_t *fd, -                struct iatt *stbuf, int32_t valid) +                struct iatt *stbuf, int32_t valid, dict_t *xdata)  {          uint64_t ia_time          = 0;          char     actime_str[256]  = {0,}; @@ -1745,7 +1750,7 @@ trace_fsetattr (call_frame_t *frame, xlator_t *this, fd_t *fd,          STACK_WIND (frame, trace_fsetattr_cbk,                      FIRST_CHILD(this),                      FIRST_CHILD(this)->fops->fsetattr, -                    fd, stbuf, valid); +                    fd, stbuf, valid, xdata);          return 0;  } @@ -1753,7 +1758,7 @@ trace_fsetattr (call_frame_t *frame, xlator_t *this, fd_t *fd,  int  trace_truncate (call_frame_t *frame, xlator_t *this, loc_t *loc, -                off_t offset) +                off_t offset, dict_t *xdata)  {          if (trace_fop_names[GF_FOP_TRUNCATE].enabled) {                  gf_log (this->name, GF_LOG_INFO, @@ -1766,7 +1771,7 @@ trace_truncate (call_frame_t *frame, xlator_t *this, loc_t *loc,          STACK_WIND (frame, trace_truncate_cbk,                      FIRST_CHILD(this),                      FIRST_CHILD(this)->fops->truncate, -                    loc, offset); +                    loc, offset, xdata);          return 0;  } @@ -1774,46 +1779,49 @@ trace_truncate (call_frame_t *frame, xlator_t *this, loc_t *loc,  int  trace_open (call_frame_t *frame, xlator_t *this, loc_t *loc, -            int32_t flags, fd_t *fd, int32_t wbflags) +            int32_t flags, fd_t *fd, dict_t *xdata)  {          if (trace_fop_names[GF_FOP_OPEN].enabled) {                  gf_log (this->name, GF_LOG_INFO, -                        "%"PRId64": gfid=%s path=%s flags=%d fd=%p wbflags=%d", +                        "%"PRId64": gfid=%s path=%s flags=%d fd=%p",                          frame->root->unique, uuid_utoa (loc->inode->gfid), -                        loc->path, flags, fd, wbflags); +                        loc->path, flags, fd);                  frame->local = loc->inode->gfid;          }          STACK_WIND (frame, trace_open_cbk,                      FIRST_CHILD(this),                      FIRST_CHILD(this)->fops->open, -                    loc, flags, fd, wbflags); +                    loc, flags, fd, xdata);          return 0;  }  int  trace_create (call_frame_t *frame, xlator_t *this, loc_t *loc, -              int32_t flags, mode_t mode, fd_t *fd, dict_t *params) +              int32_t flags, mode_t mode, mode_t umask, fd_t *fd, +              dict_t *xdata)  {          if (trace_fop_names[GF_FOP_CREATE].enabled) {                  gf_log (this->name, GF_LOG_INFO, -                        "%"PRId64": gfid=%s path=%s, fd=%p, flags=0%o mode=0%o", +                        "%"PRId64": gfid=%s path=%s fd=%p flags=0%o mode=0%o " +                        "umask=0%o",                          frame->root->unique, uuid_utoa (loc->inode->gfid), -                        loc->path, fd, flags, mode); +                        loc->path, fd, flags, mode, umask);          }          STACK_WIND (frame, trace_create_cbk,                      FIRST_CHILD(this),                      FIRST_CHILD(this)->fops->create, -                    loc, flags, mode, fd, params); +                    loc, flags, mode, umask, fd, xdata); +          return 0;  }  int  trace_readv (call_frame_t *frame, xlator_t *this, fd_t *fd, -             size_t size, off_t offset, uint32_t flags) +             size_t size, off_t offset, uint32_t flags, dict_t *xdata)  {          if (trace_fop_names[GF_FOP_READ].enabled) {                  gf_log (this->name, GF_LOG_INFO, @@ -1827,7 +1835,7 @@ trace_readv (call_frame_t *frame, xlator_t *this, fd_t *fd,          STACK_WIND (frame, trace_readv_cbk,                      FIRST_CHILD(this),                      FIRST_CHILD(this)->fops->readv, -                    fd, size, offset, flags); +                    fd, size, offset, flags, xdata);          return 0;  } @@ -1835,7 +1843,7 @@ trace_readv (call_frame_t *frame, xlator_t *this, fd_t *fd,  int  trace_writev (call_frame_t *frame, xlator_t *this, fd_t *fd,                struct iovec *vector, int32_t count, -              off_t offset, uint32_t flags, struct iobref *iobref) +              off_t offset, uint32_t flags, struct iobref *iobref, dict_t *xdata)  {          if (trace_fop_names[GF_FOP_WRITE].enabled) {                  gf_log (this->name, GF_LOG_INFO, @@ -1849,13 +1857,13 @@ trace_writev (call_frame_t *frame, xlator_t *this, fd_t *fd,          STACK_WIND (frame, trace_writev_cbk,                      FIRST_CHILD(this),                      FIRST_CHILD(this)->fops->writev, -                    fd, vector, count, offset, flags, iobref); +                    fd, vector, count, offset, flags, iobref, xdata);          return 0;  }  int -trace_statfs (call_frame_t *frame, xlator_t *this, loc_t *loc) +trace_statfs (call_frame_t *frame, xlator_t *this, loc_t *loc, dict_t *xdata)  {          if (trace_fop_names[GF_FOP_STATFS].enabled) {                  gf_log (this->name, GF_LOG_INFO, @@ -1867,13 +1875,13 @@ trace_statfs (call_frame_t *frame, xlator_t *this, loc_t *loc)          STACK_WIND (frame, trace_statfs_cbk,                      FIRST_CHILD(this),                      FIRST_CHILD(this)->fops->statfs, -                    loc); +                    loc, xdata);          return 0;  }  int -trace_flush (call_frame_t *frame, xlator_t *this, fd_t *fd) +trace_flush (call_frame_t *frame, xlator_t *this, fd_t *fd, dict_t *xdata)  {          if (trace_fop_names[GF_FOP_FLUSH].enabled) {                  gf_log (this->name, GF_LOG_INFO, @@ -1885,13 +1893,13 @@ trace_flush (call_frame_t *frame, xlator_t *this, fd_t *fd)          STACK_WIND (frame, trace_flush_cbk,                      FIRST_CHILD(this),                      FIRST_CHILD(this)->fops->flush, -                    fd); +                    fd, xdata);          return 0;  }  int -trace_fsync (call_frame_t *frame, xlator_t *this, fd_t *fd, int32_t flags) +trace_fsync (call_frame_t *frame, xlator_t *this, fd_t *fd, int32_t flags, dict_t *xdata)  {          if (trace_fop_names[GF_FOP_FSYNC].enabled) {                  gf_log (this->name, GF_LOG_INFO, @@ -1903,14 +1911,14 @@ trace_fsync (call_frame_t *frame, xlator_t *this, fd_t *fd, int32_t flags)          STACK_WIND (frame, trace_fsync_cbk,                      FIRST_CHILD(this),                      FIRST_CHILD(this)->fops->fsync, -                    fd, flags); +                    fd, flags, xdata);          return 0;  }  int  trace_setxattr (call_frame_t *frame, xlator_t *this, -                loc_t *loc, dict_t *dict, int32_t flags) +                loc_t *loc, dict_t *dict, int32_t flags, dict_t *xdata)  {          if (trace_fop_names[GF_FOP_SETXATTR].enabled) {                  gf_log (this->name, GF_LOG_INFO, @@ -1923,14 +1931,14 @@ trace_setxattr (call_frame_t *frame, xlator_t *this,          STACK_WIND (frame, trace_setxattr_cbk,                      FIRST_CHILD(this),                      FIRST_CHILD(this)->fops->setxattr, -                    loc, dict, flags); +                    loc, dict, flags, xdata);          return 0;  }  int  trace_getxattr (call_frame_t *frame, xlator_t *this, -                loc_t *loc, const char *name) +                loc_t *loc, const char *name, dict_t *xdata)  {          if (trace_fop_names[GF_FOP_GETXATTR].enabled) {                  gf_log (this->name, GF_LOG_INFO, @@ -1943,14 +1951,14 @@ trace_getxattr (call_frame_t *frame, xlator_t *this,          STACK_WIND (frame, trace_getxattr_cbk,                      FIRST_CHILD(this),                      FIRST_CHILD(this)->fops->getxattr, -                    loc, name); +                    loc, name, xdata);          return 0;  }  int  trace_removexattr (call_frame_t *frame, xlator_t *this, -                   loc_t *loc, const char *name) +                   loc_t *loc, const char *name, dict_t *xdata)  {          if (trace_fop_names[GF_FOP_REMOVEXATTR].enabled) {                  gf_log (this->name, GF_LOG_INFO, @@ -1963,14 +1971,14 @@ trace_removexattr (call_frame_t *frame, xlator_t *this,          STACK_WIND (frame, trace_removexattr_cbk,                      FIRST_CHILD(this),                      FIRST_CHILD(this)->fops->removexattr, -                    loc, name); +                    loc, name, xdata);          return 0;  }  int -trace_opendir (call_frame_t *frame, xlator_t *this, loc_t *loc, fd_t *fd) +trace_opendir (call_frame_t *frame, xlator_t *this, loc_t *loc, fd_t *fd, dict_t *xdata)  {          if (trace_fop_names[GF_FOP_OPENDIR].enabled) {                  gf_log (this->name, GF_LOG_INFO, @@ -1983,7 +1991,7 @@ trace_opendir (call_frame_t *frame, xlator_t *this, loc_t *loc, fd_t *fd)          STACK_WIND (frame, trace_opendir_cbk,                      FIRST_CHILD(this),                      FIRST_CHILD(this)->fops->opendir, -                    loc, fd); +                    loc, fd, xdata);          return 0;  } @@ -2011,7 +2019,7 @@ trace_readdirp (call_frame_t *frame, xlator_t *this, fd_t *fd, size_t size,  int  trace_readdir (call_frame_t *frame, xlator_t *this, fd_t *fd, -               size_t size, off_t offset) +               size_t size, off_t offset, dict_t *xdata)  {          if (trace_fop_names[GF_FOP_READDIR].enabled) {                  gf_log (this->name, GF_LOG_INFO, @@ -2024,7 +2032,7 @@ trace_readdir (call_frame_t *frame, xlator_t *this, fd_t *fd,          STACK_WIND (frame, trace_readdir_cbk,                      FIRST_CHILD(this),                      FIRST_CHILD(this)->fops->readdir, -                    fd, size, offset); +                    fd, size, offset, xdata);          return 0;  } @@ -2032,7 +2040,7 @@ trace_readdir (call_frame_t *frame, xlator_t *this, fd_t *fd,  int  trace_fsyncdir (call_frame_t *frame, xlator_t *this, -                fd_t *fd, int32_t datasync) +                fd_t *fd, int32_t datasync, dict_t *xdata)  {          if (trace_fop_names[GF_FOP_FSYNCDIR].enabled) {                  gf_log (this->name, GF_LOG_INFO, @@ -2045,13 +2053,13 @@ trace_fsyncdir (call_frame_t *frame, xlator_t *this,          STACK_WIND (frame, trace_fsyncdir_cbk,                      FIRST_CHILD(this),                      FIRST_CHILD(this)->fops->fsyncdir, -                    fd, datasync); +                    fd, datasync, xdata);          return 0;  }  int -trace_access (call_frame_t *frame, xlator_t *this, loc_t *loc, int32_t mask) +trace_access (call_frame_t *frame, xlator_t *this, loc_t *loc, int32_t mask, dict_t *xdata)  {          if (trace_fop_names[GF_FOP_ACCESS].enabled) {                  gf_log (this->name, GF_LOG_INFO, @@ -2064,14 +2072,14 @@ trace_access (call_frame_t *frame, xlator_t *this, loc_t *loc, int32_t mask)          STACK_WIND (frame, trace_access_cbk,                      FIRST_CHILD(this),                      FIRST_CHILD(this)->fops->access, -                    loc, mask); +                    loc, mask, xdata);          return 0;  }  int32_t  trace_rchecksum (call_frame_t *frame, xlator_t *this, fd_t *fd, off_t offset, -                 int32_t len) +                 int32_t len, dict_t *xdata)  {          if (trace_fop_names[GF_FOP_RCHECKSUM].enabled) {                  gf_log (this->name, GF_LOG_INFO, @@ -2084,7 +2092,7 @@ trace_rchecksum (call_frame_t *frame, xlator_t *this, fd_t *fd, off_t offset,          STACK_WIND (frame, trace_rchecksum_cbk,                      FIRST_CHILD(this),                      FIRST_CHILD(this)->fops->rchecksum, -                    fd, offset, len); +                    fd, offset, len, xdata);          return 0; @@ -2093,7 +2101,7 @@ trace_rchecksum (call_frame_t *frame, xlator_t *this, fd_t *fd, off_t offset,  int32_t  trace_fentrylk (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)  {          if (trace_fop_names[GF_FOP_FENTRYLK].enabled) {                  gf_log (this->name, GF_LOG_INFO, @@ -2109,14 +2117,14 @@ trace_fentrylk (call_frame_t *frame, xlator_t *this, const char *volume,          STACK_WIND (frame, trace_fentrylk_cbk,                      FIRST_CHILD (this),                      FIRST_CHILD (this)->fops->fentrylk, -                    volume, fd, basename, cmd, type); +                    volume, fd, basename, cmd, type, xdata);          return 0;  }  int32_t  trace_fgetxattr (call_frame_t *frame, xlator_t *this, fd_t *fd, -                 const char *name) +                 const char *name, dict_t *xdata)  {          if (trace_fop_names[GF_FOP_FGETXATTR].enabled) {                  gf_log (this->name, GF_LOG_INFO, @@ -2129,13 +2137,13 @@ trace_fgetxattr (call_frame_t *frame, xlator_t *this, fd_t *fd,          STACK_WIND (frame, trace_fgetxattr_cbk,                      FIRST_CHILD(this),                      FIRST_CHILD(this)->fops->fgetxattr, -                    fd, name); +                    fd, name, xdata);          return 0;  }  int32_t  trace_fsetxattr (call_frame_t *frame, xlator_t *this, fd_t *fd, -                 dict_t *dict, int32_t flags) +                 dict_t *dict, int32_t flags, dict_t *xdata)  {          if (trace_fop_names[GF_FOP_FSETXATTR].enabled) {                  gf_log (this->name, GF_LOG_INFO, @@ -2148,13 +2156,13 @@ trace_fsetxattr (call_frame_t *frame, xlator_t *this, fd_t *fd,          STACK_WIND (frame, trace_fsetxattr_cbk,                      FIRST_CHILD(this),                      FIRST_CHILD(this)->fops->fsetxattr, -                    fd, dict, flags); +                    fd, dict, flags, xdata);          return 0;  }  int  trace_ftruncate (call_frame_t *frame, xlator_t *this, -                 fd_t *fd, off_t offset) +                 fd_t *fd, off_t offset, dict_t *xdata)  {          if (trace_fop_names[GF_FOP_FTRUNCATE].enabled) {                  gf_log (this->name, GF_LOG_INFO, @@ -2167,14 +2175,14 @@ trace_ftruncate (call_frame_t *frame, xlator_t *this,          STACK_WIND (frame, trace_ftruncate_cbk,                      FIRST_CHILD(this),                      FIRST_CHILD(this)->fops->ftruncate, -                    fd, offset); +                    fd, offset, xdata);          return 0;  }  int -trace_fstat (call_frame_t *frame, xlator_t *this, fd_t *fd) +trace_fstat (call_frame_t *frame, xlator_t *this, fd_t *fd, dict_t *xdata)  {          if (trace_fop_names[GF_FOP_FSTAT].enabled) {                  gf_log (this->name, GF_LOG_INFO, @@ -2186,14 +2194,14 @@ trace_fstat (call_frame_t *frame, xlator_t *this, fd_t *fd)          STACK_WIND (frame, trace_fstat_cbk,                      FIRST_CHILD(this),                      FIRST_CHILD(this)->fops->fstat, -                    fd); +                    fd, xdata);          return 0;  }  int  trace_lk (call_frame_t *frame, xlator_t *this, fd_t *fd, -          int32_t cmd, struct gf_flock *lock) +          int32_t cmd, struct gf_flock *lock, dict_t *xdata)  {          if (trace_fop_names[GF_FOP_LK].enabled) {                  gf_log (this->name, GF_LOG_INFO, @@ -2208,7 +2216,7 @@ trace_lk (call_frame_t *frame, xlator_t *this, fd_t *fd,          STACK_WIND (frame, trace_lk_cbk,                      FIRST_CHILD(this),                      FIRST_CHILD(this)->fops->lk, -                    fd, cmd, lock); +                    fd, cmd, lock, xdata);          return 0;  }  | 
