X-Git-Url: https://git.whamcloud.com/?p=fs%2Flustre-release.git;a=blobdiff_plain;f=lustre%2Finclude%2Flustre_fid.h;h=0deb5dbec1f9ba67a0013e22212c9720fdde3863;hp=539e8293e233f1ba06b7937fc0644a73ef154b53;hb=79d06b6fac3d18f2e5755a940e8afa42e70f3ba2;hpb=bad2b3e71c887d58d7834f5e4187c29e36c4b1ab diff --git a/lustre/include/lustre_fid.h b/lustre/include/lustre_fid.h index 539e829..0deb5db 100644 --- a/lustre/include/lustre_fid.h +++ b/lustre/include/lustre_fid.h @@ -249,10 +249,13 @@ static inline void lu_local_name_obj_fid(struct lu_fid *fid, __u32 oid) fid->f_ver = 0; } +/* For new FS (>= 2.4), the root FID will be changed to + * [FID_SEQ_ROOT:1:0], for existing FS, (upgraded to 2.4), + * the root FID will still be IGIF */ static inline int fid_is_root(const struct lu_fid *fid) { - return unlikely(fid_seq(fid) == FID_SEQ_LOCAL_FILE && - fid_oid(fid) == MDD_ROOT_INDEX_OID); + return unlikely((fid_seq(fid) == FID_SEQ_ROOT && + fid_oid(fid) == 1)); } static inline int fid_is_dot_lustre(const struct lu_fid *fid) @@ -296,6 +299,12 @@ static inline int fid_is_client_visible(const struct lu_fid *fid) return fid_is_client_mdt_visible(fid) || fid_is_idif(fid); } +static inline int fid_seq_in_fldb(__u64 seq) +{ + return fid_seq_is_igif(seq) || fid_seq_is_norm(seq) || + seq == FID_SEQ_ROOT; +} + static inline void lu_last_id_fid(struct lu_fid *fid, __u64 seq) { if (fid_seq_is_mdt0(seq)) {