diff options
Diffstat (limited to 'rpc/xdr/src/glusterfs4-xdr.x')
-rw-r--r-- | rpc/xdr/src/glusterfs4-xdr.x | 801 |
1 files changed, 776 insertions, 25 deletions
diff --git a/rpc/xdr/src/glusterfs4-xdr.x b/rpc/xdr/src/glusterfs4-xdr.x index 9e3223b58b5..bf92c8db9de 100644 --- a/rpc/xdr/src/glusterfs4-xdr.x +++ b/rpc/xdr/src/glusterfs4-xdr.x @@ -16,6 +16,36 @@ %#include "glusterfs3-xdr.h" +/* Need to consume iattx and new dict in all the fops */ +struct gfx_iattx { + opaque ia_gfid[16]; + + unsigned hyper ia_flags; + unsigned hyper ia_ino; /* inode number */ + unsigned hyper ia_dev; /* backing device ID */ + unsigned hyper ia_rdev; /* device ID (if special file) */ + unsigned hyper ia_size; /* file size in bytes */ + unsigned hyper ia_blocks; /* number of 512B blocks allocated */ + unsigned hyper ia_attributes; /* chattr related:compressed, immutable, + * append only, encrypted etc.*/ + unsigned hyper ia_attributes_mask; /* Mask for the attributes */ + + hyper ia_atime; /* last access time */ + hyper ia_mtime; /* last modification time */ + hyper ia_ctime; /* last status change time */ + hyper ia_btime; /* creation time. Fill using statx */ + + unsigned int ia_atime_nsec; + unsigned int ia_mtime_nsec; + unsigned int ia_ctime_nsec; + unsigned int ia_btime_nsec; + unsigned int ia_nlink; /* Link count */ + unsigned int ia_uid; /* user ID of owner */ + unsigned int ia_gid; /* group ID of owner */ + unsigned int ia_blksize; /* blocksize for filesystem I/O */ + unsigned int mode; /* type of file and rwx mode */ +}; + union gfx_value switch (gf_dict_data_type_t type) { case GF_DATA_TYPE_INT: hyper value_int; @@ -26,9 +56,9 @@ union gfx_value switch (gf_dict_data_type_t type) { case GF_DATA_TYPE_STR: opaque val_string<>; case GF_DATA_TYPE_IATT: - gf_iatt iatt; + gfx_iattx iatt; case GF_DATA_TYPE_GFUUID: - opaque uuid[20]; + opaque uuid[16]; case GF_DATA_TYPE_PTR: opaque other<>; }; @@ -64,52 +94,773 @@ struct gfx_dict_pair { }; struct gfx_dict { - unsigned int count; + unsigned int xdr_size; + int count; gfx_dict_pair pairs<>; }; -/* fops */ - struct gfs3_fsetattr_req_v2 { +/* FOPS */ +struct gfx_common_rsp { + int op_ret; + int op_errno; + gfx_dict xdata; /* Extra data */ +}; + +struct gfx_common_iatt_rsp { + int op_ret; + int op_errno; + gfx_dict xdata; + gfx_iattx stat; +}; + +struct gfx_common_2iatt_rsp { + int op_ret; + int op_errno; + gfx_dict xdata; + gfx_iattx prestat; + gfx_iattx poststat; +}; + +struct gfx_common_3iatt_rsp { + int op_ret; + int op_errno; + gfx_dict xdata; /* Extra data */ + gfx_iattx stat; + gfx_iattx preparent; + gfx_iattx postparent; +}; + +struct gfx_fsetattr_req { opaque gfid[16]; hyper fd; - struct gf_iatt stbuf; + gfx_iattx stbuf; int valid; - opaque xdata<>; /* Extra data */ -} ; + gfx_dict xdata; /* Extra data */ +}; - struct gfs3_rchecksum_req_v2 { +struct gfx_rchecksum_req { opaque gfid[16]; hyper fd; unsigned hyper offset; unsigned int len; - opaque xdata<>; /* Extra data */ + unsigned int flags; + gfx_dict xdata; /* Extra data */ +}; + +struct gfx_icreate_req { + opaque gfid[16]; + unsigned int mode; + gfx_dict xdata; +}; + +struct gfx_namelink_req { + opaque pargfid[16]; + string bname<>; + gfx_dict xdata; +}; + +/* Define every fops */ +/* Changes from Version 3: + 1. Dict has its own type instead of being opaque + 2. Iattx instead of iatt on wire + 3. gfid has 4 extra bytes so it can be used for future +*/ +struct gfx_stat_req { + opaque gfid[16]; + gfx_dict xdata; +}; + +struct gfx_readlink_req { + opaque gfid[16]; + unsigned int size; + gfx_dict xdata; /* Extra data */ +}; + +struct gfx_readlink_rsp { + int op_ret; + int op_errno; + gfx_dict xdata; /* Extra data */ + gfx_iattx buf; + string path<>; /* NULL terminated */ +}; + +struct gfx_mknod_req { + opaque pargfid[16]; + u_quad_t dev; + unsigned int mode; + unsigned int umask; + string bname<>; /* NULL terminated */ + gfx_dict xdata; /* Extra data */ +}; + +struct gfx_mkdir_req { + opaque pargfid[16]; + unsigned int mode; + unsigned int umask; + string bname<>; /* NULL terminated */ + gfx_dict xdata; /* Extra data */ +}; + +struct gfx_unlink_req { + opaque pargfid[16]; + string bname<>; /* NULL terminated */ + unsigned int xflags; + gfx_dict xdata; /* Extra data */ +}; + + +struct gfx_rmdir_req { + opaque pargfid[16]; + int xflags; + string bname<>; /* NULL terminated */ + gfx_dict xdata; /* Extra data */ +}; + +struct gfx_symlink_req { + opaque pargfid[16]; + string bname<>; + unsigned int umask; + string linkname<>; + gfx_dict xdata; /* Extra data */ +}; + +struct gfx_rename_req { + opaque oldgfid[16]; + opaque newgfid[16]; + string oldbname<>; /* NULL terminated */ + string newbname<>; /* NULL terminated */ + gfx_dict xdata; /* Extra data */ +}; + +struct gfx_rename_rsp { + int op_ret; + int op_errno; + gfx_dict xdata; /* Extra data */ + gfx_iattx stat; + gfx_iattx preoldparent; + gfx_iattx postoldparent; + gfx_iattx prenewparent; + gfx_iattx postnewparent; +}; + + + struct gfx_link_req { + opaque oldgfid[16]; + opaque newgfid[16]; + string newbname<>; + gfx_dict xdata; /* Extra data */ +}; + + struct gfx_truncate_req { + opaque gfid[16]; + u_quad_t offset; + gfx_dict xdata; /* Extra data */ +}; + + struct gfx_open_req { + opaque gfid[16]; + unsigned int flags; + gfx_dict xdata; /* Extra data */ +}; + +struct gfx_open_rsp { + int op_ret; + int op_errno; + gfx_dict xdata; /* Extra data */ + quad_t fd; +}; + +struct gfx_opendir_req { + opaque gfid[16]; + gfx_dict xdata; /* Extra data */ +} ; + + + struct gfx_read_req { + opaque gfid[16]; + quad_t fd; + u_quad_t offset; + unsigned int size; + unsigned int flag; + gfx_dict xdata; /* Extra data */ +}; + struct gfx_read_rsp { + int op_ret; + int op_errno; + gfx_iattx stat; + unsigned int size; + gfx_dict xdata; /* Extra data */ +} ; + +struct gfx_lookup_req { + opaque gfid[16]; + opaque pargfid[16]; + unsigned int flags; + string bname<>; + gfx_dict xdata; /* Extra data */ +}; + + + struct gfx_write_req { + opaque gfid[16]; + quad_t fd; + u_quad_t offset; + unsigned int size; + unsigned int flag; + gfx_dict xdata; /* Extra data */ +}; + + struct gfx_statfs_req { + opaque gfid[16]; + gfx_dict xdata; /* Extra data */ +} ; + struct gfx_statfs_rsp { + int op_ret; + int op_errno; + gfx_dict xdata; /* Extra data */ + gf_statfs statfs; +} ; + + struct gfx_lk_req { + opaque gfid[16]; + int64_t fd; + unsigned int cmd; + unsigned int type; + gf_proto_flock flock; + gfx_dict xdata; /* Extra data */ +} ; + struct gfx_lk_rsp { + int op_ret; + int op_errno; + gfx_dict xdata; /* Extra data */ + gf_proto_flock flock; +} ; + +struct gfx_lease_req { + opaque gfid[16]; + gf_proto_lease lease; + gfx_dict xdata; /* Extra data */ +} ; + +struct gfx_lease_rsp { + int op_ret; + int op_errno; + gfx_dict xdata; /* Extra data */ + gf_proto_lease lease; +} ; + +struct gfx_recall_lease_req { + opaque gfid[16]; + unsigned int lease_type; + opaque tid[16]; + gfx_dict xdata; /* Extra data */ +} ; + + struct gfx_inodelk_req { + opaque gfid[16]; + unsigned int cmd; + unsigned int type; + gf_proto_flock flock; + string volume<>; + gfx_dict xdata; /* Extra data */ +} ; + +struct gfx_finodelk_req { + opaque gfid[16]; + quad_t fd; + unsigned int cmd; + unsigned int type; + gf_proto_flock flock; + string volume<>; + gfx_dict xdata; /* Extra data */ +} ; + + + struct gfx_flush_req { + opaque gfid[16]; + quad_t fd; + gfx_dict xdata; /* Extra data */ +} ; + + + struct gfx_fsync_req { + opaque gfid[16]; + quad_t fd; + unsigned int data; + gfx_dict xdata; /* Extra data */ +} ; + + struct gfx_setxattr_req { + opaque gfid[16]; + unsigned int flags; + gfx_dict dict; + gfx_dict xdata; /* Extra data */ +} ; + + + + struct gfx_fsetxattr_req { + opaque gfid[16]; + int64_t fd; + unsigned int flags; + gfx_dict dict; + gfx_dict xdata; /* Extra data */ +} ; + + + + struct gfx_xattrop_req { + opaque gfid[16]; + unsigned int flags; + gfx_dict dict; + gfx_dict xdata; /* Extra data */ } ; -struct gfs4_icreate_rsp { +struct gfx_common_dict_rsp { + int op_ret; + int op_errno; + gfx_dict xdata; /* Extra data */ + gfx_dict dict; + gfx_iattx prestat; + gfx_iattx poststat; +}; + + + struct gfx_fxattrop_req { + opaque gfid[16]; + quad_t fd; + unsigned int flags; + gfx_dict dict; + gfx_dict xdata; /* Extra data */ +} ; + + struct gfx_getxattr_req { + opaque gfid[16]; + unsigned int namelen; + string name<>; + gfx_dict xdata; /* Extra data */ +} ; + + + struct gfx_fgetxattr_req { + opaque gfid[16]; + quad_t fd; + unsigned int namelen; + string name<>; + gfx_dict xdata; /* Extra data */ +} ; + + struct gfx_removexattr_req { + opaque gfid[16]; + string name<>; + gfx_dict xdata; /* Extra data */ +} ; + + struct gfx_fremovexattr_req { + opaque gfid[16]; + quad_t fd; + string name<>; + gfx_dict xdata; /* Extra data */ +} ; + + + struct gfx_fsyncdir_req { + opaque gfid[16]; + quad_t fd; + int data; + gfx_dict xdata; /* Extra data */ +} ; + + struct gfx_readdir_req { + opaque gfid[16]; + quad_t fd; + u_quad_t offset; + unsigned int size; + gfx_dict xdata; /* Extra data */ +}; + + struct gfx_readdirp_req { + opaque gfid[16]; + quad_t fd; + u_quad_t offset; + unsigned int size; + gfx_dict xdata; +} ; + + +struct gfx_access_req { + opaque gfid[16]; + unsigned int mask; + gfx_dict xdata; /* Extra data */ +} ; + + +struct gfx_create_req { + opaque pargfid[16]; + unsigned int flags; + unsigned int mode; + unsigned int umask; + string bname<>; + gfx_dict xdata; /* Extra data */ +} ; +struct gfx_create_rsp { + int op_ret; + int op_errno; + gfx_dict xdata; /* Extra data */ + gfx_iattx stat; + u_quad_t fd; + gfx_iattx preparent; + gfx_iattx postparent; +} ; + +struct gfx_ftruncate_req { + opaque gfid[16]; + quad_t fd; + u_quad_t offset; + gfx_dict xdata; /* Extra data */ +} ; + + +struct gfx_fstat_req { + opaque gfid[16]; + quad_t fd; + gfx_dict xdata; /* Extra data */ +} ; + + +struct gfx_entrylk_req { + opaque gfid[16]; + unsigned int cmd; + unsigned int type; + u_quad_t namelen; + string name<>; + string volume<>; + gfx_dict xdata; /* Extra data */ +}; + +struct gfx_fentrylk_req { + opaque gfid[16]; + quad_t fd; + unsigned int cmd; + unsigned int type; + u_quad_t namelen; + string name<>; + string volume<>; + gfx_dict xdata; /* Extra data */ +}; + + struct gfx_setattr_req { + opaque gfid[16]; + gfx_iattx stbuf; + int valid; + gfx_dict xdata; /* Extra data */ +} ; + + struct gfx_fallocate_req { + opaque gfid[16]; + quad_t fd; + unsigned int flags; + u_quad_t offset; + u_quad_t size; + gfx_dict xdata; /* Extra data */ +} ; + +struct gfx_discard_req { + opaque gfid[16]; + quad_t fd; + u_quad_t offset; + u_quad_t size; + gfx_dict xdata; /* Extra data */ +} ; + +struct gfx_zerofill_req { + opaque gfid[16]; + quad_t fd; + u_quad_t offset; + u_quad_t size; + gfx_dict xdata; +} ; + +struct gfx_rchecksum_rsp { + int op_ret; + int op_errno; + gfx_dict xdata; /* Extra data */ + unsigned int flags; + unsigned int weak_checksum; + opaque strong_checksum<>; +} ; + + +struct gfx_ipc_req { + int op; + gfx_dict xdata; +}; + + +struct gfx_seek_req { + opaque gfid[16]; + quad_t fd; + u_quad_t offset; + int what; + gfx_dict xdata; +}; + +struct gfx_seek_rsp { + int op_ret; + int op_errno; + gfx_dict xdata; + u_quad_t offset; +}; + + + struct gfx_setvolume_req { + gfx_dict dict; +} ; + struct gfx_setvolume_rsp { + int op_ret; + int op_errno; + gfx_dict dict; +} ; + + + struct gfx_getspec_req { + unsigned int flags; + string key<>; + gfx_dict xdata; /* Extra data */ +} ; + struct gfx_getspec_rsp { + int op_ret; + int op_errno; + string spec<>; + gfx_dict xdata; /* Extra data */ +} ; + + + struct gfx_notify_req { + unsigned int flags; + string buf<>; + gfx_dict xdata; /* Extra data */ +} ; + struct gfx_notify_rsp { + int op_ret; + int op_errno; + unsigned int flags; + string buf<>; + gfx_dict xdata; /* Extra data */ +} ; + +struct gfx_releasedir_req { + opaque gfid[16]; + quad_t fd; + gfx_dict xdata; /* Extra data */ +} ; + +struct gfx_release_req { + opaque gfid[16]; + quad_t fd; + gfx_dict xdata; /* Extra data */ +} ; + +struct gfx_dirlist { + u_quad_t d_ino; + u_quad_t d_off; + unsigned int d_len; + unsigned int d_type; + string name<>; + gfx_dirlist *nextentry; +}; + + +struct gfx_readdir_rsp { int op_ret; int op_errno; - gf_iatt stat; - opaque xdata<>; + gfx_dict xdata; /* Extra data */ + gfx_dirlist *reply; }; -struct gfs4_icreate_req { - opaque gfid[16]; - unsigned int mode; - opaque xdata<>; +struct gfx_dirplist { + u_quad_t d_ino; + u_quad_t d_off; + unsigned int d_len; + unsigned int d_type; + string name<>; + gfx_iattx stat; + gfx_dict dict; + gfx_dirplist *nextentry; }; -struct gfs4_namelink_rsp { +struct gfx_readdirp_rsp { int op_ret; int op_errno; - gf_iatt preparent; - gf_iatt postparent; - opaque xdata<>; + gfx_dict xdata; /* Extra data */ + gfx_dirplist *reply; }; -struct gfs4_namelink_req { - opaque pargfid[16]; - string bname<>; - opaque xdata<>; +struct gfx_set_lk_ver_rsp { + int op_ret; + int op_errno; + gfx_dict xdata; + int lk_ver; +}; + +struct gfx_set_lk_ver_req { + string uid<>; + int lk_ver; +}; + +struct gfx_event_notify_req { + int op; + gfx_dict dict; +}; + + +struct gfx_getsnap_name_uuid_req { + gfx_dict dict; +}; + +struct gfx_getsnap_name_uuid_rsp { + int op_ret; + int op_errno; + gfx_dict dict; + string op_errstr<>; +}; + +struct gfx_getactivelk_rsp { + int op_ret; + int op_errno; + gfx_dict xdata; + gfs3_locklist *reply; +}; + +struct gfx_getactivelk_req { + opaque gfid[16]; + gfx_dict xdata; +}; + +struct gfx_setactivelk_req { + opaque gfid[16]; + gfs3_locklist *request; + gfx_dict xdata; +}; + +union compound_req_v2 switch (glusterfs_fop_t fop_enum) { + case GF_FOP_STAT: gfx_stat_req compound_stat_req; + case GF_FOP_READLINK: gfx_readlink_req compound_readlink_req; + case GF_FOP_MKNOD: gfx_mknod_req compound_mknod_req; + case GF_FOP_MKDIR: gfx_mkdir_req compound_mkdir_req; + case GF_FOP_UNLINK: gfx_unlink_req compound_unlink_req; + case GF_FOP_RMDIR: gfx_rmdir_req compound_rmdir_req; + case GF_FOP_SYMLINK: gfx_symlink_req compound_symlink_req; + case GF_FOP_RENAME: gfx_rename_req compound_rename_req; + case GF_FOP_LINK: gfx_link_req compound_link_req; + case GF_FOP_TRUNCATE: gfx_truncate_req compound_truncate_req; + case GF_FOP_OPEN: gfx_open_req compound_open_req; + case GF_FOP_READ: gfx_read_req compound_read_req; + case GF_FOP_WRITE: gfx_write_req compound_write_req; + case GF_FOP_STATFS: gfx_statfs_req compound_statfs_req; + case GF_FOP_FLUSH: gfx_flush_req compound_flush_req; + case GF_FOP_FSYNC: gfx_fsync_req compound_fsync_req; + case GF_FOP_GETXATTR: gfx_getxattr_req compound_getxattr_req; + case GF_FOP_SETXATTR: gfx_setxattr_req compound_setxattr_req; + case GF_FOP_REMOVEXATTR: gfx_removexattr_req compound_removexattr_req; + case GF_FOP_OPENDIR: gfx_opendir_req compound_opendir_req; + case GF_FOP_FSYNCDIR: gfx_fsyncdir_req compound_fsyncdir_req; + case GF_FOP_ACCESS: gfx_access_req compound_access_req; + case GF_FOP_CREATE: gfx_create_req compound_create_req; + case GF_FOP_FTRUNCATE: gfx_ftruncate_req compound_ftruncate_req; + case GF_FOP_FSTAT: gfx_fstat_req compound_fstat_req; + case GF_FOP_LK: gfx_lk_req compound_lk_req; + case GF_FOP_LOOKUP: gfx_lookup_req compound_lookup_req; + case GF_FOP_READDIR: gfx_readdir_req compound_readdir_req; + case GF_FOP_INODELK: gfx_inodelk_req compound_inodelk_req; + case GF_FOP_FINODELK: gfx_finodelk_req compound_finodelk_req; + case GF_FOP_ENTRYLK: gfx_entrylk_req compound_entrylk_req; + case GF_FOP_FENTRYLK: gfx_fentrylk_req compound_fentrylk_req; + case GF_FOP_XATTROP: gfx_xattrop_req compound_xattrop_req; + case GF_FOP_FXATTROP: gfx_fxattrop_req compound_fxattrop_req; + case GF_FOP_FGETXATTR: gfx_fgetxattr_req compound_fgetxattr_req; + case GF_FOP_FSETXATTR: gfx_fsetxattr_req compound_fsetxattr_req; + case GF_FOP_RCHECKSUM: gfx_rchecksum_req compound_rchecksum_req; + case GF_FOP_SETATTR: gfx_setattr_req compound_setattr_req; + case GF_FOP_FSETATTR: gfx_fsetattr_req compound_fsetattr_req; + case GF_FOP_READDIRP: gfx_readdirp_req compound_readdirp_req; + case GF_FOP_RELEASE: gfx_release_req compound_release_req; + case GF_FOP_RELEASEDIR: gfx_releasedir_req compound_releasedir_req; + case GF_FOP_FREMOVEXATTR: gfx_fremovexattr_req compound_fremovexattr_req; + case GF_FOP_FALLOCATE: gfx_fallocate_req compound_fallocate_req; + case GF_FOP_DISCARD: gfx_discard_req compound_discard_req; + case GF_FOP_ZEROFILL: gfx_zerofill_req compound_zerofill_req; + case GF_FOP_IPC: gfx_ipc_req compound_ipc_req; + case GF_FOP_SEEK: gfx_seek_req compound_seek_req; + case GF_FOP_LEASE: gfx_lease_req compound_lease_req; + default: void; +}; + +struct gfx_compound_req { + int compound_version; + glusterfs_compound_fop_t compound_fop_enum; + compound_req_v2 compound_req_array<>; + gfx_dict xdata; +}; + +union compound_rsp_v2 switch (glusterfs_fop_t fop_enum) { + case GF_FOP_STAT: gfx_common_iatt_rsp compound_stat_rsp; + case GF_FOP_READLINK: gfx_readlink_rsp compound_readlink_rsp; + case GF_FOP_MKNOD: gfx_common_3iatt_rsp compound_mknod_rsp; + case GF_FOP_MKDIR: gfx_common_3iatt_rsp compound_mkdir_rsp; + case GF_FOP_UNLINK: gfx_common_2iatt_rsp compound_unlink_rsp; + case GF_FOP_RMDIR: gfx_common_2iatt_rsp compound_rmdir_rsp; + case GF_FOP_SYMLINK: gfx_common_3iatt_rsp compound_symlink_rsp; + case GF_FOP_RENAME: gfx_rename_rsp compound_rename_rsp; + case GF_FOP_LINK: gfx_common_3iatt_rsp compound_link_rsp; + case GF_FOP_TRUNCATE: gfx_common_2iatt_rsp compound_truncate_rsp; + case GF_FOP_OPEN: gfx_open_rsp compound_open_rsp; + case GF_FOP_READ: gfx_read_rsp compound_read_rsp; + case GF_FOP_WRITE: gfx_common_2iatt_rsp compound_write_rsp; + case GF_FOP_STATFS: gfx_statfs_rsp compound_statfs_rsp; + case GF_FOP_FLUSH: gfx_common_rsp compound_flush_rsp; + case GF_FOP_FSYNC: gfx_common_2iatt_rsp compound_fsync_rsp; + case GF_FOP_GETXATTR: gfx_common_dict_rsp compound_getxattr_rsp; + case GF_FOP_SETXATTR: gfx_common_rsp compound_setxattr_rsp; + case GF_FOP_REMOVEXATTR: gfx_common_rsp compound_removexattr_rsp; + case GF_FOP_OPENDIR: gfx_open_rsp compound_opendir_rsp; + case GF_FOP_FSYNCDIR: gfx_common_rsp compound_fsyncdir_rsp; + case GF_FOP_ACCESS: gfx_common_rsp compound_access_rsp; + case GF_FOP_CREATE: gfx_create_rsp compound_create_rsp; + case GF_FOP_FTRUNCATE: gfx_common_2iatt_rsp compound_ftruncate_rsp; + case GF_FOP_FSTAT: gfx_common_iatt_rsp compound_fstat_rsp; + case GF_FOP_LK: gfx_lk_rsp compound_lk_rsp; + case GF_FOP_LOOKUP: gfx_common_2iatt_rsp compound_lookup_rsp; + case GF_FOP_READDIR: gfx_readdir_rsp compound_readdir_rsp; + case GF_FOP_INODELK: gfx_common_rsp compound_inodelk_rsp; + case GF_FOP_FINODELK: gfx_common_rsp compound_finodelk_rsp; + case GF_FOP_ENTRYLK: gfx_common_rsp compound_entrylk_rsp; + case GF_FOP_FENTRYLK: gfx_common_rsp compound_fentrylk_rsp; + case GF_FOP_XATTROP: gfx_common_dict_rsp compound_xattrop_rsp; + case GF_FOP_FXATTROP: gfx_common_dict_rsp compound_fxattrop_rsp; + case GF_FOP_FGETXATTR: gfx_common_dict_rsp compound_fgetxattr_rsp; + case GF_FOP_FSETXATTR: gfx_common_rsp compound_fsetxattr_rsp; + case GF_FOP_RCHECKSUM: gfx_rchecksum_rsp compound_rchecksum_rsp; + case GF_FOP_SETATTR: gfx_common_2iatt_rsp compound_setattr_rsp; + case GF_FOP_FSETATTR: gfx_common_2iatt_rsp compound_fsetattr_rsp; + case GF_FOP_READDIRP: gfx_readdirp_rsp compound_readdirp_rsp; + case GF_FOP_RELEASE: gfx_common_rsp compound_release_rsp; + case GF_FOP_RELEASEDIR: gfx_common_rsp compound_releasedir_rsp; + case GF_FOP_FREMOVEXATTR: gfx_common_rsp compound_fremovexattr_rsp; + case GF_FOP_FALLOCATE: gfx_common_2iatt_rsp compound_fallocate_rsp; + case GF_FOP_DISCARD: gfx_common_2iatt_rsp compound_discard_rsp; + case GF_FOP_ZEROFILL: gfx_common_2iatt_rsp compound_zerofill_rsp; + case GF_FOP_IPC: gfx_common_rsp compound_ipc_rsp; + case GF_FOP_SEEK: gfx_seek_rsp compound_seek_rsp; + case GF_FOP_LEASE: gfx_lease_rsp compound_lease_rsp; + default: void; +}; + +struct gfx_compound_rsp { + int op_ret; + int op_errno; + compound_rsp_v2 compound_rsp_array<>; + gfx_dict xdata; }; struct gfs4_inodelk_contention_req { |