ext2: initialize quota info in ext2_xattr_set()
authorChengguang Xu <cgxu519@mykernel.net>
Fri, 26 Jun 2020 05:49:59 +0000 (13:49 +0800)
committerJan Kara <jack@suse.cz>
Thu, 9 Jul 2020 06:14:01 +0000 (08:14 +0200)
In order to correctly account/limit space usage, should initialize
quota info before calling quota related functions.

Link: https://lore.kernel.org/r/20200626054959.114177-1-cgxu519@mykernel.net
Signed-off-by: Chengguang Xu <cgxu519@mykernel.net>
Reviewed-by: Reviewed-by: Ritesh Harjani <riteshh@linux.ibm.com>
Signed-off-by: Jan Kara <jack@suse.cz>
fs/ext2/xattr.c

index c802ea6..841fa6d 100644 (file)
@@ -437,6 +437,9 @@ ext2_xattr_set(struct inode *inode, int name_index, const char *name,
        name_len = strlen(name);
        if (name_len > 255 || value_len > sb->s_blocksize)
                return -ERANGE;
+       error = dquot_initialize(inode);
+       if (error)
+               return error;
        down_write(&EXT2_I(inode)->xattr_sem);
        if (EXT2_I(inode)->i_file_acl) {
                /* The inode already has an extended attribute block. */