+
+ /**
+ * The following flag indicates, if it is interop mode or not.
+ * It will be initialized, using mount param.
+ */
+ __u32 od_iop_mode;
+};
+
+/**
+ * Storage representation for fids.
+ *
+ * Variable size, first byte contains the length of the whole record.
+ */
+struct osd_fid_pack {
+ unsigned char fp_len;
+ char fp_area[sizeof(struct lu_fid)];
+};
+
+struct osd_it_ea_dirent {
+ __u64 oied_ino;
+ __u64 oied_off;
+ unsigned short oied_namelen;
+ unsigned int oied_type;
+ char oied_name[0];
+} __attribute__((packed));
+
+#define OSD_IT_EA_BUFSIZE CFS_PAGE_SIZE
+
+/**
+ * This is iterator's in-memory data structure in interoperability
+ * mode (i.e. iterator over ldiskfs style directory)
+ */
+struct osd_it_ea {
+ struct osd_object *oie_obj;
+ /** used in ldiskfs iterator, to stored file pointer */
+ struct file oie_file;
+ /** how many entries have been read-cached from storage */
+ int oie_rd_dirent;
+ /** current entry is being iterated by caller */
+ int oie_it_dirent;
+ /** current processing entry */
+ struct osd_it_ea_dirent *oie_dirent;
+ /** buffer to hold entries, size == OSD_IT_EA_BUFSIZE */
+ void *oie_buf;