From d2e1104c8a0c731bbbb41eb5921b8f4df657800c Mon Sep 17 00:00:00 2001 From: fanyong Date: Thu, 19 Oct 2006 14:48:13 +0000 Subject: [PATCH] Small fix for getting ACL. --- lustre/cmm/cmm_object.c | 8 ++++---- lustre/include/md_object.h | 2 ++ lustre/mdd/mdd_handler.c | 2 +- lustre/mdd/mdd_permission.c | 6 +++--- 4 files changed, 10 insertions(+), 8 deletions(-) diff --git a/lustre/cmm/cmm_object.c b/lustre/cmm/cmm_object.c index f6ed7ea..a2086d3 100644 --- a/lustre/cmm/cmm_object.c +++ b/lustre/cmm/cmm_object.c @@ -812,8 +812,8 @@ static int cmr_create(const struct lu_env *env, struct md_object *mo_p, #ifdef CONFIG_FS_POSIX_ACL if (!S_ISLNK(ma->ma_attr.la_mode)) { - tmp_ma->ma_lmv = (struct lmv_stripe_md *)cmi->cmi_xattr_buf; - tmp_ma->ma_lmv_size = sizeof(cmi->cmi_xattr_buf); + tmp_ma->ma_acl = cmi->cmi_xattr_buf; + tmp_ma->ma_acl_size = sizeof(cmi->cmi_xattr_buf); tmp_ma->ma_need |= MA_ACL_DEF; } #endif @@ -832,8 +832,8 @@ static int cmr_create(const struct lu_env *env, struct md_object *mo_p, #ifdef CONFIG_FS_POSIX_ACL if (tmp_ma->ma_valid & MA_ACL_DEF) { - spec->u.sp_ea.eadata = tmp_ma->ma_lmv; - spec->u.sp_ea.eadatalen = tmp_ma->ma_lmv_size; + spec->u.sp_ea.eadata = tmp_ma->ma_acl; + spec->u.sp_ea.eadatalen = tmp_ma->ma_acl_size; spec->sp_cr_flags |= MDS_CREATE_RMT_ACL; } #endif diff --git a/lustre/include/md_object.h b/lustre/include/md_object.h index 520ff21..e864249 100644 --- a/lustre/include/md_object.h +++ b/lustre/include/md_object.h @@ -110,6 +110,8 @@ struct md_attr { int ma_lmm_size; struct lmv_stripe_md *ma_lmv; int ma_lmv_size; + void *ma_acl; + int ma_acl_size; struct llog_cookie *ma_cookie; int ma_cookie_size; }; diff --git a/lustre/mdd/mdd_handler.c b/lustre/mdd/mdd_handler.c index 015e1c9..78d7d2a 100644 --- a/lustre/mdd/mdd_handler.c +++ b/lustre/mdd/mdd_handler.c @@ -282,7 +282,7 @@ static int mdd_attr_get_internal(const struct lu_env *env, rc = __mdd_lmv_get(env, mdd_obj, ma); } #ifdef CONFIG_FS_POSIX_ACL - else if (rc == 0 && ma->ma_need & MA_ACL_DEF) { + if (rc == 0 && ma->ma_need & MA_ACL_DEF) { if (S_ISDIR(mdd_object_type(mdd_obj))) rc = mdd_acl_def_get(env, mdd_obj, ma); } diff --git a/lustre/mdd/mdd_permission.c b/lustre/mdd/mdd_permission.c index be6ab74..793d5a8 100644 --- a/lustre/mdd/mdd_permission.c +++ b/lustre/mdd/mdd_permission.c @@ -308,11 +308,11 @@ int mdd_acl_def_get(const struct lu_env *env, struct mdd_object *mdd_obj, int rc; rc = next->do_ops->do_xattr_get(env, next, - mdd_buf_get(env, ma->ma_lmv, - ma->ma_lmv_size), + mdd_buf_get(env, ma->ma_acl, + ma->ma_acl_size), XATTR_NAME_ACL_DEFAULT, BYPASS_CAPA); if (rc > 0) { - ma->ma_lmv_size = rc; + ma->ma_acl_size = rc; ma->ma_valid |= MA_ACL_DEF; rc = 0; } else if ((rc == -EOPNOTSUPP) || (rc == -ENODATA)) { -- 1.8.3.1