aboutsummaryrefslogtreecommitdiffstats
path: root/fs/posix_acl.c
diff options
context:
space:
mode:
Diffstat (limited to 'fs/posix_acl.c')
-rw-r--r--fs/posix_acl.c18
1 files changed, 18 insertions, 0 deletions
diff --git a/fs/posix_acl.c b/fs/posix_acl.c
index b1cf6bf4b41d..0aa9f1676726 100644
--- a/fs/posix_acl.c
+++ b/fs/posix_acl.c
@@ -386,3 +386,21 @@ posix_acl_chmod_masq(struct posix_acl *acl, mode_t mode)
386 386
387 return 0; 387 return 0;
388} 388}
389
390int
391posix_acl_chmod(struct posix_acl **acl, gfp_t gfp, mode_t mode)
392{
393 struct posix_acl *clone = posix_acl_clone(*acl, gfp);
394 int err = -ENOMEM;
395 if (clone) {
396 err = posix_acl_chmod_masq(clone, mode);
397 if (err) {
398 posix_acl_release(clone);
399 clone = NULL;
400 }
401 }
402 posix_acl_release(*acl);
403 *acl = clone;
404 return err;
405}
406EXPORT_SYMBOL(posix_acl_chmod);