Whamcloud - gitweb
Small fix for getting ACL.
authorfanyong <fanyong>
Thu, 19 Oct 2006 14:48:13 +0000 (14:48 +0000)
committerfanyong <fanyong>
Thu, 19 Oct 2006 14:48:13 +0000 (14:48 +0000)
lustre/cmm/cmm_object.c
lustre/include/md_object.h
lustre/mdd/mdd_handler.c
lustre/mdd/mdd_permission.c

index f6ed7ea..a2086d3 100644 (file)
@@ -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
index 520ff21..e864249 100644 (file)
@@ -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;
 };
index 015e1c9..78d7d2a 100644 (file)
@@ -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);
         }
index be6ab74..793d5a8 100644 (file)
@@ -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)) {