Whamcloud - gitweb
LU-4973 mdd: only check links limit for non-directories
[fs/lustre-release.git] / lustre / mdd / mdd_permission.c
index da184e8..0e597ad 100644 (file)
@@ -308,7 +308,8 @@ int mdd_permission(const struct lu_env *env,
        struct lu_ucred *uc = NULL;
        struct lu_attr *pattr = NULL;
        struct lu_attr *cattr = MDD_ENV_VAR(env, cattr);
-       int check_create, check_link;
+       bool check_create;
+       bool check_link;
        int check_unlink;
        int check_rename_src, check_rename_tar;
        int check_vtx_part, check_vtx_full;
@@ -336,8 +337,8 @@ int mdd_permission(const struct lu_env *env,
        if (unlikely(mask & MDS_OPEN_CROSS))
                mask = accmode(env, cattr, mask & ~MDS_OPEN_CROSS);
 
-        check_create = mask & MAY_CREATE;
-        check_link = mask & MAY_LINK;
+       check_create = mask & MAY_CREATE;
+       check_link = mask & MAY_LINK;
         check_unlink = mask & MAY_UNLINK;
         check_rename_src = mask & MAY_RENAME_SRC;
         check_rename_tar = mask & MAY_RENAME_TAR;
@@ -354,9 +355,8 @@ int mdd_permission(const struct lu_env *env,
        rc = mdd_permission_internal_locked(env, mdd_cobj, cattr, mask,
                                        MOR_TGT_CHILD);
 
-       if (!rc && (check_create || check_link))
-               rc = mdd_may_create(env, mdd_pobj, pattr, mdd_cobj, 1,
-                               check_link);
+       if (!rc && check_create)
+               rc = mdd_may_create(env, mdd_pobj, pattr, mdd_cobj, true);
 
        if (!rc && check_unlink)
                rc = mdd_may_unlink(env, mdd_pobj, pattr, cattr);