*
* Fid namespace:
* <pre>
- * Normal FID: seq:64 [2^32,2^64-1] oid:32 ver:32
- * IGIF : 0:33, ino:31 gen:32 0:32
- * IDIF : 0:32, 1:1, ost-index:15, objd:48 0:32
+ * Normal FID: seq:64 [2^33,2^64-1] oid:32 ver:32
+ * IGIF : 0:32, ino:32 gen:32 0:32
+ * IDIF : 0:31, 1:1, ost-index:16, objd:48 0:32
* </pre>
*
* The first 0x400 sequences of normal FID are reserved for special purpose.
return fid->f_ver;
}
-#define FID_SEQ_START 0x100000000ULL
-
static inline void fid_zero(struct lu_fid *fid)
{
memset(fid, 0, sizeof(*fid));
}
+/* Normal FID sequence starts from this value, i.e. 1<<33 */
+#define FID_SEQ_START 0x200000000ULL
+
+/* IDIF sequence starts from this value, i.e. 1<<32 */
+#define IDIF_SEQ_START 0x100000000ULL
+
/**
* Check if a fid is igif or not.
* \param fid the fid to be tested.
*/
static inline int fid_is_igif(const struct lu_fid *fid)
{
- return fid_seq(fid) > 0 && fid_seq(fid) < FID_SEQ_START;
+ return fid_seq(fid) > 0 && fid_seq(fid) < IDIF_SEQ_START;
+}
+
+/**
+ * Check if a fid is idif or not.
+ * \param fid the fid to be tested.
+ * \return true if the fid is a idif; otherwise false.
+ */
+static inline int fid_is_idif(const struct lu_fid *fid)
+{
+ return fid_seq(fid) >= IDIF_SEQ_START && fid_seq(fid) < FID_SEQ_START;
}
/**