summaryrefslogtreecommitdiffstats
path: root/fs/ext4/ioctl.c
diff options
context:
space:
mode:
authorWang Shilong <wshilong@ddn.com>2018-10-03 18:19:21 +0200
committerTheodore Ts'o <tytso@mit.edu>2018-10-03 18:19:21 +0200
commit182a79e0c17147d2c2d3990a9a7b6b58a1561c7a (patch)
treec0124cc82e0418cfbcbb437efbf8994b99c0c594 /fs/ext4/ioctl.c
parentext4: fix setattr project check in fssetxattr ioctl (diff)
downloadlinux-182a79e0c17147d2c2d3990a9a7b6b58a1561c7a.tar.xz
linux-182a79e0c17147d2c2d3990a9a7b6b58a1561c7a.zip
ext4: propagate error from dquot_initialize() in EXT4_IOC_FSSETXATTR
We return most failure of dquota_initialize() except inode evict, this could make a bit sense, for example we allow file removal even quota files are broken? But it dosen't make sense to allow setting project if quota files etc are broken. Signed-off-by: Wang Shilong <wshilong@ddn.com> Signed-off-by: Theodore Ts'o <tytso@mit.edu> Cc: stable@kernel.org
Diffstat (limited to 'fs/ext4/ioctl.c')
-rw-r--r--fs/ext4/ioctl.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/fs/ext4/ioctl.c b/fs/ext4/ioctl.c
index 0b3e2486f988..0edee31913d1 100644
--- a/fs/ext4/ioctl.c
+++ b/fs/ext4/ioctl.c
@@ -380,7 +380,9 @@ static int ext4_ioctl_setproject(struct file *filp, __u32 projid)
brelse(iloc.bh);
}
- dquot_initialize(inode);
+ err = dquot_initialize(inode);
+ if (err)
+ return err;
handle = ext4_journal_start(inode, EXT4_HT_QUOTA,
EXT4_QUOTA_INIT_BLOCKS(sb) +