diff --git a/lustre/fid/fid_lib.c b/lustre/fid/fid_lib.c index 137868ba5ad8cdc8d248282068f0a9152a5f9b93..f0fdfd4b1a1abbf6343e20f28a266dd869d7255b 100644 --- a/lustre/fid/fid_lib.c +++ b/lustre/fid/fid_lib.c @@ -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. diff --git a/lustre/include/lustre/lustre_idl.h b/lustre/include/lustre/lustre_idl.h index 0c626dd7400ae98872b472499bd9bb33f83eadcc..8f7544df67476243dae456f01cb3c9867f338b8a 100644 --- a/lustre/include/lustre/lustre_idl.h +++ b/lustre/include/lustre/lustre_idl.h @@ -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; } /** diff --git a/lustre/llite/llite_fid.c b/lustre/llite/llite_fid.c index 8a4864cc5af4cf45eac93e1d548143e32859dbd9..46305759b7bb61e09aef5519ed0280889ba4ddbd 100644 --- a/lustre/llite/llite_fid.c +++ b/lustre/llite/llite_fid.c @@ -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 */