diff options
| author | Amar Tumballi <amar@gluster.com> | 2011-12-23 10:00:28 +0530 | 
|---|---|---|
| committer | Anand Avati <avati@gluster.com> | 2012-01-25 02:28:07 -0800 | 
| commit | e98752525706fd6d9989367eb84f1a7fc1b81fa4 (patch) | |
| tree | 178db3b2fa12ad1c492c73124bc0db74f122989d /rpc | |
| parent | 49c325d949b2df06572df7dd3825735fb9c8cd6f (diff) | |
protocol: allow extra data in all the 'fops' over wire
Change-Id: I3920c68b5b317fc4a4acfd26d64d900bf7bd59d1
BUG: 782265
Signed-off-by: Amar Tumballi <amar@gluster.com>
Reviewed-on: http://review.gluster.com/2511
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Anand Avati <avati@gluster.com>
Diffstat (limited to 'rpc')
| -rw-r--r-- | rpc/xdr/src/glusterfs3-xdr.c | 162 | ||||
| -rw-r--r-- | rpc/xdr/src/glusterfs3-xdr.h | 308 | ||||
| -rw-r--r-- | rpc/xdr/src/glusterfs3-xdr.x | 78 | 
3 files changed, 547 insertions, 1 deletions
diff --git a/rpc/xdr/src/glusterfs3-xdr.c b/rpc/xdr/src/glusterfs3-xdr.c index a0c6f0b0edd..8cfb42dc8d0 100644 --- a/rpc/xdr/src/glusterfs3-xdr.c +++ b/rpc/xdr/src/glusterfs3-xdr.c @@ -251,6 +251,8 @@ xdr_gfs3_stat_req (XDR *xdrs, gfs3_stat_req *objp)  		 return FALSE;  	 if (!xdr_string (xdrs, &objp->path, ~0))  		 return FALSE; +	 if (!xdr_bytes (xdrs, (char **)&objp->xdata.xdata_val, (u_int *) &objp->xdata.xdata_len, ~0)) +		 return FALSE;  	return TRUE;  } @@ -266,6 +268,8 @@ xdr_gfs3_stat_rsp (XDR *xdrs, gfs3_stat_rsp *objp)  		 return FALSE;  	 if (!xdr_gf_iatt (xdrs, &objp->stat))  		 return FALSE; +	 if (!xdr_bytes (xdrs, (char **)&objp->xdata.xdata_val, (u_int *) &objp->xdata.xdata_len, ~0)) +		 return FALSE;  	return TRUE;  } @@ -281,6 +285,8 @@ xdr_gfs3_readlink_req (XDR *xdrs, gfs3_readlink_req *objp)  		 return FALSE;  	 if (!xdr_string (xdrs, &objp->path, ~0))  		 return FALSE; +	 if (!xdr_bytes (xdrs, (char **)&objp->xdata.xdata_val, (u_int *) &objp->xdata.xdata_len, ~0)) +		 return FALSE;  	return TRUE;  } @@ -298,6 +304,8 @@ xdr_gfs3_readlink_rsp (XDR *xdrs, gfs3_readlink_rsp *objp)  		 return FALSE;  	 if (!xdr_string (xdrs, &objp->path, ~0))  		 return FALSE; +	 if (!xdr_bytes (xdrs, (char **)&objp->xdata.xdata_val, (u_int *) &objp->xdata.xdata_len, ~0)) +		 return FALSE;  	return TRUE;  } @@ -319,6 +327,8 @@ xdr_gfs3_mknod_req (XDR *xdrs, gfs3_mknod_req *objp)  		 return FALSE;  	 if (!xdr_bytes (xdrs, (char **)&objp->dict.dict_val, (u_int *) &objp->dict.dict_len, ~0))  		 return FALSE; +	 if (!xdr_bytes (xdrs, (char **)&objp->xdata.xdata_val, (u_int *) &objp->xdata.xdata_len, ~0)) +		 return FALSE;  	return TRUE;  } @@ -338,6 +348,8 @@ xdr_gfs3_mknod_rsp (XDR *xdrs, gfs3_mknod_rsp *objp)  		 return FALSE;  	 if (!xdr_gf_iatt (xdrs, &objp->postparent))  		 return FALSE; +	 if (!xdr_bytes (xdrs, (char **)&objp->xdata.xdata_val, (u_int *) &objp->xdata.xdata_len, ~0)) +		 return FALSE;  	return TRUE;  } @@ -357,6 +369,8 @@ xdr_gfs3_mkdir_req (XDR *xdrs, gfs3_mkdir_req *objp)  		 return FALSE;  	 if (!xdr_bytes (xdrs, (char **)&objp->dict.dict_val, (u_int *) &objp->dict.dict_len, ~0))  		 return FALSE; +	 if (!xdr_bytes (xdrs, (char **)&objp->xdata.xdata_val, (u_int *) &objp->xdata.xdata_len, ~0)) +		 return FALSE;  	return TRUE;  } @@ -376,6 +390,8 @@ xdr_gfs3_mkdir_rsp (XDR *xdrs, gfs3_mkdir_rsp *objp)  		 return FALSE;  	 if (!xdr_gf_iatt (xdrs, &objp->postparent))  		 return FALSE; +	 if (!xdr_bytes (xdrs, (char **)&objp->xdata.xdata_val, (u_int *) &objp->xdata.xdata_len, ~0)) +		 return FALSE;  	return TRUE;  } @@ -391,6 +407,8 @@ xdr_gfs3_unlink_req (XDR *xdrs, gfs3_unlink_req *objp)  		 return FALSE;  	 if (!xdr_string (xdrs, &objp->bname, ~0))  		 return FALSE; +	 if (!xdr_bytes (xdrs, (char **)&objp->xdata.xdata_val, (u_int *) &objp->xdata.xdata_len, ~0)) +		 return FALSE;  	return TRUE;  } @@ -408,6 +426,8 @@ xdr_gfs3_unlink_rsp (XDR *xdrs, gfs3_unlink_rsp *objp)  		 return FALSE;  	 if (!xdr_gf_iatt (xdrs, &objp->postparent))  		 return FALSE; +	 if (!xdr_bytes (xdrs, (char **)&objp->xdata.xdata_val, (u_int *) &objp->xdata.xdata_len, ~0)) +		 return FALSE;  	return TRUE;  } @@ -425,6 +445,8 @@ xdr_gfs3_rmdir_req (XDR *xdrs, gfs3_rmdir_req *objp)  		 return FALSE;  	 if (!xdr_string (xdrs, &objp->bname, ~0))  		 return FALSE; +	 if (!xdr_bytes (xdrs, (char **)&objp->xdata.xdata_val, (u_int *) &objp->xdata.xdata_len, ~0)) +		 return FALSE;  	return TRUE;  } @@ -442,6 +464,8 @@ xdr_gfs3_rmdir_rsp (XDR *xdrs, gfs3_rmdir_rsp *objp)  		 return FALSE;  	 if (!xdr_gf_iatt (xdrs, &objp->postparent))  		 return FALSE; +	 if (!xdr_bytes (xdrs, (char **)&objp->xdata.xdata_val, (u_int *) &objp->xdata.xdata_len, ~0)) +		 return FALSE;  	return TRUE;  } @@ -461,6 +485,8 @@ xdr_gfs3_symlink_req (XDR *xdrs, gfs3_symlink_req *objp)  		 return FALSE;  	 if (!xdr_bytes (xdrs, (char **)&objp->dict.dict_val, (u_int *) &objp->dict.dict_len, ~0))  		 return FALSE; +	 if (!xdr_bytes (xdrs, (char **)&objp->xdata.xdata_val, (u_int *) &objp->xdata.xdata_len, ~0)) +		 return FALSE;  	return TRUE;  } @@ -480,6 +506,8 @@ xdr_gfs3_symlink_rsp (XDR *xdrs, gfs3_symlink_rsp *objp)  		 return FALSE;  	 if (!xdr_gf_iatt (xdrs, &objp->postparent))  		 return FALSE; +	 if (!xdr_bytes (xdrs, (char **)&objp->xdata.xdata_val, (u_int *) &objp->xdata.xdata_len, ~0)) +		 return FALSE;  	return TRUE;  } @@ -501,6 +529,8 @@ xdr_gfs3_rename_req (XDR *xdrs, gfs3_rename_req *objp)  		 return FALSE;  	 if (!xdr_string (xdrs, &objp->newbname, ~0))  		 return FALSE; +	 if (!xdr_bytes (xdrs, (char **)&objp->xdata.xdata_val, (u_int *) &objp->xdata.xdata_len, ~0)) +		 return FALSE;  	return TRUE;  } @@ -524,6 +554,8 @@ xdr_gfs3_rename_rsp (XDR *xdrs, gfs3_rename_rsp *objp)  		 return FALSE;  	 if (!xdr_gf_iatt (xdrs, &objp->postnewparent))  		 return FALSE; +	 if (!xdr_bytes (xdrs, (char **)&objp->xdata.xdata_val, (u_int *) &objp->xdata.xdata_len, ~0)) +		 return FALSE;  	return TRUE;  } @@ -543,6 +575,8 @@ xdr_gfs3_link_req (XDR *xdrs, gfs3_link_req *objp)  		 return FALSE;  	 if (!xdr_string (xdrs, &objp->newbname, ~0))  		 return FALSE; +	 if (!xdr_bytes (xdrs, (char **)&objp->xdata.xdata_val, (u_int *) &objp->xdata.xdata_len, ~0)) +		 return FALSE;  	return TRUE;  } @@ -562,6 +596,8 @@ xdr_gfs3_link_rsp (XDR *xdrs, gfs3_link_rsp *objp)  		 return FALSE;  	 if (!xdr_gf_iatt (xdrs, &objp->postparent))  		 return FALSE; +	 if (!xdr_bytes (xdrs, (char **)&objp->xdata.xdata_val, (u_int *) &objp->xdata.xdata_len, ~0)) +		 return FALSE;  	return TRUE;  } @@ -577,6 +613,8 @@ xdr_gfs3_truncate_req (XDR *xdrs, gfs3_truncate_req *objp)  		 return FALSE;  	 if (!xdr_string (xdrs, &objp->path, ~0))  		 return FALSE; +	 if (!xdr_bytes (xdrs, (char **)&objp->xdata.xdata_val, (u_int *) &objp->xdata.xdata_len, ~0)) +		 return FALSE;  	return TRUE;  } @@ -594,6 +632,8 @@ xdr_gfs3_truncate_rsp (XDR *xdrs, gfs3_truncate_rsp *objp)  		 return FALSE;  	 if (!xdr_gf_iatt (xdrs, &objp->poststat))  		 return FALSE; +	 if (!xdr_bytes (xdrs, (char **)&objp->xdata.xdata_val, (u_int *) &objp->xdata.xdata_len, ~0)) +		 return FALSE;  	return TRUE;  } @@ -611,6 +651,8 @@ xdr_gfs3_open_req (XDR *xdrs, gfs3_open_req *objp)  		 return FALSE;  	 if (!xdr_string (xdrs, &objp->path, ~0))  		 return FALSE; +	 if (!xdr_bytes (xdrs, (char **)&objp->xdata.xdata_val, (u_int *) &objp->xdata.xdata_len, ~0)) +		 return FALSE;  	return TRUE;  } @@ -626,6 +668,8 @@ xdr_gfs3_open_rsp (XDR *xdrs, gfs3_open_rsp *objp)  		 return FALSE;  	 if (!xdr_quad_t (xdrs, &objp->fd))  		 return FALSE; +	 if (!xdr_bytes (xdrs, (char **)&objp->xdata.xdata_val, (u_int *) &objp->xdata.xdata_len, ~0)) +		 return FALSE;  	return TRUE;  } @@ -643,6 +687,8 @@ xdr_gfs3_read_req (XDR *xdrs, gfs3_read_req *objp)  		 return FALSE;  	 if (!xdr_u_int (xdrs, &objp->size))  		 return FALSE; +	 if (!xdr_bytes (xdrs, (char **)&objp->xdata.xdata_val, (u_int *) &objp->xdata.xdata_len, ~0)) +		 return FALSE;  	return TRUE;  } @@ -660,6 +706,8 @@ xdr_gfs3_read_rsp (XDR *xdrs, gfs3_read_rsp *objp)  		 return FALSE;  	 if (!xdr_u_int (xdrs, &objp->size))  		 return FALSE; +	 if (!xdr_bytes (xdrs, (char **)&objp->xdata.xdata_val, (u_int *) &objp->xdata.xdata_len, ~0)) +		 return FALSE;  	return TRUE;  } @@ -681,6 +729,8 @@ xdr_gfs3_lookup_req (XDR *xdrs, gfs3_lookup_req *objp)  		 return FALSE;  	 if (!xdr_bytes (xdrs, (char **)&objp->dict.dict_val, (u_int *) &objp->dict.dict_len, ~0))  		 return FALSE; +	 if (!xdr_bytes (xdrs, (char **)&objp->xdata.xdata_val, (u_int *) &objp->xdata.xdata_len, ~0)) +		 return FALSE;  	return TRUE;  } @@ -700,6 +750,8 @@ xdr_gfs3_lookup_rsp (XDR *xdrs, gfs3_lookup_rsp *objp)  		 return FALSE;  	 if (!xdr_bytes (xdrs, (char **)&objp->dict.dict_val, (u_int *) &objp->dict.dict_len, ~0))  		 return FALSE; +	 if (!xdr_bytes (xdrs, (char **)&objp->xdata.xdata_val, (u_int *) &objp->xdata.xdata_len, ~0)) +		 return FALSE;  	return TRUE;  } @@ -717,6 +769,8 @@ xdr_gfs3_write_req (XDR *xdrs, gfs3_write_req *objp)  		 return FALSE;  	 if (!xdr_u_int (xdrs, &objp->size))  		 return FALSE; +	 if (!xdr_bytes (xdrs, (char **)&objp->xdata.xdata_val, (u_int *) &objp->xdata.xdata_len, ~0)) +		 return FALSE;  	return TRUE;  } @@ -734,6 +788,8 @@ xdr_gfs3_write_rsp (XDR *xdrs, gfs3_write_rsp *objp)  		 return FALSE;  	 if (!xdr_gf_iatt (xdrs, &objp->poststat))  		 return FALSE; +	 if (!xdr_bytes (xdrs, (char **)&objp->xdata.xdata_val, (u_int *) &objp->xdata.xdata_len, ~0)) +		 return FALSE;  	return TRUE;  } @@ -747,6 +803,8 @@ xdr_gfs3_statfs_req (XDR *xdrs, gfs3_statfs_req *objp)  		 return FALSE;  	 if (!xdr_string (xdrs, &objp->path, ~0))  		 return FALSE; +	 if (!xdr_bytes (xdrs, (char **)&objp->xdata.xdata_val, (u_int *) &objp->xdata.xdata_len, ~0)) +		 return FALSE;  	return TRUE;  } @@ -762,6 +820,8 @@ xdr_gfs3_statfs_rsp (XDR *xdrs, gfs3_statfs_rsp *objp)  		 return FALSE;  	 if (!xdr_gf_statfs (xdrs, &objp->statfs))  		 return FALSE; +	 if (!xdr_bytes (xdrs, (char **)&objp->xdata.xdata_val, (u_int *) &objp->xdata.xdata_len, ~0)) +		 return FALSE;  	return TRUE;  } @@ -781,6 +841,8 @@ xdr_gfs3_lk_req (XDR *xdrs, gfs3_lk_req *objp)  		 return FALSE;  	 if (!xdr_gf_proto_flock (xdrs, &objp->flock))  		 return FALSE; +	 if (!xdr_bytes (xdrs, (char **)&objp->xdata.xdata_val, (u_int *) &objp->xdata.xdata_len, ~0)) +		 return FALSE;  	return TRUE;  } @@ -796,6 +858,8 @@ xdr_gfs3_lk_rsp (XDR *xdrs, gfs3_lk_rsp *objp)  		 return FALSE;  	 if (!xdr_gf_proto_flock (xdrs, &objp->flock))  		 return FALSE; +	 if (!xdr_bytes (xdrs, (char **)&objp->xdata.xdata_val, (u_int *) &objp->xdata.xdata_len, ~0)) +		 return FALSE;  	return TRUE;  } @@ -817,6 +881,8 @@ xdr_gfs3_inodelk_req (XDR *xdrs, gfs3_inodelk_req *objp)  		 return FALSE;  	 if (!xdr_string (xdrs, &objp->volume, ~0))  		 return FALSE; +	 if (!xdr_bytes (xdrs, (char **)&objp->xdata.xdata_val, (u_int *) &objp->xdata.xdata_len, ~0)) +		 return FALSE;  	return TRUE;  } @@ -838,6 +904,8 @@ xdr_gfs3_finodelk_req (XDR *xdrs, gfs3_finodelk_req *objp)  		 return FALSE;  	 if (!xdr_string (xdrs, &objp->volume, ~0))  		 return FALSE; +	 if (!xdr_bytes (xdrs, (char **)&objp->xdata.xdata_val, (u_int *) &objp->xdata.xdata_len, ~0)) +		 return FALSE;  	return TRUE;  } @@ -851,6 +919,8 @@ xdr_gfs3_flush_req (XDR *xdrs, gfs3_flush_req *objp)  		 return FALSE;  	 if (!xdr_quad_t (xdrs, &objp->fd))  		 return FALSE; +	 if (!xdr_bytes (xdrs, (char **)&objp->xdata.xdata_val, (u_int *) &objp->xdata.xdata_len, ~0)) +		 return FALSE;  	return TRUE;  } @@ -866,6 +936,8 @@ xdr_gfs3_fsync_req (XDR *xdrs, gfs3_fsync_req *objp)  		 return FALSE;  	 if (!xdr_u_int (xdrs, &objp->data))  		 return FALSE; +	 if (!xdr_bytes (xdrs, (char **)&objp->xdata.xdata_val, (u_int *) &objp->xdata.xdata_len, ~0)) +		 return FALSE;  	return TRUE;  } @@ -883,6 +955,8 @@ xdr_gfs3_fsync_rsp (XDR *xdrs, gfs3_fsync_rsp *objp)  		 return FALSE;  	 if (!xdr_gf_iatt (xdrs, &objp->poststat))  		 return FALSE; +	 if (!xdr_bytes (xdrs, (char **)&objp->xdata.xdata_val, (u_int *) &objp->xdata.xdata_len, ~0)) +		 return FALSE;  	return TRUE;  } @@ -900,6 +974,8 @@ xdr_gfs3_setxattr_req (XDR *xdrs, gfs3_setxattr_req *objp)  		 return FALSE;  	 if (!xdr_string (xdrs, &objp->path, ~0))  		 return FALSE; +	 if (!xdr_bytes (xdrs, (char **)&objp->xdata.xdata_val, (u_int *) &objp->xdata.xdata_len, ~0)) +		 return FALSE;  	return TRUE;  } @@ -917,6 +993,8 @@ xdr_gfs3_fsetxattr_req (XDR *xdrs, gfs3_fsetxattr_req *objp)  		 return FALSE;  	 if (!xdr_bytes (xdrs, (char **)&objp->dict.dict_val, (u_int *) &objp->dict.dict_len, ~0))  		 return FALSE; +	 if (!xdr_bytes (xdrs, (char **)&objp->xdata.xdata_val, (u_int *) &objp->xdata.xdata_len, ~0)) +		 return FALSE;  	return TRUE;  } @@ -934,6 +1012,8 @@ xdr_gfs3_xattrop_req (XDR *xdrs, gfs3_xattrop_req *objp)  		 return FALSE;  	 if (!xdr_string (xdrs, &objp->path, ~0))  		 return FALSE; +	 if (!xdr_bytes (xdrs, (char **)&objp->xdata.xdata_val, (u_int *) &objp->xdata.xdata_len, ~0)) +		 return FALSE;  	return TRUE;  } @@ -949,6 +1029,8 @@ xdr_gfs3_xattrop_rsp (XDR *xdrs, gfs3_xattrop_rsp *objp)  		 return FALSE;  	 if (!xdr_bytes (xdrs, (char **)&objp->dict.dict_val, (u_int *) &objp->dict.dict_len, ~0))  		 return FALSE; +	 if (!xdr_bytes (xdrs, (char **)&objp->xdata.xdata_val, (u_int *) &objp->xdata.xdata_len, ~0)) +		 return FALSE;  	return TRUE;  } @@ -966,6 +1048,8 @@ xdr_gfs3_fxattrop_req (XDR *xdrs, gfs3_fxattrop_req *objp)  		 return FALSE;  	 if (!xdr_bytes (xdrs, (char **)&objp->dict.dict_val, (u_int *) &objp->dict.dict_len, ~0))  		 return FALSE; +	 if (!xdr_bytes (xdrs, (char **)&objp->xdata.xdata_val, (u_int *) &objp->xdata.xdata_len, ~0)) +		 return FALSE;  	return TRUE;  } @@ -981,6 +1065,8 @@ xdr_gfs3_fxattrop_rsp (XDR *xdrs, gfs3_fxattrop_rsp *objp)  		 return FALSE;  	 if (!xdr_bytes (xdrs, (char **)&objp->dict.dict_val, (u_int *) &objp->dict.dict_len, ~0))  		 return FALSE; +	 if (!xdr_bytes (xdrs, (char **)&objp->xdata.xdata_val, (u_int *) &objp->xdata.xdata_len, ~0)) +		 return FALSE;  	return TRUE;  } @@ -998,6 +1084,8 @@ xdr_gfs3_getxattr_req (XDR *xdrs, gfs3_getxattr_req *objp)  		 return FALSE;  	 if (!xdr_string (xdrs, &objp->name, ~0))  		 return FALSE; +	 if (!xdr_bytes (xdrs, (char **)&objp->xdata.xdata_val, (u_int *) &objp->xdata.xdata_len, ~0)) +		 return FALSE;  	return TRUE;  } @@ -1013,6 +1101,8 @@ xdr_gfs3_getxattr_rsp (XDR *xdrs, gfs3_getxattr_rsp *objp)  		 return FALSE;  	 if (!xdr_bytes (xdrs, (char **)&objp->dict.dict_val, (u_int *) &objp->dict.dict_len, ~0))  		 return FALSE; +	 if (!xdr_bytes (xdrs, (char **)&objp->xdata.xdata_val, (u_int *) &objp->xdata.xdata_len, ~0)) +		 return FALSE;  	return TRUE;  } @@ -1030,6 +1120,8 @@ xdr_gfs3_fgetxattr_req (XDR *xdrs, gfs3_fgetxattr_req *objp)  		 return FALSE;  	 if (!xdr_string (xdrs, &objp->name, ~0))  		 return FALSE; +	 if (!xdr_bytes (xdrs, (char **)&objp->xdata.xdata_val, (u_int *) &objp->xdata.xdata_len, ~0)) +		 return FALSE;  	return TRUE;  } @@ -1045,6 +1137,8 @@ xdr_gfs3_fgetxattr_rsp (XDR *xdrs, gfs3_fgetxattr_rsp *objp)  		 return FALSE;  	 if (!xdr_bytes (xdrs, (char **)&objp->dict.dict_val, (u_int *) &objp->dict.dict_len, ~0))  		 return FALSE; +	 if (!xdr_bytes (xdrs, (char **)&objp->xdata.xdata_val, (u_int *) &objp->xdata.xdata_len, ~0)) +		 return FALSE;  	return TRUE;  } @@ -1060,6 +1154,8 @@ xdr_gfs3_removexattr_req (XDR *xdrs, gfs3_removexattr_req *objp)  		 return FALSE;  	 if (!xdr_string (xdrs, &objp->name, ~0))  		 return FALSE; +	 if (!xdr_bytes (xdrs, (char **)&objp->xdata.xdata_val, (u_int *) &objp->xdata.xdata_len, ~0)) +		 return FALSE;  	return TRUE;  } @@ -1075,6 +1171,8 @@ xdr_gfs3_fremovexattr_req (XDR *xdrs, gfs3_fremovexattr_req *objp)  		 return FALSE;  	 if (!xdr_string (xdrs, &objp->name, ~0))  		 return FALSE; +	 if (!xdr_bytes (xdrs, (char **)&objp->xdata.xdata_val, (u_int *) &objp->xdata.xdata_len, ~0)) +		 return FALSE;  	return TRUE;  } @@ -1088,6 +1186,8 @@ xdr_gfs3_opendir_req (XDR *xdrs, gfs3_opendir_req *objp)  		 return FALSE;  	 if (!xdr_string (xdrs, &objp->path, ~0))  		 return FALSE; +	 if (!xdr_bytes (xdrs, (char **)&objp->xdata.xdata_val, (u_int *) &objp->xdata.xdata_len, ~0)) +		 return FALSE;  	return TRUE;  } @@ -1103,6 +1203,8 @@ xdr_gfs3_opendir_rsp (XDR *xdrs, gfs3_opendir_rsp *objp)  		 return FALSE;  	 if (!xdr_quad_t (xdrs, &objp->fd))  		 return FALSE; +	 if (!xdr_bytes (xdrs, (char **)&objp->xdata.xdata_val, (u_int *) &objp->xdata.xdata_len, ~0)) +		 return FALSE;  	return TRUE;  } @@ -1118,6 +1220,8 @@ xdr_gfs3_fsyncdir_req (XDR *xdrs, gfs3_fsyncdir_req *objp)  		 return FALSE;  	 if (!xdr_int (xdrs, &objp->data))  		 return FALSE; +	 if (!xdr_bytes (xdrs, (char **)&objp->xdata.xdata_val, (u_int *) &objp->xdata.xdata_len, ~0)) +		 return FALSE;  	return TRUE;  } @@ -1135,6 +1239,8 @@ xdr_gfs3_readdir_req (XDR *xdrs, gfs3_readdir_req *objp)  		 return FALSE;  	 if (!xdr_u_int (xdrs, &objp->size))  		 return FALSE; +	 if (!xdr_bytes (xdrs, (char **)&objp->xdata.xdata_val, (u_int *) &objp->xdata.xdata_len, ~0)) +		 return FALSE;  	return TRUE;  } @@ -1195,6 +1301,8 @@ xdr_gfs3_access_req (XDR *xdrs, gfs3_access_req *objp)  		 return FALSE;  	 if (!xdr_string (xdrs, &objp->path, ~0))  		 return FALSE; +	 if (!xdr_bytes (xdrs, (char **)&objp->xdata.xdata_val, (u_int *) &objp->xdata.xdata_len, ~0)) +		 return FALSE;  	return TRUE;  } @@ -1216,6 +1324,8 @@ xdr_gfs3_create_req (XDR *xdrs, gfs3_create_req *objp)  		 return FALSE;  	 if (!xdr_bytes (xdrs, (char **)&objp->dict.dict_val, (u_int *) &objp->dict.dict_len, ~0))  		 return FALSE; +	 if (!xdr_bytes (xdrs, (char **)&objp->xdata.xdata_val, (u_int *) &objp->xdata.xdata_len, ~0)) +		 return FALSE;  	return TRUE;  } @@ -1237,6 +1347,8 @@ xdr_gfs3_create_rsp (XDR *xdrs, gfs3_create_rsp *objp)  		 return FALSE;  	 if (!xdr_gf_iatt (xdrs, &objp->postparent))  		 return FALSE; +	 if (!xdr_bytes (xdrs, (char **)&objp->xdata.xdata_val, (u_int *) &objp->xdata.xdata_len, ~0)) +		 return FALSE;  	return TRUE;  } @@ -1252,6 +1364,8 @@ xdr_gfs3_ftruncate_req (XDR *xdrs, gfs3_ftruncate_req *objp)  		 return FALSE;  	 if (!xdr_u_quad_t (xdrs, &objp->offset))  		 return FALSE; +	 if (!xdr_bytes (xdrs, (char **)&objp->xdata.xdata_val, (u_int *) &objp->xdata.xdata_len, ~0)) +		 return FALSE;  	return TRUE;  } @@ -1269,6 +1383,8 @@ xdr_gfs3_ftruncate_rsp (XDR *xdrs, gfs3_ftruncate_rsp *objp)  		 return FALSE;  	 if (!xdr_gf_iatt (xdrs, &objp->poststat))  		 return FALSE; +	 if (!xdr_bytes (xdrs, (char **)&objp->xdata.xdata_val, (u_int *) &objp->xdata.xdata_len, ~0)) +		 return FALSE;  	return TRUE;  } @@ -1282,6 +1398,8 @@ xdr_gfs3_fstat_req (XDR *xdrs, gfs3_fstat_req *objp)  		 return FALSE;  	 if (!xdr_quad_t (xdrs, &objp->fd))  		 return FALSE; +	 if (!xdr_bytes (xdrs, (char **)&objp->xdata.xdata_val, (u_int *) &objp->xdata.xdata_len, ~0)) +		 return FALSE;  	return TRUE;  } @@ -1297,6 +1415,8 @@ xdr_gfs3_fstat_rsp (XDR *xdrs, gfs3_fstat_rsp *objp)  		 return FALSE;  	 if (!xdr_gf_iatt (xdrs, &objp->stat))  		 return FALSE; +	 if (!xdr_bytes (xdrs, (char **)&objp->xdata.xdata_val, (u_int *) &objp->xdata.xdata_len, ~0)) +		 return FALSE;  	return TRUE;  } @@ -1320,6 +1440,8 @@ xdr_gfs3_entrylk_req (XDR *xdrs, gfs3_entrylk_req *objp)  		 return FALSE;  	 if (!xdr_string (xdrs, &objp->volume, ~0))  		 return FALSE; +	 if (!xdr_bytes (xdrs, (char **)&objp->xdata.xdata_val, (u_int *) &objp->xdata.xdata_len, ~0)) +		 return FALSE;  	return TRUE;  } @@ -1343,6 +1465,8 @@ xdr_gfs3_fentrylk_req (XDR *xdrs, gfs3_fentrylk_req *objp)  		 return FALSE;  	 if (!xdr_string (xdrs, &objp->volume, ~0))  		 return FALSE; +	 if (!xdr_bytes (xdrs, (char **)&objp->xdata.xdata_val, (u_int *) &objp->xdata.xdata_len, ~0)) +		 return FALSE;  	return TRUE;  } @@ -1360,6 +1484,8 @@ xdr_gfs3_setattr_req (XDR *xdrs, gfs3_setattr_req *objp)  		 return FALSE;  	 if (!xdr_string (xdrs, &objp->path, ~0))  		 return FALSE; +	 if (!xdr_bytes (xdrs, (char **)&objp->xdata.xdata_val, (u_int *) &objp->xdata.xdata_len, ~0)) +		 return FALSE;  	return TRUE;  } @@ -1377,6 +1503,8 @@ xdr_gfs3_setattr_rsp (XDR *xdrs, gfs3_setattr_rsp *objp)  		 return FALSE;  	 if (!xdr_gf_iatt (xdrs, &objp->statpost))  		 return FALSE; +	 if (!xdr_bytes (xdrs, (char **)&objp->xdata.xdata_val, (u_int *) &objp->xdata.xdata_len, ~0)) +		 return FALSE;  	return TRUE;  } @@ -1392,6 +1520,8 @@ xdr_gfs3_fsetattr_req (XDR *xdrs, gfs3_fsetattr_req *objp)  		 return FALSE;  	 if (!xdr_int (xdrs, &objp->valid))  		 return FALSE; +	 if (!xdr_bytes (xdrs, (char **)&objp->xdata.xdata_val, (u_int *) &objp->xdata.xdata_len, ~0)) +		 return FALSE;  	return TRUE;  } @@ -1409,6 +1539,8 @@ xdr_gfs3_fsetattr_rsp (XDR *xdrs, gfs3_fsetattr_rsp *objp)  		 return FALSE;  	 if (!xdr_gf_iatt (xdrs, &objp->statpost))  		 return FALSE; +	 if (!xdr_bytes (xdrs, (char **)&objp->xdata.xdata_val, (u_int *) &objp->xdata.xdata_len, ~0)) +		 return FALSE;  	return TRUE;  } @@ -1424,6 +1556,8 @@ xdr_gfs3_rchecksum_req (XDR *xdrs, gfs3_rchecksum_req *objp)  		 return FALSE;  	 if (!xdr_u_int (xdrs, &objp->len))  		 return FALSE; +	 if (!xdr_bytes (xdrs, (char **)&objp->xdata.xdata_val, (u_int *) &objp->xdata.xdata_len, ~0)) +		 return FALSE;  	return TRUE;  } @@ -1451,6 +1585,8 @@ xdr_gfs3_rchecksum_rsp (XDR *xdrs, gfs3_rchecksum_rsp *objp)  		}  		 if (!xdr_bytes (xdrs, (char **)&objp->strong_checksum.strong_checksum_val, (u_int *) &objp->strong_checksum.strong_checksum_len, ~0))  			 return FALSE; +		 if (!xdr_bytes (xdrs, (char **)&objp->xdata.xdata_val, (u_int *) &objp->xdata.xdata_len, ~0)) +			 return FALSE;  		return TRUE;  	} else if (xdrs->x_op == XDR_DECODE) {  		buf = XDR_INLINE (xdrs, 3 * BYTES_PER_XDR_UNIT); @@ -1469,6 +1605,8 @@ xdr_gfs3_rchecksum_rsp (XDR *xdrs, gfs3_rchecksum_rsp *objp)  		}  		 if (!xdr_bytes (xdrs, (char **)&objp->strong_checksum.strong_checksum_val, (u_int *) &objp->strong_checksum.strong_checksum_len, ~0))  			 return FALSE; +		 if (!xdr_bytes (xdrs, (char **)&objp->xdata.xdata_val, (u_int *) &objp->xdata.xdata_len, ~0)) +			 return FALSE;  	 return TRUE;  	} @@ -1480,6 +1618,8 @@ xdr_gfs3_rchecksum_rsp (XDR *xdrs, gfs3_rchecksum_rsp *objp)  		 return FALSE;  	 if (!xdr_bytes (xdrs, (char **)&objp->strong_checksum.strong_checksum_val, (u_int *) &objp->strong_checksum.strong_checksum_len, ~0))  		 return FALSE; +	 if (!xdr_bytes (xdrs, (char **)&objp->xdata.xdata_val, (u_int *) &objp->xdata.xdata_len, ~0)) +		 return FALSE;  	return TRUE;  } @@ -1493,6 +1633,8 @@ xdr_gf_getspec_req (XDR *xdrs, gf_getspec_req *objp)  		 return FALSE;  	 if (!xdr_string (xdrs, &objp->key, ~0))  		 return FALSE; +	 if (!xdr_bytes (xdrs, (char **)&objp->xdata.xdata_val, (u_int *) &objp->xdata.xdata_len, ~0)) +		 return FALSE;  	return TRUE;  } @@ -1508,6 +1650,8 @@ xdr_gf_getspec_rsp (XDR *xdrs, gf_getspec_rsp *objp)  		 return FALSE;  	 if (!xdr_string (xdrs, &objp->spec, ~0))  		 return FALSE; +	 if (!xdr_bytes (xdrs, (char **)&objp->xdata.xdata_val, (u_int *) &objp->xdata.xdata_len, ~0)) +		 return FALSE;  	return TRUE;  } @@ -1532,6 +1676,8 @@ xdr_gf_notify_req (XDR *xdrs, gf_notify_req *objp)  		 return FALSE;  	 if (!xdr_string (xdrs, &objp->buf, ~0))  		 return FALSE; +	 if (!xdr_bytes (xdrs, (char **)&objp->xdata.xdata_val, (u_int *) &objp->xdata.xdata_len, ~0)) +		 return FALSE;  	return TRUE;  } @@ -1559,6 +1705,8 @@ xdr_gf_notify_rsp (XDR *xdrs, gf_notify_rsp *objp)  		}  		 if (!xdr_string (xdrs, &objp->buf, ~0))  			 return FALSE; +		 if (!xdr_bytes (xdrs, (char **)&objp->xdata.xdata_val, (u_int *) &objp->xdata.xdata_len, ~0)) +			 return FALSE;  		return TRUE;  	} else if (xdrs->x_op == XDR_DECODE) {  		buf = XDR_INLINE (xdrs, 3 * BYTES_PER_XDR_UNIT); @@ -1577,6 +1725,8 @@ xdr_gf_notify_rsp (XDR *xdrs, gf_notify_rsp *objp)  		}  		 if (!xdr_string (xdrs, &objp->buf, ~0))  			 return FALSE; +		 if (!xdr_bytes (xdrs, (char **)&objp->xdata.xdata_val, (u_int *) &objp->xdata.xdata_len, ~0)) +			 return FALSE;  	 return TRUE;  	} @@ -1588,6 +1738,8 @@ xdr_gf_notify_rsp (XDR *xdrs, gf_notify_rsp *objp)  		 return FALSE;  	 if (!xdr_string (xdrs, &objp->buf, ~0))  		 return FALSE; +	 if (!xdr_bytes (xdrs, (char **)&objp->xdata.xdata_val, (u_int *) &objp->xdata.xdata_len, ~0)) +		 return FALSE;  	return TRUE;  } @@ -1601,6 +1753,8 @@ xdr_gfs3_releasedir_req (XDR *xdrs, gfs3_releasedir_req *objp)  		 return FALSE;  	 if (!xdr_quad_t (xdrs, &objp->fd))  		 return FALSE; +	 if (!xdr_bytes (xdrs, (char **)&objp->xdata.xdata_val, (u_int *) &objp->xdata.xdata_len, ~0)) +		 return FALSE;  	return TRUE;  } @@ -1614,6 +1768,8 @@ xdr_gfs3_release_req (XDR *xdrs, gfs3_release_req *objp)  		 return FALSE;  	 if (!xdr_quad_t (xdrs, &objp->fd))  		 return FALSE; +	 if (!xdr_bytes (xdrs, (char **)&objp->xdata.xdata_val, (u_int *) &objp->xdata.xdata_len, ~0)) +		 return FALSE;  	return TRUE;  } @@ -1627,6 +1783,8 @@ xdr_gf_common_rsp (XDR *xdrs, gf_common_rsp *objp)  		 return FALSE;  	 if (!xdr_int (xdrs, &objp->op_errno))  		 return FALSE; +	 if (!xdr_bytes (xdrs, (char **)&objp->xdata.xdata_val, (u_int *) &objp->xdata.xdata_len, ~0)) +		 return FALSE;  	return TRUE;  } @@ -1663,6 +1821,8 @@ xdr_gfs3_readdir_rsp (XDR *xdrs, gfs3_readdir_rsp *objp)  		 return FALSE;  	 if (!xdr_pointer (xdrs, (char **)&objp->reply, sizeof (gfs3_dirlist), (xdrproc_t) xdr_gfs3_dirlist))  		 return FALSE; +	 if (!xdr_bytes (xdrs, (char **)&objp->xdata.xdata_val, (u_int *) &objp->xdata.xdata_len, ~0)) +		 return FALSE;  	return TRUE;  } @@ -1703,5 +1863,7 @@ xdr_gfs3_readdirp_rsp (XDR *xdrs, gfs3_readdirp_rsp *objp)  		 return FALSE;  	 if (!xdr_pointer (xdrs, (char **)&objp->reply, sizeof (gfs3_dirplist), (xdrproc_t) xdr_gfs3_dirplist))  		 return FALSE; +	 if (!xdr_bytes (xdrs, (char **)&objp->xdata.xdata_val, (u_int *) &objp->xdata.xdata_len, ~0)) +		 return FALSE;  	return TRUE;  } diff --git a/rpc/xdr/src/glusterfs3-xdr.h b/rpc/xdr/src/glusterfs3-xdr.h index 156608ff314..76b28b7491c 100644 --- a/rpc/xdr/src/glusterfs3-xdr.h +++ b/rpc/xdr/src/glusterfs3-xdr.h @@ -94,6 +94,10 @@ typedef struct gf_iatt gf_iatt;  struct gfs3_stat_req {  	char gfid[16];  	char *path; +	struct { +		u_int xdata_len; +		char *xdata_val; +	} xdata;  };  typedef struct gfs3_stat_req gfs3_stat_req; @@ -101,6 +105,10 @@ struct gfs3_stat_rsp {  	int op_ret;  	int op_errno;  	struct gf_iatt stat; +	struct { +		u_int xdata_len; +		char *xdata_val; +	} xdata;  };  typedef struct gfs3_stat_rsp gfs3_stat_rsp; @@ -108,6 +116,10 @@ struct gfs3_readlink_req {  	char gfid[16];  	u_int size;  	char *path; +	struct { +		u_int xdata_len; +		char *xdata_val; +	} xdata;  };  typedef struct gfs3_readlink_req gfs3_readlink_req; @@ -116,6 +128,10 @@ struct gfs3_readlink_rsp {  	int op_errno;  	struct gf_iatt buf;  	char *path; +	struct { +		u_int xdata_len; +		char *xdata_val; +	} xdata;  };  typedef struct gfs3_readlink_rsp gfs3_readlink_rsp; @@ -129,6 +145,10 @@ struct gfs3_mknod_req {  		u_int dict_len;  		char *dict_val;  	} dict; +	struct { +		u_int xdata_len; +		char *xdata_val; +	} xdata;  };  typedef struct gfs3_mknod_req gfs3_mknod_req; @@ -138,6 +158,10 @@ struct gfs3_mknod_rsp {  	struct gf_iatt stat;  	struct gf_iatt preparent;  	struct gf_iatt postparent; +	struct { +		u_int xdata_len; +		char *xdata_val; +	} xdata;  };  typedef struct gfs3_mknod_rsp gfs3_mknod_rsp; @@ -150,6 +174,10 @@ struct gfs3_mkdir_req {  		u_int dict_len;  		char *dict_val;  	} dict; +	struct { +		u_int xdata_len; +		char *xdata_val; +	} xdata;  };  typedef struct gfs3_mkdir_req gfs3_mkdir_req; @@ -159,6 +187,10 @@ struct gfs3_mkdir_rsp {  	struct gf_iatt stat;  	struct gf_iatt preparent;  	struct gf_iatt postparent; +	struct { +		u_int xdata_len; +		char *xdata_val; +	} xdata;  };  typedef struct gfs3_mkdir_rsp gfs3_mkdir_rsp; @@ -166,6 +198,10 @@ struct gfs3_unlink_req {  	char pargfid[16];  	char *path;  	char *bname; +	struct { +		u_int xdata_len; +		char *xdata_val; +	} xdata;  };  typedef struct gfs3_unlink_req gfs3_unlink_req; @@ -174,6 +210,10 @@ struct gfs3_unlink_rsp {  	int op_errno;  	struct gf_iatt preparent;  	struct gf_iatt postparent; +	struct { +		u_int xdata_len; +		char *xdata_val; +	} xdata;  };  typedef struct gfs3_unlink_rsp gfs3_unlink_rsp; @@ -182,6 +222,10 @@ struct gfs3_rmdir_req {  	int flags;  	char *path;  	char *bname; +	struct { +		u_int xdata_len; +		char *xdata_val; +	} xdata;  };  typedef struct gfs3_rmdir_req gfs3_rmdir_req; @@ -190,6 +234,10 @@ struct gfs3_rmdir_rsp {  	int op_errno;  	struct gf_iatt preparent;  	struct gf_iatt postparent; +	struct { +		u_int xdata_len; +		char *xdata_val; +	} xdata;  };  typedef struct gfs3_rmdir_rsp gfs3_rmdir_rsp; @@ -202,6 +250,10 @@ struct gfs3_symlink_req {  		u_int dict_len;  		char *dict_val;  	} dict; +	struct { +		u_int xdata_len; +		char *xdata_val; +	} xdata;  };  typedef struct gfs3_symlink_req gfs3_symlink_req; @@ -211,6 +263,10 @@ struct gfs3_symlink_rsp {  	struct gf_iatt stat;  	struct gf_iatt preparent;  	struct gf_iatt postparent; +	struct { +		u_int xdata_len; +		char *xdata_val; +	} xdata;  };  typedef struct gfs3_symlink_rsp gfs3_symlink_rsp; @@ -221,6 +277,10 @@ struct gfs3_rename_req {  	char *oldbname;  	char *newpath;  	char *newbname; +	struct { +		u_int xdata_len; +		char *xdata_val; +	} xdata;  };  typedef struct gfs3_rename_req gfs3_rename_req; @@ -232,6 +292,10 @@ struct gfs3_rename_rsp {  	struct gf_iatt postoldparent;  	struct gf_iatt prenewparent;  	struct gf_iatt postnewparent; +	struct { +		u_int xdata_len; +		char *xdata_val; +	} xdata;  };  typedef struct gfs3_rename_rsp gfs3_rename_rsp; @@ -241,6 +305,10 @@ struct gfs3_link_req {  	char *oldpath;  	char *newpath;  	char *newbname; +	struct { +		u_int xdata_len; +		char *xdata_val; +	} xdata;  };  typedef struct gfs3_link_req gfs3_link_req; @@ -250,6 +318,10 @@ struct gfs3_link_rsp {  	struct gf_iatt stat;  	struct gf_iatt preparent;  	struct gf_iatt postparent; +	struct { +		u_int xdata_len; +		char *xdata_val; +	} xdata;  };  typedef struct gfs3_link_rsp gfs3_link_rsp; @@ -257,6 +329,10 @@ struct gfs3_truncate_req {  	char gfid[16];  	u_quad_t offset;  	char *path; +	struct { +		u_int xdata_len; +		char *xdata_val; +	} xdata;  };  typedef struct gfs3_truncate_req gfs3_truncate_req; @@ -265,6 +341,10 @@ struct gfs3_truncate_rsp {  	int op_errno;  	struct gf_iatt prestat;  	struct gf_iatt poststat; +	struct { +		u_int xdata_len; +		char *xdata_val; +	} xdata;  };  typedef struct gfs3_truncate_rsp gfs3_truncate_rsp; @@ -273,6 +353,10 @@ struct gfs3_open_req {  	u_int flags;  	u_int wbflags;  	char *path; +	struct { +		u_int xdata_len; +		char *xdata_val; +	} xdata;  };  typedef struct gfs3_open_req gfs3_open_req; @@ -280,6 +364,10 @@ struct gfs3_open_rsp {  	int op_ret;  	int op_errno;  	quad_t fd; +	struct { +		u_int xdata_len; +		char *xdata_val; +	} xdata;  };  typedef struct gfs3_open_rsp gfs3_open_rsp; @@ -288,6 +376,10 @@ struct gfs3_read_req {  	quad_t fd;  	u_quad_t offset;  	u_int size; +	struct { +		u_int xdata_len; +		char *xdata_val; +	} xdata;  };  typedef struct gfs3_read_req gfs3_read_req; @@ -296,6 +388,10 @@ struct gfs3_read_rsp {  	int op_errno;  	struct gf_iatt stat;  	u_int size; +	struct { +		u_int xdata_len; +		char *xdata_val; +	} xdata;  };  typedef struct gfs3_read_rsp gfs3_read_rsp; @@ -309,6 +405,10 @@ struct gfs3_lookup_req {  		u_int dict_len;  		char *dict_val;  	} dict; +	struct { +		u_int xdata_len; +		char *xdata_val; +	} xdata;  };  typedef struct gfs3_lookup_req gfs3_lookup_req; @@ -321,6 +421,10 @@ struct gfs3_lookup_rsp {  		u_int dict_len;  		char *dict_val;  	} dict; +	struct { +		u_int xdata_len; +		char *xdata_val; +	} xdata;  };  typedef struct gfs3_lookup_rsp gfs3_lookup_rsp; @@ -329,6 +433,10 @@ struct gfs3_write_req {  	quad_t fd;  	u_quad_t offset;  	u_int size; +	struct { +		u_int xdata_len; +		char *xdata_val; +	} xdata;  };  typedef struct gfs3_write_req gfs3_write_req; @@ -337,12 +445,20 @@ struct gfs3_write_rsp {  	int op_errno;  	struct gf_iatt prestat;  	struct gf_iatt poststat; +	struct { +		u_int xdata_len; +		char *xdata_val; +	} xdata;  };  typedef struct gfs3_write_rsp gfs3_write_rsp;  struct gfs3_statfs_req {  	char gfid[16];  	char *path; +	struct { +		u_int xdata_len; +		char *xdata_val; +	} xdata;  };  typedef struct gfs3_statfs_req gfs3_statfs_req; @@ -350,6 +466,10 @@ struct gfs3_statfs_rsp {  	int op_ret;  	int op_errno;  	struct gf_statfs statfs; +	struct { +		u_int xdata_len; +		char *xdata_val; +	} xdata;  };  typedef struct gfs3_statfs_rsp gfs3_statfs_rsp; @@ -359,6 +479,10 @@ struct gfs3_lk_req {  	u_int cmd;  	u_int type;  	struct gf_proto_flock flock; +	struct { +		u_int xdata_len; +		char *xdata_val; +	} xdata;  };  typedef struct gfs3_lk_req gfs3_lk_req; @@ -366,6 +490,10 @@ struct gfs3_lk_rsp {  	int op_ret;  	int op_errno;  	struct gf_proto_flock flock; +	struct { +		u_int xdata_len; +		char *xdata_val; +	} xdata;  };  typedef struct gfs3_lk_rsp gfs3_lk_rsp; @@ -376,6 +504,10 @@ struct gfs3_inodelk_req {  	struct gf_proto_flock flock;  	char *path;  	char *volume; +	struct { +		u_int xdata_len; +		char *xdata_val; +	} xdata;  };  typedef struct gfs3_inodelk_req gfs3_inodelk_req; @@ -386,12 +518,20 @@ struct gfs3_finodelk_req {  	u_int type;  	struct gf_proto_flock flock;  	char *volume; +	struct { +		u_int xdata_len; +		char *xdata_val; +	} xdata;  };  typedef struct gfs3_finodelk_req gfs3_finodelk_req;  struct gfs3_flush_req {  	char gfid[16];  	quad_t fd; +	struct { +		u_int xdata_len; +		char *xdata_val; +	} xdata;  };  typedef struct gfs3_flush_req gfs3_flush_req; @@ -399,6 +539,10 @@ struct gfs3_fsync_req {  	char gfid[16];  	quad_t fd;  	u_int data; +	struct { +		u_int xdata_len; +		char *xdata_val; +	} xdata;  };  typedef struct gfs3_fsync_req gfs3_fsync_req; @@ -407,6 +551,10 @@ struct gfs3_fsync_rsp {  	int op_errno;  	struct gf_iatt prestat;  	struct gf_iatt poststat; +	struct { +		u_int xdata_len; +		char *xdata_val; +	} xdata;  };  typedef struct gfs3_fsync_rsp gfs3_fsync_rsp; @@ -418,6 +566,10 @@ struct gfs3_setxattr_req {  		char *dict_val;  	} dict;  	char *path; +	struct { +		u_int xdata_len; +		char *xdata_val; +	} xdata;  };  typedef struct gfs3_setxattr_req gfs3_setxattr_req; @@ -429,6 +581,10 @@ struct gfs3_fsetxattr_req {  		u_int dict_len;  		char *dict_val;  	} dict; +	struct { +		u_int xdata_len; +		char *xdata_val; +	} xdata;  };  typedef struct gfs3_fsetxattr_req gfs3_fsetxattr_req; @@ -440,6 +596,10 @@ struct gfs3_xattrop_req {  		char *dict_val;  	} dict;  	char *path; +	struct { +		u_int xdata_len; +		char *xdata_val; +	} xdata;  };  typedef struct gfs3_xattrop_req gfs3_xattrop_req; @@ -450,6 +610,10 @@ struct gfs3_xattrop_rsp {  		u_int dict_len;  		char *dict_val;  	} dict; +	struct { +		u_int xdata_len; +		char *xdata_val; +	} xdata;  };  typedef struct gfs3_xattrop_rsp gfs3_xattrop_rsp; @@ -461,6 +625,10 @@ struct gfs3_fxattrop_req {  		u_int dict_len;  		char *dict_val;  	} dict; +	struct { +		u_int xdata_len; +		char *xdata_val; +	} xdata;  };  typedef struct gfs3_fxattrop_req gfs3_fxattrop_req; @@ -471,6 +639,10 @@ struct gfs3_fxattrop_rsp {  		u_int dict_len;  		char *dict_val;  	} dict; +	struct { +		u_int xdata_len; +		char *xdata_val; +	} xdata;  };  typedef struct gfs3_fxattrop_rsp gfs3_fxattrop_rsp; @@ -479,6 +651,10 @@ struct gfs3_getxattr_req {  	u_int namelen;  	char *path;  	char *name; +	struct { +		u_int xdata_len; +		char *xdata_val; +	} xdata;  };  typedef struct gfs3_getxattr_req gfs3_getxattr_req; @@ -489,6 +665,10 @@ struct gfs3_getxattr_rsp {  		u_int dict_len;  		char *dict_val;  	} dict; +	struct { +		u_int xdata_len; +		char *xdata_val; +	} xdata;  };  typedef struct gfs3_getxattr_rsp gfs3_getxattr_rsp; @@ -497,6 +677,10 @@ struct gfs3_fgetxattr_req {  	quad_t fd;  	u_int namelen;  	char *name; +	struct { +		u_int xdata_len; +		char *xdata_val; +	} xdata;  };  typedef struct gfs3_fgetxattr_req gfs3_fgetxattr_req; @@ -507,6 +691,10 @@ struct gfs3_fgetxattr_rsp {  		u_int dict_len;  		char *dict_val;  	} dict; +	struct { +		u_int xdata_len; +		char *xdata_val; +	} xdata;  };  typedef struct gfs3_fgetxattr_rsp gfs3_fgetxattr_rsp; @@ -514,6 +702,10 @@ struct gfs3_removexattr_req {  	char gfid[16];  	char *path;  	char *name; +	struct { +		u_int xdata_len; +		char *xdata_val; +	} xdata;  };  typedef struct gfs3_removexattr_req gfs3_removexattr_req; @@ -521,12 +713,20 @@ struct gfs3_fremovexattr_req {  	char gfid[16];  	quad_t fd;  	char *name; +	struct { +		u_int xdata_len; +		char *xdata_val; +	} xdata;  };  typedef struct gfs3_fremovexattr_req gfs3_fremovexattr_req;  struct gfs3_opendir_req {  	char gfid[16];  	char *path; +	struct { +		u_int xdata_len; +		char *xdata_val; +	} xdata;  };  typedef struct gfs3_opendir_req gfs3_opendir_req; @@ -534,6 +734,10 @@ struct gfs3_opendir_rsp {  	int op_ret;  	int op_errno;  	quad_t fd; +	struct { +		u_int xdata_len; +		char *xdata_val; +	} xdata;  };  typedef struct gfs3_opendir_rsp gfs3_opendir_rsp; @@ -541,6 +745,10 @@ struct gfs3_fsyncdir_req {  	char gfid[16];  	quad_t fd;  	int data; +	struct { +		u_int xdata_len; +		char *xdata_val; +	} xdata;  };  typedef struct gfs3_fsyncdir_req gfs3_fsyncdir_req; @@ -549,6 +757,10 @@ struct gfs3_readdir_req {  	quad_t fd;  	u_quad_t offset;  	u_int size; +	struct { +		u_int xdata_len; +		char *xdata_val; +	} xdata;  };  typedef struct gfs3_readdir_req gfs3_readdir_req; @@ -586,6 +798,10 @@ struct gfs3_access_req {  	char gfid[16];  	u_int mask;  	char *path; +	struct { +		u_int xdata_len; +		char *xdata_val; +	} xdata;  };  typedef struct gfs3_access_req gfs3_access_req; @@ -599,6 +815,10 @@ struct gfs3_create_req {  		u_int dict_len;  		char *dict_val;  	} dict; +	struct { +		u_int xdata_len; +		char *xdata_val; +	} xdata;  };  typedef struct gfs3_create_req gfs3_create_req; @@ -609,6 +829,10 @@ struct gfs3_create_rsp {  	u_quad_t fd;  	struct gf_iatt preparent;  	struct gf_iatt postparent; +	struct { +		u_int xdata_len; +		char *xdata_val; +	} xdata;  };  typedef struct gfs3_create_rsp gfs3_create_rsp; @@ -616,6 +840,10 @@ struct gfs3_ftruncate_req {  	char gfid[16];  	quad_t fd;  	u_quad_t offset; +	struct { +		u_int xdata_len; +		char *xdata_val; +	} xdata;  };  typedef struct gfs3_ftruncate_req gfs3_ftruncate_req; @@ -624,12 +852,20 @@ struct gfs3_ftruncate_rsp {  	int op_errno;  	struct gf_iatt prestat;  	struct gf_iatt poststat; +	struct { +		u_int xdata_len; +		char *xdata_val; +	} xdata;  };  typedef struct gfs3_ftruncate_rsp gfs3_ftruncate_rsp;  struct gfs3_fstat_req {  	char gfid[16];  	quad_t fd; +	struct { +		u_int xdata_len; +		char *xdata_val; +	} xdata;  };  typedef struct gfs3_fstat_req gfs3_fstat_req; @@ -637,6 +873,10 @@ struct gfs3_fstat_rsp {  	int op_ret;  	int op_errno;  	struct gf_iatt stat; +	struct { +		u_int xdata_len; +		char *xdata_val; +	} xdata;  };  typedef struct gfs3_fstat_rsp gfs3_fstat_rsp; @@ -648,6 +888,10 @@ struct gfs3_entrylk_req {  	char *path;  	char *name;  	char *volume; +	struct { +		u_int xdata_len; +		char *xdata_val; +	} xdata;  };  typedef struct gfs3_entrylk_req gfs3_entrylk_req; @@ -659,6 +903,10 @@ struct gfs3_fentrylk_req {  	u_quad_t namelen;  	char *name;  	char *volume; +	struct { +		u_int xdata_len; +		char *xdata_val; +	} xdata;  };  typedef struct gfs3_fentrylk_req gfs3_fentrylk_req; @@ -667,6 +915,10 @@ struct gfs3_setattr_req {  	struct gf_iatt stbuf;  	int valid;  	char *path; +	struct { +		u_int xdata_len; +		char *xdata_val; +	} xdata;  };  typedef struct gfs3_setattr_req gfs3_setattr_req; @@ -675,6 +927,10 @@ struct gfs3_setattr_rsp {  	int op_errno;  	struct gf_iatt statpre;  	struct gf_iatt statpost; +	struct { +		u_int xdata_len; +		char *xdata_val; +	} xdata;  };  typedef struct gfs3_setattr_rsp gfs3_setattr_rsp; @@ -682,6 +938,10 @@ struct gfs3_fsetattr_req {  	quad_t fd;  	struct gf_iatt stbuf;  	int valid; +	struct { +		u_int xdata_len; +		char *xdata_val; +	} xdata;  };  typedef struct gfs3_fsetattr_req gfs3_fsetattr_req; @@ -690,6 +950,10 @@ struct gfs3_fsetattr_rsp {  	int op_errno;  	struct gf_iatt statpre;  	struct gf_iatt statpost; +	struct { +		u_int xdata_len; +		char *xdata_val; +	} xdata;  };  typedef struct gfs3_fsetattr_rsp gfs3_fsetattr_rsp; @@ -697,6 +961,10 @@ struct gfs3_rchecksum_req {  	quad_t fd;  	u_quad_t offset;  	u_int len; +	struct { +		u_int xdata_len; +		char *xdata_val; +	} xdata;  };  typedef struct gfs3_rchecksum_req gfs3_rchecksum_req; @@ -708,12 +976,20 @@ struct gfs3_rchecksum_rsp {  		u_int strong_checksum_len;  		char *strong_checksum_val;  	} strong_checksum; +	struct { +		u_int xdata_len; +		char *xdata_val; +	} xdata;  };  typedef struct gfs3_rchecksum_rsp gfs3_rchecksum_rsp;  struct gf_getspec_req {  	u_int flags;  	char *key; +	struct { +		u_int xdata_len; +		char *xdata_val; +	} xdata;  };  typedef struct gf_getspec_req gf_getspec_req; @@ -721,6 +997,10 @@ struct gf_getspec_rsp {  	int op_ret;  	int op_errno;  	char *spec; +	struct { +		u_int xdata_len; +		char *xdata_val; +	} xdata;  };  typedef struct gf_getspec_rsp gf_getspec_rsp; @@ -735,6 +1015,10 @@ typedef struct gf_log_req gf_log_req;  struct gf_notify_req {  	u_int flags;  	char *buf; +	struct { +		u_int xdata_len; +		char *xdata_val; +	} xdata;  };  typedef struct gf_notify_req gf_notify_req; @@ -743,24 +1027,40 @@ struct gf_notify_rsp {  	int op_errno;  	u_int flags;  	char *buf; +	struct { +		u_int xdata_len; +		char *xdata_val; +	} xdata;  };  typedef struct gf_notify_rsp gf_notify_rsp;  struct gfs3_releasedir_req {  	char gfid[16];  	quad_t fd; +	struct { +		u_int xdata_len; +		char *xdata_val; +	} xdata;  };  typedef struct gfs3_releasedir_req gfs3_releasedir_req;  struct gfs3_release_req {  	char gfid[16];  	quad_t fd; +	struct { +		u_int xdata_len; +		char *xdata_val; +	} xdata;  };  typedef struct gfs3_release_req gfs3_release_req;  struct gf_common_rsp {  	int op_ret;  	int op_errno; +	struct { +		u_int xdata_len; +		char *xdata_val; +	} xdata;  };  typedef struct gf_common_rsp gf_common_rsp; @@ -778,6 +1078,10 @@ struct gfs3_readdir_rsp {  	int op_ret;  	int op_errno;  	struct gfs3_dirlist *reply; +	struct { +		u_int xdata_len; +		char *xdata_val; +	} xdata;  };  typedef struct gfs3_readdir_rsp gfs3_readdir_rsp; @@ -800,6 +1104,10 @@ struct gfs3_readdirp_rsp {  	int op_ret;  	int op_errno;  	struct gfs3_dirplist *reply; +	struct { +		u_int xdata_len; +		char *xdata_val; +	} xdata;  };  typedef struct gfs3_readdirp_rsp gfs3_readdirp_rsp; diff --git a/rpc/xdr/src/glusterfs3-xdr.x b/rpc/xdr/src/glusterfs3-xdr.x index 88a621034d5..8f8e354a120 100644 --- a/rpc/xdr/src/glusterfs3-xdr.x +++ b/rpc/xdr/src/glusterfs3-xdr.x @@ -46,12 +46,13 @@ struct gf_iatt {  struct gfs3_stat_req {          opaque gfid[16];          string         path<>;     /* NULL terminated */ - +        opaque   xdata<>; /* Extra data */  };  struct gfs3_stat_rsp {          int    op_ret;          int    op_errno;  	struct gf_iatt stat; +        opaque   xdata<>; /* Extra data */  } ; @@ -59,12 +60,14 @@ struct gfs3_readlink_req {          opaque gfid[16];  	unsigned int   size;  	string         path<>;     /* NULL terminated */ +        opaque   xdata<>; /* Extra data */  }  ;   struct gfs3_readlink_rsp {          int    op_ret;          int    op_errno;          struct gf_iatt buf;          string      path<>; /* NULL terminated */ +        opaque   xdata<>; /* Extra data */  } ; @@ -75,6 +78,7 @@ struct gfs3_readlink_req {  	string     path<>;     /* NULL terminated */  	string     bname<>; /* NULL terminated */          opaque     dict<>; +        opaque   xdata<>; /* Extra data */  } ;   struct gfs3_mknod_rsp {          int    op_ret; @@ -82,6 +86,7 @@ struct gfs3_readlink_req {  	struct gf_iatt stat;          struct gf_iatt preparent;          struct gf_iatt postparent; +        opaque   xdata<>; /* Extra data */  }; @@ -91,6 +96,7 @@ struct gfs3_readlink_req {  	string     path<>;     /* NULL terminated */  	string     bname<>; /* NULL terminated */          opaque     dict<>; +        opaque   xdata<>; /* Extra data */  } ;   struct  gfs3_mkdir_rsp {          int    op_ret; @@ -98,6 +104,7 @@ struct gfs3_readlink_req {  	struct gf_iatt stat;          struct gf_iatt preparent;          struct gf_iatt postparent; +        opaque   xdata<>; /* Extra data */  } ; @@ -105,12 +112,14 @@ struct gfs3_readlink_req {          opaque  pargfid[16];  	string     path<>;     /* NULL terminated */  	string     bname<>; /* NULL terminated */ +        opaque   xdata<>; /* Extra data */  };   struct   gfs3_unlink_rsp {          int    op_ret;          int    op_errno;          struct gf_iatt preparent;          struct gf_iatt postparent; +        opaque   xdata<>; /* Extra data */  }; @@ -119,12 +128,14 @@ struct gfs3_readlink_req {          int        flags;  	string     path<>;  	string     bname<>; /* NULL terminated */ +        opaque   xdata<>; /* Extra data */  };   struct   gfs3_rmdir_rsp {          int    op_ret;          int    op_errno;          struct gf_iatt preparent;          struct gf_iatt postparent; +        opaque   xdata<>; /* Extra data */  }; @@ -134,6 +145,7 @@ struct gfs3_readlink_req {  	string     bname<>;  	string     linkname<>;          opaque     dict<>; +        opaque   xdata<>; /* Extra data */  };   struct  gfs3_symlink_rsp {          int    op_ret; @@ -141,6 +153,7 @@ struct gfs3_readlink_req {  	struct gf_iatt stat;          struct gf_iatt preparent;          struct gf_iatt postparent; +        opaque   xdata<>; /* Extra data */  }; @@ -151,6 +164,7 @@ struct gfs3_readlink_req {  	string       oldbname<>; /* NULL terminated */  	string       newpath<>;  	string       newbname<>; /* NULL terminated */ +        opaque   xdata<>; /* Extra data */  };   struct   gfs3_rename_rsp {          int    op_ret; @@ -160,6 +174,7 @@ struct gfs3_readlink_req {          struct gf_iatt postoldparent;          struct gf_iatt prenewparent;          struct gf_iatt postnewparent; +        opaque   xdata<>; /* Extra data */  }; @@ -169,6 +184,7 @@ struct gfs3_readlink_req {  	string       oldpath<>;  	string       newpath<>;  	string       newbname<>; +        opaque   xdata<>; /* Extra data */  };   struct   gfs3_link_rsp {          int    op_ret; @@ -176,18 +192,21 @@ struct gfs3_readlink_req {  	struct gf_iatt stat;          struct gf_iatt preparent;          struct gf_iatt postparent; +        opaque   xdata<>; /* Extra data */  };   struct   gfs3_truncate_req {          opaque gfid[16];  	unsigned hyper offset;  	string     path<>; +        opaque   xdata<>; /* Extra data */  };   struct   gfs3_truncate_rsp {          int    op_ret;          int    op_errno;  	struct gf_iatt prestat;          struct gf_iatt poststat; +        opaque   xdata<>; /* Extra data */  }; @@ -196,11 +215,13 @@ struct gfs3_readlink_req {  	unsigned int flags;          unsigned int wbflags;  	string     path<>; +        opaque   xdata<>; /* Extra data */  };   struct   gfs3_open_rsp {          int    op_ret;          int    op_errno;  	hyper fd; +        opaque   xdata<>; /* Extra data */  }; @@ -209,12 +230,14 @@ struct gfs3_readlink_req {  	hyper  fd;  	unsigned hyper offset;  	unsigned int size; +        opaque   xdata<>; /* Extra data */  };   struct  gfs3_read_rsp {          int    op_ret;          int    op_errno;  	struct gf_iatt stat;          unsigned int size; +        opaque   xdata<>; /* Extra data */  } ;  struct   gfs3_lookup_req { @@ -224,6 +247,7 @@ struct   gfs3_lookup_req {  	string     path<>;  	string     bname<>;          opaque     dict<>; +        opaque   xdata<>; /* Extra data */  };   struct   gfs3_lookup_rsp {          int    op_ret; @@ -231,6 +255,7 @@ struct   gfs3_lookup_req {  	struct gf_iatt stat;          struct gf_iatt postparent;  	opaque             dict<>; +        opaque   xdata<>; /* Extra data */  } ; @@ -240,23 +265,27 @@ struct   gfs3_lookup_req {  	hyper  fd;  	unsigned hyper offset;  	unsigned int size; +        opaque   xdata<>; /* Extra data */  };   struct gfs3_write_rsp {          int    op_ret;          int    op_errno;  	struct gf_iatt prestat;          struct gf_iatt poststat; +        opaque   xdata<>; /* Extra data */  } ;   struct gfs3_statfs_req  {          opaque gfid[16];  	string     path<>; +        opaque   xdata<>; /* Extra data */  }  ;   struct gfs3_statfs_rsp {          int    op_ret;          int    op_errno;  	struct gf_statfs statfs; +        opaque   xdata<>; /* Extra data */  }  ;   struct gfs3_lk_req { @@ -265,11 +294,13 @@ struct   gfs3_lookup_req {  	unsigned int        cmd;  	unsigned int        type;  	struct gf_proto_flock flock; +        opaque   xdata<>; /* Extra data */  }  ;   struct gfs3_lk_rsp {          int    op_ret;          int    op_errno;  	struct gf_proto_flock flock; +        opaque   xdata<>; /* Extra data */  }  ;   struct gfs3_inodelk_req { @@ -279,6 +310,7 @@ struct   gfs3_lookup_req {  	struct gf_proto_flock flock;  	string     path<>;          string     volume<>; +        opaque   xdata<>; /* Extra data */  }  ;  struct   gfs3_finodelk_req { @@ -288,12 +320,14 @@ struct   gfs3_finodelk_req {  	unsigned int type;  	struct gf_proto_flock flock;          string volume<>; +        opaque   xdata<>; /* Extra data */  } ;   struct gfs3_flush_req {          opaque gfid[16];  	hyper  fd; +        opaque   xdata<>; /* Extra data */  }  ; @@ -301,12 +335,14 @@ struct   gfs3_finodelk_req {          opaque gfid[16];  	hyper  fd;  	unsigned int data; +        opaque   xdata<>; /* Extra data */  }  ;   struct gfs3_fsync_rsp {          int    op_ret;          int    op_errno;          struct gf_iatt prestat;          struct gf_iatt poststat; +        opaque   xdata<>; /* Extra data */  }  ; @@ -315,6 +351,7 @@ struct   gfs3_finodelk_req {  	unsigned int flags;          opaque     dict<>;  	string     path<>; +        opaque   xdata<>; /* Extra data */  }  ; @@ -324,6 +361,7 @@ struct   gfs3_finodelk_req {  	hyper  fd;  	unsigned int flags;          opaque     dict<>; +        opaque   xdata<>; /* Extra data */  }  ; @@ -333,12 +371,14 @@ struct   gfs3_finodelk_req {  	unsigned int flags;          opaque     dict<>;  	string     path<>; +        opaque   xdata<>; /* Extra data */  }  ;   struct gfs3_xattrop_rsp  {          int    op_ret;          int    op_errno;  	opaque  dict<>; +        opaque   xdata<>; /* Extra data */  }  ; @@ -347,12 +387,14 @@ struct   gfs3_finodelk_req {  	hyper  fd;  	unsigned int flags;  	opaque     dict<>; +        opaque   xdata<>; /* Extra data */  }  ;   struct gfs3_fxattrop_rsp  {          int    op_ret;          int    op_errno;  	opaque  dict<>; +        opaque   xdata<>; /* Extra data */  }  ; @@ -361,11 +403,13 @@ struct   gfs3_finodelk_req {  	unsigned int namelen;  	string     path<>;  	string     name<>; +        opaque   xdata<>; /* Extra data */  }  ;   struct gfs3_getxattr_rsp {          int    op_ret;          int    op_errno;  	opaque     dict<>; +        opaque   xdata<>; /* Extra data */  }  ; @@ -374,11 +418,13 @@ struct   gfs3_finodelk_req {  	hyper  fd;          unsigned int namelen;  	string     name<>; +        opaque   xdata<>; /* Extra data */  }  ;   struct gfs3_fgetxattr_rsp {          int    op_ret;          int    op_errno;          opaque     dict<>; +        opaque   xdata<>; /* Extra data */  }  ; @@ -386,12 +432,14 @@ struct   gfs3_finodelk_req {          opaque gfid[16];  	string     path<>;  	string     name<>; +        opaque   xdata<>; /* Extra data */  }  ;   struct gfs3_fremovexattr_req {          opaque gfid[16];          hyper  fd;  	string     name<>; +        opaque   xdata<>; /* Extra data */  }  ; @@ -399,11 +447,13 @@ struct   gfs3_finodelk_req {   struct gfs3_opendir_req {          opaque gfid[16];  	string     path<>; +        opaque   xdata<>; /* Extra data */  }  ;   struct gfs3_opendir_rsp {          int    op_ret;          int    op_errno;  	hyper fd; +        opaque   xdata<>; /* Extra data */  }  ; @@ -411,6 +461,7 @@ struct   gfs3_finodelk_req {          opaque gfid[16];  	hyper  fd;  	int  data; +        opaque   xdata<>; /* Extra data */  }  ;   struct   gfs3_readdir_req  { @@ -418,6 +469,7 @@ struct   gfs3_finodelk_req {  	hyper  fd;  	unsigned hyper offset;  	unsigned int size; +        opaque   xdata<>; /* Extra data */  };   struct gfs3_readdirp_req { @@ -442,6 +494,7 @@ struct gfs3_access_req  {          opaque gfid[16];  	unsigned int mask;  	string     path<>; +        opaque   xdata<>; /* Extra data */  } ; @@ -452,6 +505,7 @@ struct gfs3_create_req {  	string     path<>;  	string     bname<>;          opaque     dict<>; +        opaque   xdata<>; /* Extra data */  }  ;  struct  gfs3_create_rsp {          int    op_ret; @@ -460,6 +514,7 @@ struct  gfs3_create_rsp {  	unsigned hyper       fd;          struct gf_iatt preparent;          struct gf_iatt postparent; +        opaque   xdata<>; /* Extra data */  } ; @@ -468,23 +523,27 @@ struct   gfs3_ftruncate_req  {          opaque gfid[16];  	hyper  fd;  	unsigned hyper offset; +        opaque   xdata<>; /* Extra data */  } ;  struct   gfs3_ftruncate_rsp {          int    op_ret;          int    op_errno;  	struct gf_iatt prestat;          struct gf_iatt poststat; +        opaque   xdata<>; /* Extra data */  } ;  struct gfs3_fstat_req {          opaque gfid[16];  	hyper  fd; +        opaque   xdata<>; /* Extra data */  }  ;   struct gfs3_fstat_rsp {          int    op_ret;          int    op_errno;  	struct gf_iatt stat; +        opaque   xdata<>; /* Extra data */  }  ; @@ -497,6 +556,7 @@ struct gfs3_fstat_req {  	string      path<>;  	string      name<>;          string      volume<>; +        opaque   xdata<>; /* Extra data */  };   struct   gfs3_fentrylk_req { @@ -507,6 +567,7 @@ struct gfs3_fstat_req {  	unsigned hyper  namelen;  	string      name<>;          string      volume<>; +        opaque   xdata<>; /* Extra data */  }; @@ -515,47 +576,55 @@ struct gfs3_fstat_req {          struct gf_iatt stbuf;          int        valid;          string           path<>; +        opaque   xdata<>; /* Extra data */  }  ;   struct gfs3_setattr_rsp {          int    op_ret;          int    op_errno;          struct gf_iatt statpre;          struct gf_iatt statpost; +        opaque   xdata<>; /* Extra data */  }  ;   struct gfs3_fsetattr_req {          hyper        fd;          struct gf_iatt stbuf;          int        valid; +        opaque   xdata<>; /* Extra data */  }  ;   struct gfs3_fsetattr_rsp {          int    op_ret;          int    op_errno;          struct gf_iatt statpre;          struct gf_iatt statpost; +        opaque   xdata<>; /* Extra data */  }  ;   struct gfs3_rchecksum_req {          hyper   fd;          unsigned hyper  offset;          unsigned int  len; +        opaque   xdata<>; /* Extra data */  }  ;   struct gfs3_rchecksum_rsp {          int    op_ret;          int    op_errno;          unsigned int weak_checksum;          opaque   strong_checksum<>; +        opaque   xdata<>; /* Extra data */  }  ;   struct gf_getspec_req {  	unsigned int flags;  	string     key<>; +        opaque   xdata<>; /* Extra data */  }  ;   struct  gf_getspec_rsp {          int    op_ret;          int    op_errno;  	string spec<>; +        opaque   xdata<>; /* Extra data */  } ; @@ -566,27 +635,32 @@ struct gfs3_fstat_req {   struct gf_notify_req {  	unsigned int  flags;          string buf<>; +        opaque   xdata<>; /* Extra data */  }  ;   struct gf_notify_rsp {          int    op_ret;          int    op_errno;  	unsigned int  flags;          string buf<>; +        opaque   xdata<>; /* Extra data */  }  ;  struct gfs3_releasedir_req {          opaque gfid[16];  	hyper  fd; +        opaque   xdata<>; /* Extra data */  }  ;  struct gfs3_release_req {          opaque gfid[16];  	hyper  fd; +        opaque   xdata<>; /* Extra data */  }  ;  struct gf_common_rsp {         int    op_ret;         int    op_errno; +        opaque   xdata<>; /* Extra data */  } ;  struct gfs3_dirlist { @@ -603,6 +677,7 @@ struct gfs3_readdir_rsp {         int op_ret;         int op_errno;         struct gfs3_dirlist *reply; +        opaque   xdata<>; /* Extra data */  };  struct gfs3_dirplist { @@ -620,5 +695,6 @@ struct gfs3_readdirp_rsp {         int op_ret;         int op_errno;         struct gfs3_dirplist *reply; +        opaque   xdata<>; /* Extra data */  };  | 
