Whamcloud - gitweb
LU-2684 fid: unify ostid and FID
[fs/lustre-release.git] / lustre / include / lustre_log.h
index 2419161..e9d3f2c 100644 (file)
@@ -97,20 +97,38 @@ static inline void logid_to_fid(struct llog_logid *id, struct lu_fid *fid)
        /* 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;