X-Git-Url: https://git.whamcloud.com/?p=fs%2Flustre-release.git;a=blobdiff_plain;f=lustre%2Fmdd%2Fmdd_object.c;h=10fea55ae184e5f4b6a978ed222473b486311495;hp=8f8a42489b29826afcdb9235d520d12165f34ed8;hb=a77212cd13627b2b9f1835c48599e91c82aeed9d;hpb=96a5daa0c08d7b42ec368080a2a7f0dfb110ef98 diff --git a/lustre/mdd/mdd_object.c b/lustre/mdd/mdd_object.c index 8f8a424..10fea55 100644 --- a/lustre/mdd/mdd_object.c +++ b/lustre/mdd/mdd_object.c @@ -608,6 +608,14 @@ int mdd_get_default_md(struct mdd_object *mdd_obj, struct lov_mds_md *lmm) RETURN(sizeof(*lum)); } +static int is_rootdir(struct mdd_object *mdd_obj) +{ + const struct mdd_device *mdd_dev = mdd_obj2mdd_dev(mdd_obj); + const struct lu_fid *fid = mdo2fid(mdd_obj); + + return lu_fid_eq(&mdd_dev->mdd_root_fid, fid); +} + /* get lov EA only */ static int __mdd_lmm_get(const struct lu_env *env, struct mdd_object *mdd_obj, struct md_attr *ma) @@ -620,7 +628,7 @@ static int __mdd_lmm_get(const struct lu_env *env, rc = mdd_get_md(env, mdd_obj, ma->ma_lmm, &ma->ma_lmm_size, XATTR_NAME_LOV); - if (rc == 0 && (ma->ma_need & MA_LOV_DEF)) + if (rc == 0 && (ma->ma_need & MA_LOV_DEF) && is_rootdir(mdd_obj)) rc = mdd_get_default_md(mdd_obj, ma->ma_lmm); if (rc > 0) { ma->ma_lmm_size = rc;