+#ifdef HAVE_PROJECT_QUOTA
+ if (rcg && (rcg != -EDQUOT || local_flags == NULL))
+ RETURN(rcg);
+
+ /* and now project quota */
+ qi->lqi_id.qid_projid = projid;
+ qi->lqi_type = PRJQUOTA;
+ rcp = osd_declare_qid(env, oh, qi, obj, true, local_flags);
+
+ if (local_flags && *local_flags & QUOTA_FL_ROOT_PRJQUOTA)
+ force = th->th_ignore_quota;
+ if (force && (rcp == -EDQUOT || rcp == -EINPROGRESS)) {
+ CDEBUG(D_QUOTA, "forced to ignore quota flags = %#x\n",
+ local_flags ? *local_flags : -1);
+ /* as before, ignore EDQUOT & EINPROGRESS for root */
+ rcp = 0;
+ }
+#endif
+
+ RETURN(rcu ? rcu : (rcg ? rcg : rcp));