diff options
author | 2018-10-03 12:19:21 -0400 | |
---|---|---|
committer | 2018-10-03 12:19:21 -0400 | |
commit | 182a79e0c17147d2c2d3990a9a7b6b58a1561c7a (patch) | |
tree | c0124cc82e0418cfbcbb437efbf8994b99c0c594 /fs/ext4 | |
parent | ext4: fix setattr project check in fssetxattr ioctl (diff) | |
download | linux-182a79e0c17147d2c2d3990a9a7b6b58a1561c7a.tar.gz linux-182a79e0c17147d2c2d3990a9a7b6b58a1561c7a.tar.bz2 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')
-rw-r--r-- | fs/ext4/ioctl.c | 4 |
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) + |