X-Git-Url: https://git.whamcloud.com/?a=blobdiff_plain;f=lustre%2Fmdd%2Fmdd_object.c;h=a6f92977f1181db73eea94808934a868218d8372;hb=e6b8e3a86b1a31fec97555de7c557470ed26492a;hp=9f0f8c235705dffa35ef1076ddff094fedd5f599;hpb=4df63615669a69b51c752cc4e416f705f8a56197;p=fs%2Flustre-release.git diff --git a/lustre/mdd/mdd_object.c b/lustre/mdd/mdd_object.c index 9f0f8c2..a6f9297 100644 --- a/lustre/mdd/mdd_object.c +++ b/lustre/mdd/mdd_object.c @@ -1849,6 +1849,7 @@ static int mdd_dir_page_build(const struct lu_env *env, union lu_page *lp, __u64 hash = 0; struct lu_dirent *ent; struct lu_dirent *last = NULL; + struct lu_fid fid; int first = 1; memset(area, 0, sizeof (*dp)); @@ -1885,6 +1886,12 @@ static int mdd_dir_page_build(const struct lu_env *env, union lu_page *lp, /* osd might not able to pack all attributes, * so recheck rec length */ recsize = le16_to_cpu(ent->lde_reclen); + + if (le32_to_cpu(ent->lde_attrs) & LUDA_FID) { + fid_le_to_cpu(&fid, &ent->lde_fid); + if (fid_is_dot_lustre(&fid)) + goto next; + } } else { result = (last != NULL) ? 0 :-EINVAL; goto out;