From: huanghua Date: Thu, 3 Aug 2006 15:39:23 +0000 (+0000) Subject: not to overwrite client passed attr X-Git-Tag: v1_8_0_110~486^2~1287 X-Git-Url: https://git.whamcloud.com/gitweb?a=commitdiff_plain;h=acd15a3a28583bd900c2defb09e1ddd66401cafe;p=fs%2Flustre-release.git not to overwrite client passed attr --- diff --git a/lustre/mdd/mdd_handler.c b/lustre/mdd/mdd_handler.c index 3430821..4f38860 100644 --- a/lustre/mdd/mdd_handler.c +++ b/lustre/mdd/mdd_handler.c @@ -681,17 +681,17 @@ static int mdd_unlink(const struct lu_context *ctxt, struct md_object *pobj, struct mdd_object *mdd_cobj = md2mdd_obj(cobj); struct dt_object *dt_cobj = mdd_object_child(mdd_cobj); struct thandle *handle; - __u32 mode_copy = ma->ma_attr.la_mode; + struct lu_attr *la = &mdd_ctx_info(ctxt)->mti_la; int rc; ENTRY; /* sanity checks */ - rc = mdd_attr_get(ctxt, cobj, ma); + rc = dt_cobj->do_ops->do_attr_get(ctxt, dt_cobj, la); if (rc == 0) { - if (S_ISDIR(ma->ma_attr.la_mode)) { - if (!S_ISDIR(mode_copy)) + if (S_ISDIR(la->la_mode)) { + if (!S_ISDIR(ma->ma_attr.la_mode)) rc = -EISDIR; - } else if (S_ISDIR(mode_copy)) + } else if (S_ISDIR(ma->ma_attr.la_mode)) rc = -ENOTDIR; } if (rc != 0) @@ -705,7 +705,7 @@ static int mdd_unlink(const struct lu_context *ctxt, struct md_object *pobj, mdd_lock2(ctxt, mdd_pobj, mdd_cobj); /* rmdir checks */ - if (S_ISDIR(ma->ma_attr.la_mode)) { + if (S_ISDIR(la->la_mode)) { rc = mdd_dir_is_empty(ctxt, mdd_cobj); if (rc != 0) GOTO(cleanup, rc); diff --git a/lustre/mdd/mdd_internal.h b/lustre/mdd/mdd_internal.h index f24e624..0c076f3 100644 --- a/lustre/mdd/mdd_internal.h +++ b/lustre/mdd/mdd_internal.h @@ -48,7 +48,7 @@ struct mdd_object { struct mdd_thread_info { struct txn_param mti_param; struct lu_fid mti_fid; - struct lu_attr mti_attr; + struct lu_attr mti_la; struct lov_desc mti_ld; struct lov_mds_md mti_lmm; };