Whamcloud - gitweb
LU-11868 mdc: Improve xattr buffer allocations
[fs/lustre-release.git] / lustre / mdc / mdc_locks.c
index dc42f57..2f87036 100644 (file)
@@ -812,7 +812,8 @@ static int mdc_enqueue_base(struct obd_export *exp,
 
        generation = obddev->u.cli.cl_import->imp_generation;
        if (!it || (it->it_op & (IT_OPEN | IT_CREAT)))
-               acl_bufsize = imp->imp_connect_data.ocd_max_easize;
+               acl_bufsize = MIN(imp->imp_connect_data.ocd_max_easize,
+                                 XATTR_SIZE_MAX);
        else
                acl_bufsize = LUSTRE_POSIX_ACL_MAX_SIZE_OLD;
 
@@ -934,10 +935,11 @@ resend:
 
        if ((int)lockrep->lock_policy_res2 == -ERANGE &&
            it->it_op & (IT_OPEN | IT_GETATTR | IT_LOOKUP) &&
-           acl_bufsize != imp->imp_connect_data.ocd_max_easize) {
+           acl_bufsize == LUSTRE_POSIX_ACL_MAX_SIZE_OLD) {
                mdc_clear_replay_flag(req, -ERANGE);
                ptlrpc_req_finished(req);
-               acl_bufsize = imp->imp_connect_data.ocd_max_easize;
+               acl_bufsize = MIN(imp->imp_connect_data.ocd_max_easize,
+                                 XATTR_SIZE_MAX);
                goto resend;
        }
 
@@ -1228,18 +1230,18 @@ int mdc_intent_lock(struct obd_export *exp, struct md_op_data *op_data,
 }
 
 static int mdc_intent_getattr_async_interpret(const struct lu_env *env,
-                                              struct ptlrpc_request *req,
-                                              void *args, int rc)
+                                             struct ptlrpc_request *req,
+                                             void *args, int rc)
 {
        struct mdc_getattr_args  *ga = args;
-       struct obd_export        *exp = ga->ga_exp;
-       struct md_enqueue_info   *minfo = ga->ga_minfo;
+       struct obd_export *exp = ga->ga_exp;
+       struct md_enqueue_info *minfo = ga->ga_minfo;
        struct ldlm_enqueue_info *einfo = &minfo->mi_einfo;
-       struct lookup_intent     *it;
-       struct lustre_handle     *lockh;
-       struct obd_device        *obddev;
-       struct ldlm_reply        *lockrep;
-       __u64                     flags = LDLM_FL_HAS_INTENT;
+       struct lookup_intent *it;
+       struct lustre_handle *lockh;
+       struct obd_device *obddev;
+       struct ldlm_reply *lockrep;
+       __u64 flags = LDLM_FL_HAS_INTENT;
        ENTRY;
 
         it    = &minfo->mi_it;