Whamcloud - gitweb
Branch HEAD
authorhuanghua <huanghua>
Fri, 27 Jun 2008 04:01:01 +0000 (04:01 +0000)
committerhuanghua <huanghua>
Fri, 27 Jun 2008 04:01:01 +0000 (04:01 +0000)
b=16000
i=adilger
i=nikita.danilov

one more bit in sequence for IGIF and IDIF

lustre/fid/fid_lib.c
lustre/include/lustre/lustre_idl.h
lustre/llite/llite_fid.c

index 137868b..f0fdfd4 100644 (file)
@@ -49,9 +49,9 @@
  *
  * 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.
index 0c626dd..8f7544d 100644 (file)
@@ -219,13 +219,17 @@ static inline __u32 fid_ver(const struct lu_fid *fid)
         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.
@@ -233,7 +237,17 @@ static inline void fid_zero(struct lu_fid *fid)
  */
 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;
 }
 
 /**
index 8a4864c..4630575 100644 (file)
@@ -53,7 +53,6 @@ ino_t ll_fid_build_ino(struct ll_sb_info *sbi,
          * based on fid.
          */
         ino = fid_flatten(fid);
-        ino = ino & 0x7fffffff;
 
         if (unlikely(ino == 0))
                 /* the first result ino is 0xFFC001, so this is rarely used */