summaryrefslogtreecommitdiffstats
path: root/fs
diff options
context:
space:
mode:
Diffstat (limited to 'fs')
-rw-r--r--fs/overlayfs/super.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/fs/overlayfs/super.c b/fs/overlayfs/super.c
index 346f668e7df0..7b2188181367 100644
--- a/fs/overlayfs/super.c
+++ b/fs/overlayfs/super.c
@@ -721,6 +721,7 @@ static int ovl_fill_super(struct super_block *sb, void *data, int silent)
721 unsigned int stacklen = 0; 721 unsigned int stacklen = 0;
722 unsigned int i; 722 unsigned int i;
723 bool remote = false; 723 bool remote = false;
724 struct cred *cred;
724 int err; 725 int err;
725 726
726 err = -ENOMEM; 727 err = -ENOMEM;
@@ -901,10 +902,13 @@ static int ovl_fill_super(struct super_block *sb, void *data, int silent)
901 else 902 else
902 sb->s_d_op = &ovl_dentry_operations; 903 sb->s_d_op = &ovl_dentry_operations;
903 904
904 ufs->creator_cred = prepare_creds(); 905 ufs->creator_cred = cred = prepare_creds();
905 if (!ufs->creator_cred) 906 if (!cred)
906 goto out_put_lower_mnt; 907 goto out_put_lower_mnt;
907 908
909 /* Never override disk quota limits or use reserved space */
910 cap_lower(cred->cap_effective, CAP_SYS_RESOURCE);
911
908 err = -ENOMEM; 912 err = -ENOMEM;
909 oe = ovl_alloc_entry(numlower); 913 oe = ovl_alloc_entry(numlower);
910 if (!oe) 914 if (!oe)