/* For compatibility purposes we identify pre-OSD (~< 2.3.51 MDS)
* logid's by non-zero ogen (inode generation) and convert them
* into IGIF */
- if (id->lgl_ogen == 0) {
- fid->f_seq = id->lgl_oseq;
- fid->f_oid = id->lgl_oid;
- fid->f_ver = 0;
+ if (id->lgl_ogen == 0)
+ ostid_to_fid(fid, &id->lgl_oi, 0);
+ else
+ lu_igif_build(fid, ostid_id(&id->lgl_oi), id->lgl_ogen);
+}
+
+static inline void fid_to_logid(struct lu_fid *fid, struct llog_logid *id)
+{
+ if (fid_is_igif(fid)) {
+ /* See above lu_igif_build */
+ ostid_set_id(&id->lgl_oi, fid->f_seq);
+ id->lgl_ogen = fid->f_oid;
} else {
- lu_igif_build(fid, id->lgl_oid, id->lgl_ogen);
+ fid_to_ostid(fid, &id->lgl_oi);
+ id->lgl_ogen = 0;
}
}
-static inline void fid_to_logid(struct lu_fid *fid, struct llog_logid *id)
+static inline void logid_set_id(struct llog_logid *log_id, __u64 id)
{
- id->lgl_oseq = fid->f_seq;
- id->lgl_oid = fid->f_oid;
- id->lgl_ogen = 0;
+ if (log_id->lgl_ogen == 0)
+ ostid_set_id(&log_id->lgl_oi, id);
+ else
+ log_id->lgl_oi.oi.oi_id = id;
+}
+
+static inline __u64 logid_id(struct llog_logid *log_id)
+{
+ if (log_id->lgl_ogen == 0)
+ return ostid_id(&log_id->lgl_oi);
+ else
+ return log_id->lgl_oi.oi.oi_id;
}
struct llog_handle;