From acd15a3a28583bd900c2defb09e1ddd66401cafe Mon Sep 17 00:00:00 2001 From: huanghua Date: Thu, 3 Aug 2006 15:39:23 +0000 Subject: [PATCH] not to overwrite client passed attr --- lustre/mdd/mdd_handler.c | 12 ++++++------ lustre/mdd/mdd_internal.h | 2 +- 2 files changed, 7 insertions(+), 7 deletions(-) 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; }; -- 1.8.3.1