summaryrefslogtreecommitdiffstats
path: root/fs/quota
diff options
context:
space:
mode:
authorJan Kara <jack@suse.cz>2017-06-09 09:04:47 +0200
committerJan Kara <jack@suse.cz>2017-08-17 19:18:11 +0200
commitcb8d01b4f624bbf34fd82cbca19e34a22d1eeef6 (patch)
tree7ad6c8bef10600d11d938cd65be3aaa26d6db06b /fs/quota
parentquota: Push dqio_sem down to ->read_file_info() (diff)
downloadlinux-cb8d01b4f624bbf34fd82cbca19e34a22d1eeef6.tar.xz
linux-cb8d01b4f624bbf34fd82cbca19e34a22d1eeef6.zip
quota: Fix error codes in v2_read_file_info()
v2_read_file_info() returned -1 instead of proper error codes on error. Luckily this is not easily visible from userspace as we have called ->check_quota_file shortly before and thus already verified the quota file is sane. Still set the error codes to proper values. Reviewed-by: Andreas Dilger <adilger@dilger.ca> Signed-off-by: Jan Kara <jack@suse.cz>
Diffstat (limited to 'fs/quota')
-rw-r--r--fs/quota/quota_v2.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/fs/quota/quota_v2.c b/fs/quota/quota_v2.c
index 373d7cfea5b0..21a8bdf7cfec 100644
--- a/fs/quota/quota_v2.c
+++ b/fs/quota/quota_v2.c
@@ -99,13 +99,13 @@ static int v2_read_file_info(struct super_block *sb, int type)
down_read(&dqopt->dqio_sem);
if (!v2_read_header(sb, type, &dqhead)) {
- ret = -1;
+ ret = -EIO;
goto out;
}
version = le32_to_cpu(dqhead.dqh_version);
if ((info->dqi_fmt_id == QFMT_VFS_V0 && version != 0) ||
(info->dqi_fmt_id == QFMT_VFS_V1 && version != 1)) {
- ret = -1;
+ ret = -EINVAL;
goto out;
}
@@ -113,7 +113,7 @@ static int v2_read_file_info(struct super_block *sb, int type)
sizeof(struct v2_disk_dqinfo), V2_DQINFOOFF);
if (size != sizeof(struct v2_disk_dqinfo)) {
quota_error(sb, "Can't read info structure");
- ret = -1;
+ ret = -EIO;
goto out;
}
info->dqi_priv = kmalloc(sizeof(struct qtree_mem_dqinfo), GFP_NOFS);