kill boilerplates around posix_acl_create_masq()
[pandora-kernel.git] / fs / posix_acl.c
index 0aa9f16..365a071 100644 (file)
@@ -387,6 +387,24 @@ posix_acl_chmod_masq(struct posix_acl *acl, mode_t mode)
        return 0;
 }
 
+int
+posix_acl_create(struct posix_acl **acl, gfp_t gfp, mode_t *mode_p)
+{
+       struct posix_acl *clone = posix_acl_clone(*acl, gfp);
+       int err = -ENOMEM;
+       if (clone) {
+               err = posix_acl_create_masq(clone, mode_p);
+               if (err < 0) {
+                       posix_acl_release(clone);
+                       clone = NULL;
+               }
+       }
+       posix_acl_release(*acl);
+       *acl = clone;
+       return err;
+}
+EXPORT_SYMBOL(posix_acl_create);
+
 int
 posix_acl_chmod(struct posix_acl **acl, gfp_t gfp, mode_t mode)
 {