+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;
+};
+
+/**
+ * Iterator's in-memory data structure for IAM mode.
+ */
+struct osd_it_iam {
+ struct osd_object *oi_obj;
+ struct iam_path_descr *oi_ipd;
+ struct iam_iterator oi_it;
+};