__u32 oii_gen; /* inode generation */
};
+/* OI cache entry */
struct osd_idmap_cache {
struct lu_fid oic_fid;
struct osd_inode_id oic_lid;
struct osd_device *oic_dev;
+ __u16 oic_remote:1; /* FID isn't local */
};
static inline void osd_id_pack(struct osd_inode_id *tgt,
};
int osd_oi_mod_init(void);
-int osd_oi_init(struct osd_thread_info *info, struct osd_device *osd);
+int osd_oi_init(struct osd_thread_info *info, struct osd_device *osd,
+ bool restored);
void osd_oi_fini(struct osd_thread_info *info, struct osd_device *osd);
int osd_oi_lookup(struct osd_thread_info *info, struct osd_device *osd,
const struct lu_fid *fid, struct osd_inode_id *id,
enum oi_check_flags flags);
int osd_oi_insert(struct osd_thread_info *info, struct osd_device *osd,
const struct lu_fid *fid, const struct osd_inode_id *id,
- handle_t *th, enum oi_check_flags flags);
+ handle_t *th, enum oi_check_flags flags, bool *exist);
int osd_oi_delete(struct osd_thread_info *info,
struct osd_device *osd, const struct lu_fid *fid,
handle_t *th, enum oi_check_flags flags);