+int
+lustre_dissect_struct_lquota_id(tvbuff_t *tvb _U_, int offset _U_,
+ packet_info *pinfo _U_,
+ proto_tree *parent_tree _U_,
+ int hf_index _U_)
+{
+ proto_item *item = NULL;
+ proto_tree *tree = NULL;
+ int old_offset;
+
+ old_offset=offset;
+
+ if (parent_tree) {
+ item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
+ tree = proto_item_add_subtree(item, ett_lustre_lquota_id);
+ }
+
+ offset=lustre_dissect_struct_lu_fid(tvb,offset,pinfo,tree,hf_lustre_qid_fid);
+ offset=dissect_uint64(tvb, offset, pinfo, tree, hf_lustre_qid_uid);
+ offset=dissect_uint64(tvb, offset, pinfo, tree, hf_lustre_qid_gid);
+
+ if (item)
+ proto_item_set_len(item, offset-old_offset);
+ return offset;
+}
+
+int
+lustre_dissect_struct_quota_body(tvbuff_t *tvb _U_, int offset _U_,
+ packet_info *pinfo _U_,
+ proto_tree *parent_tree _U_,
+ int hf_index _U_, guint32 buf_num)
+{
+ proto_item *item = NULL;
+ proto_tree *tree = NULL;
+ int old_offset;
+ int data_len;
+
+ old_offset=offset;
+
+ data_len = LUSTRE_BUFFER_LEN(buf_num);
+ if (data_len == 0)
+ return offset;
+
+ if (parent_tree) {
+ item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
+ tree = proto_item_add_subtree(item, ett_lustre_quota_body);
+ }
+
+ offset = lustre_dissect_struct_lu_fid(tvb, offset, pinfo, tree, hf_lustre_qb_fid);
+ offset = lustre_dissect_struct_lquota_id(tvb, offset, pinfo, tree, hf_lustre_qb_id);
+ offset = dissect_uint32(tvb, offset, pinfo, tree, hf_lustre_qb_flags);
+ offset = dissect_uint32(tvb, offset, pinfo, tree, hf_lustre_qb_padding);
+ offset = dissect_uint64(tvb, offset, pinfo, tree, hf_lustre_qb_count);
+ offset = dissect_uint64(tvb, offset, pinfo, tree, hf_lustre_qb_usage);
+ offset = dissect_uint64(tvb, offset, pinfo, tree, hf_lustre_qb_slv_ver);
+ offset = lustre_dissect_struct_handle_cookie(tvb, offset, pinfo, tree,
+ hf_lustre_qb_lockh);
+ offset = lustre_dissect_struct_handle_cookie(tvb, offset, pinfo, tree,
+ hf_lustre_qb_glb_lockh);
+ offset = lustre_dissect_struct_element_data(tvb, offset, pinfo, tree,
+ hf_lustre_qb_padding, 32);
+ if (item)
+ proto_item_set_len(item, offset-old_offset);
+ return offset;
+}
+
+int
+lustre_dissect_struct_layout_intent(tvbuff_t *tvb _U_, int offset _U_,
+ packet_info *pinfo _U_,
+ proto_tree *parent_tree _U_,
+ int hf_index _U_, guint32 buf_num)
+{
+ proto_item *item = NULL;
+ proto_tree *tree = NULL;
+ int old_offset;
+ int data_len;
+
+ old_offset=offset;
+
+ data_len = LUSTRE_BUFFER_LEN(buf_num);
+ if (data_len == 0)
+ return offset;
+
+ if (parent_tree) {
+ item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
+ tree = proto_item_add_subtree(item, ett_lustre_layout_intent);
+ }
+
+ offset = dissect_uint32(tvb, offset, pinfo, tree, hf_lustre_layout_intent_opc);
+ offset = dissect_uint32(tvb, offset, pinfo, tree, hf_lustre_layout_intent_flags);
+ offset = dissect_uint64(tvb, offset, pinfo, tree, hf_lustre_layout_intent_start);
+ offset = dissect_uint64(tvb, offset, pinfo, tree, hf_lustre_layout_intent_end);
+ if (item)
+ proto_item_set_len(item, offset-old_offset);
+ return offset;
+}